序列卷积参考程序及结果(终版)(完整版)实用资料

上传人:cn****1 文档编号:563629195 上传时间:2023-07-18 格式:DOC 页数:88 大小:1.76MB
返回 下载 相关 举报
序列卷积参考程序及结果(终版)(完整版)实用资料_第1页
第1页 / 共88页
序列卷积参考程序及结果(终版)(完整版)实用资料_第2页
第2页 / 共88页
序列卷积参考程序及结果(终版)(完整版)实用资料_第3页
第3页 / 共88页
序列卷积参考程序及结果(终版)(完整版)实用资料_第4页
第4页 / 共88页
序列卷积参考程序及结果(终版)(完整版)实用资料_第5页
第5页 / 共88页
点击查看更多>>
资源描述

《序列卷积参考程序及结果(终版)(完整版)实用资料》由会员分享,可在线阅读,更多相关《序列卷积参考程序及结果(终版)(完整版)实用资料(88页珍藏版)》请在金锄头文库上搜索。

1、序列卷积参考程序及结果(终版)(完整版)实用资料(可以直接使用,可编辑 完整版实用资料,欢迎下载)10-11-10上午3:18D:MATLAB71workconv_B402.m1 of 1function Conv_Value,Conv_Coordinate = conv_B402(Sequence1, seq1_start,.seq1_end, Sequence2, seq2_start, seq2_end% % Sequence1 : 输入序列 1% % seq1_start : 序列1坐标起始点% % seq1_end : 序列1坐标终止点% % Sequence2 : 输入序列 2%

2、% seq2_start : 序列2坐标起始点% % seq2_end : 序列2坐标终止点% % Conv_Value : 卷积结果序列% % Conv_Coordinate: 卷积结果序列对应的坐标序列% % Copyright B0402, DUT. 2021-11-10% % 首先计算卷积后的序列对应的坐标序列Conv_Coordinate = seq1_start + seq2_start : seq1_end + seq2_end;length_conv = length(Conv_Coordinate;% 得到卷积序列长度length_Seq2 = length(Sequence

3、2;% 首先求取序列2 的长度。for i = 1:length_Seq2Seq2_mirror(length_Seq2-i+1 = Sequence2(i;endSeq1_extend = zeros(1,length_Seq2-1,Sequence1,zeros(1,length_Seq2-1;for k = 1:length_convSeq2_mir_extend = zeros(1,length(Seq1_extend;Seq2_mir_extend(k : k+length_Seq2-1 = Seq2_mirror;Conv_Value(k = sum(Seq1_extend .*

4、Seq2_mir_extend;end% % 显示计算结果figure,subplot(311,stem(seq1_start:seq1_end,Sequence1,.;ylabel(Sequence1;grid on;subplot(312,stem(seq2_start:seq2_end,Sequence2,.;ylabel(Sequence2;grid on;subplot(313,stem(Conv_Coordinate,Conv_Value,.;ylabel(Conv Value;xlabel(序列对应坐标点;grid on;10-11-10上午3:26D:MATLAB71workt

5、est.m1 of 1clc;clear all;close all;% % 习题1% % 首先输入 函数序列参数Sequence1 = 1 1 1 1;% 序列1seq1_start = 0; % 序列1 的起始坐标seq1_end = 3; % 序列1 的终止坐标Sequence2 = 1 .5 .25 .125 .0625;% 序列2seq2_start = 0;seq2_end = 4; % % 习题2% % 首先输入 函数序列参数Sequence1 = 1 1 1 1;% 序列1seq1_start = 0; % 序列1 的起始坐标seq1_end = 3; % 序列1 的终止坐标S

6、equence2 = 3 2 1 0;% 序列2seq2_start = 0;seq2_end = 3; % % 习题3% % 首先输入 函数序列参数Sequence1 = 1 1 1 1;% 序列1seq1_start = 0; % 序列1 的起始坐标seq1_end = 3; % 序列1 的终止坐标Sequence2 = 1 1 1 1 1;% 序列2seq2_start = -2;seq2_end = 2;单片机外接键盘电路一、原理简介键盘接口电路是单片机系统设计非常重要的一环,作为人机交互界面里最常用的输入设备。我们可以通过键盘输入数据或命令来实现简单的人机通信。在设计键盘电路与程序前

7、,我们需要了解键盘和组成键盘的按键的一些知识。1. 按键的分类一般来说,按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是触点式开关按键(如本学习板上所采用按键)。按键按照接口原理又可分为编码键盘与非编码键盘两类,这两类键盘的主要区别是识别键符及给出相应键码的方法。编码键盘主要是用硬件来实现对键的识别,非编码键盘主要是由软件来实现键盘的识别。全编码键盘由专门的芯片实现识键及输出相应的编码,一般还具有去抖动和多键、窜键等保护电路,这种键盘使用方便,硬件开销大,一

8、般的小型嵌入式应用系统较少采用。非编码键盘按连接方式可分为独立式和矩阵式两种,其它工作都主要由软件完成。由于其经济实用,较多地应用于单片机系统中(本学习板也采用非编码键盘)。2. 按键的输入原理在单片机应用系统中,通常使用机械触点式按键开关,其主要功能是把机械上的通断转换成为电气上的逻辑关系。也就是说,它能提供标准的TTL 逻辑电平,以便与通用数字系统的逻辑电平相容。此外,除了复位按键有专门的复位电路及专一的复位功能外,其它按键都是以开关状态来设置控制功能或输入数据。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能。因此,键信息输入是与软件结构密切相关的过程。 对于一组键

9、或一个键盘,通过接口电路与单片机相连。单片机可以采用查询或中断方式了解有无按键输入并检查是哪一个按键按下,若有键按下则跳至相应的键盘处理程序处去执行,若无键按下则继续执行其他程序。3. 按键的特点与去抖机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图1(a) 所示,抖动时间的长短与开关的机械特性有关,一般为5 10 ms。从图中可以看出,在触点抖动期间检测按键的通与断状态,可能导致判断出错。即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬

10、件、软件两方面予以考虑。一般来说,在键数较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。( 本学习板采用软件去抖方式)。软件去抖的流程图如图1(b) 所示。图1从按键的去抖流程图我们可以知道,检测到有键按下时,应延时等待一段时间(可调用一个5ms10ms的延迟子程序),然后再次判断按键是否被按下,若此时判断按键仍被按下,则认为按键有效,若此时判断按键没有被按下,说明为按键抖动或干扰,应返回重新判断。键盘真正被按下才可进行相应的处理程序,此时基本就算实现了按键输入,进一步的话可以判断按键是否释放。二、电路详解电路图如图2 所示。图2从图2 中可知独立式按键采用每个按键单独占用一根I/O 口

11、线结构。当按下和释放按键时,输入到单片机I/O 端口的电平是不一样的,因此可以根据不同端口电平的变化判断是否有按键按下以及是哪一个按键按下。从图2(a) 中可以看出,按键和单片机引脚连接并加了上拉电阻,这样当没有按键按下的时候,I/O 输入的电平是高电平,当有按键按下的时候,I/O 输入的电平是低电平。虽然独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O 口线,因此,在按键较多时,I/O 口线浪费较大。对于比较复杂的系统或按键比较多的场合,可以用到矩阵键盘,图2(b) 中所示的为44的矩阵式键盘,其他矩阵式键盘的设计方法类似。44 的矩阵式键盘由4 根行线和4 根列线交叉构成

12、,按键位于行列的交叉点上,这样就构成了16 个按键。其中交叉点的行列线是不连接的,当按键按下的时候,此交叉点处的行线和列线导通。图2(b) 行线通过上拉电阻接到VCC 上。当无键按下时,行线处于高电平状态;当有键按下时,行、列线在交点导通,此时,行线电平将由与此行线相连的列线电平决定。这是识别按键是否按下的关键。然而,矩阵键盘中的每条行线与4 条列线相交,交点的按键按下与否均影响该键所在行线和列线的电平,各按键间将相互影响,键分析时必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。三、程序设计本文设计实例关键程序如下。独立按键程序#define keyio P0 ( 1)#defi

13、ne key1 P0_3 ( 2)keyio|=0X0F; ( 3)if(key1=0) ( 4)delay_nms(20); ( 5)if(key1=0) ( 6)while(key1=0); ( 7)return 1; ( 8)程序说明:(1)定义按键管脚。(2)定义按键连接管脚。(3)将按键连接管脚输出高电平,从而接收输入。(4)如果此时管脚所连接按键被按下。(5)延时一段时间,去抖作业。(6)如果此时按键仍然被按下,此时按键有效。(7)等待按键抬起,死循环,如果按键一直按下则一直等待。(8)返回键值。矩阵键盘程序#define KEYIO P0 ( 1)code ksp4=0x7F,0

14、xBF,0xDF,0xEF; ( 2)unsigned char keypad_scan() ( 3)char key,i; ( 4)KEYIO=0xF0; ( 5)if (KEYIO!=0xF0) ( 6)for(i=0;i=3;i+) ( 7)delaykey(10); ( 8)KEYIO=kspi; ( 9)delaykey(10); ( 10)if(KEYIO!=kspi) /不等于ox( 11)delaykey(10); ( 12)key=KEYIO; ( 13)while(KEYIO=key); ( 14)return(key); ( 15)程序说明:(1)定义矩阵键盘管脚。(2)将扫描时用到的管脚四种输出电平状态定义成一个数组。/确定第几列数(3)按键扫描程序。(4)定义两个临时变量key,i。(5)让键盘管脚的高四位输出高电平,低四位为低电平,为扫描按键准备。(6)如果此时管脚状态电平发生变化。(7)将之前定义的数组中的值赋予管脚,开始逐次扫描。(8)延

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号