1、序列的移位和周期延拓课程设计摘要复杂的序列通常可山基本序列通过运算和组合构成的,序列的移位和周期延 拓是序列的基本运算。丿了;列的移位是序列的每一个样本都向右或向左移动k个单 位,形成另一个序列。周期延拓是把一个周期序列x(n),拓展为有K个周期的新 序列。MATLAB是“矩阵实验室” (MATrix LABoratoy)的缩写,是一种科学计算 软件,主要适用于矩阵运算及控制和信息处理领域的分析设计。本课题利用MATLAB的元素集运算和矩阵的运算实现了对序列移位和周期延 拓运算的软件实现。关键词:MATLAB;序列;移位;周期延拓1课题描述 12设计原理 13设计过程 23.1软件介绍 23.
2、2设计内容 33.3设计步骤 34程序运行结果及分析 4总 结 6参考文献 71课题描述时域离散信号用x(n)表示,时间变量n(表示采样位置)只能取整数。因此, x(n)是一个离散序列,以后简称序列。序列适合讣算机存储与处理。序列的基本 运算包括相加、相乘、移位、周期延拓等。MATLAB是MATrix LABoratory的缩 写,早期主要用于现代控制中复杂的矩阵、向量的各种运算。MATLAB以矩阵作 为基本编程单元,它提供了各种矩阵的运算与操作,并有较强的绘图功能。本课题是利用MATLAB元素集运算和矩阵的运算实现了对序列移位和周期延 拓运算的软件实现。开发工具:MATLAB2设计原理设计原
3、理如下:移位:在这个序列运算中,xn的每一个样本都移动(即延迟)k个采样周 期,设移位后的序列为y(n)。当k0时每一个样本向右移动,称为x(n)的延时 序列;当k0时,每一个样本向左移动,称为x(n)的超前序列。y (n) =x (n-k) (2. 1)在MATLAB中,如果原始的序列用x和nx表示,移位后的序列用y和yn表 示,移位运算并不影响向量x的值,因此y二X。移位体现为位置向量的改变。ny 的每个元素都比nx加了一个k,即ny二nx+k。y和ny就是移位后的向量的表述, 说明y取k拍前的x值。向左移位可令k取负号,意味着y取k拍后的x值。在 系统框图中用z“进行标注,它被称为迟延算
4、子,表示把输入序列右移一位;用 z进行标注,它是左移运算是右移算子的逆运算。实际上迟延算子取的是序列过 去的值,具有物理可实现性;而左移算子是提前算子,它要知道序列未来的值, 物理上无法实现。所以数字信号处理中通常都用z“算子。周期延拓:如果对于所有的n,序列免n满足:xn=xn+kN (2.2)贝收n称为周期序列。满足上述关系的最小N称为基本周期。用MATLAB把 个周期序列x(n), 0nNl,拓展为有K个周期的序列xtide(n)般有两种 方法。简单复制法:设x是一个已赋值的行向量,其长度为N二length(x),把它复 制 K 次,得到的 xtide 长度为 K*N。因此有,xtide
5、=X, X, X ; nxtide二0: K:N-lo这个方法在K太大时容易数错,不是很好。余函数mod法:函数nl=(n mod N) 这个算式把大于等于的n值,减去 N的整倍数,使余数nl在0与N-1之间。对于小于等于0的n值,则加以N的 整倍数。也使nl在0与N-1之间。把这一运算用到位置向量上,就可以方便的 实现有限序列的周期延拓。先设置位置向量,要复制K个x,则新向量的长度应 为K*N。其中N为x的长度,也就是所取的周期。假如起始位置为0,则可用下 列语句:nxti de二0: K*NT ; %设置延拓序列的位置向量xtide=x (mod (nxtide, N)+l) %确定位置向
6、量各点对应的x值3设计过程3.1软件介绍MATLAB是一种科学计算软件,适用于工程应用个领域的分析设计与复杂计 算,它使用方便,输入简捷,运算高效且内容丰富,很容易由用户自行扩展。因 此,当前已成为美国和其他发达国家大学教学和科学研究中最常用且必不可少的 工具。MATLAB以矩阵作为基本编程单元,它提供了各种矩阵的运算与操作,并有 较强的绘图功能。MATLAB集科学计算、图像处理、声音处理于一身,是一个高 度的集成系统,有良好的用户界面,并有良好的帮助功能。MATLAB不仅流行于 控制界,在机械工程、生物工程、语音处理、图像处理、信号分析、计算机技术 等各行各业中都有极广泛的应用。MATLAB
7、语言的特点1.编程效率高2.用户使用方便3.扩充能力强4.语句简单,内涵丰富5.高效方便的矩阵和数组运算6.方 便的绘图功能数字信号处理的主要对象是数字信号,且是采用运算的方法达到处理口的, 因此,其实现方法不同于模拟信号的实现方法,基本上可以分为两种实现方法,即 软件实现方法和硬件实现的方法。而硬件实现指的是选用合适的DSP芯片,配有 适合芯片语言及任务要求的软件,实现某种信号处理功能的一种方法。数字信号 处理的特点1.灵活性2.高精度和高稳定性3.便于大规模集成4.对数字信号可以 存储、运算;系统可以获得高性能指标3. 2设计内容已知 x(n) = O.8Z, /?8(n) 利用 MATL
8、AB 生成 x(n), x(n)g RN (n)和HS-同L 心 )。3. 3设计步骤建模:取序列的观察区间为24o利用MATLAB的矩阵乘法和冒号运算可使周期延拓 程序简短明了。假如取三个延拓周期,则x二1 234;y二x*ones (1,3):=1 1 122 233 344 4yi=(y(:)= 1 2 3 4 1 2 3 4 1 2 3 4另一种更好的方法是采用MATLAB求余函数mod, y = x(mod(n, M)+l)可实现 对x(n)以M为周期的周期延拓,其中求余后加1是因为MATLAB向量下标只能从 1开始,这样使程序更为简洁。设计程序如下:N二24;H二8;m=3;n二
9、O:NT;xl=(O. 8). n;x2= (n=0)&(nM);%产生 x (n)xn=xl *x2;xm=zeros (1, N);%设定 Mxm 的长度for k=m+l:m+Mxm(k)=xn(k-m);endxc=xn(mod(n, 8)+1);%产生 x (n)的周期延拓xcm=xn(mod(n-m, 8)+1);%产生x (n)移位后的周期延拓subplot (2, 2, 1) ; stem(n, xn, J );xlabel ( n) ;ylabel ( xn);axis(0, length(n), 0, 1);subplot (2, 2, 2) ; stem(n, xm, 5
10、 );xlabel ( n ) ;ylabel ( xm,);axis(0, length(n), 0, 1);subplot (2, 2, 3) ; stem(n, xc,5 );xlabel ( n) ;ylabel ( xc);axis (0, length (n), 0, 11);subplot (2, 2, 4) ; stem(n, xcm, I );xlabel ( n) ; ylabel ( xcm,);axis(0, length(n), 0, 1);4程序运行结果及分析运行结果如下图所示,显示出x(n), x(n -m), x(zO)s Kv G)和x(n - ?)8 7?j
11、V (n)的图形。图 4.1 序列 x(n), x(n 一 m), x(n)8RN (n), x(n -m)gRN(n)的图形分析:图中x(n)是原序列;x(n-m)是原序列向右移位3得到的。x(n)下面的图 是对原序列进行3个周期的延拓;x(n-m)下面的图是对x(n-m)这一移位 后的序列进行3个周期的延拓得到的。本题用的是求余函数法实现序列的 周期延拓的。如果您需婆使用木文档,请点击下载按钮下载!总结通过该课程设计,我基本掌握了 MATLAB这一软件,还有MATLAB编译程序的 基本过程,和构造工具及其相关的技术。课本上的知识是有限的,并且是抽象的, 枯燥的,难以理解的。在本次课程设计,
12、我有很大的收获,这不仅仅是理论知识上的完善,而且 在自学能力和动手能力上有了新的飞跃!设计中,我感觉到自己知识极度匮乏, 网查阅资料,翻阅各类相关书籍,完全鼎自己设讣,这让我的思维逻辑更加清晰。 在操作MATLAB中我基本握了一些基本程序的设计,为以后进一步的深入学习做 好了铺垫。在我设计好之后,老师对我进行指导,使得我的课程设计进一步完善, 更加完美。通过这次课程设汁我还对数字信号处理中的关于序列的移位和周期延拓有 了更深刻的认识,通过自己编程生成的图形更直接的看到了疗:列的移位和周期延 拓的产生,对今后在数字信号处理方面和通信方面的学习有很大的帮助。在这次课程设计过程中,我发现了自己综合应用能力的欠缺,也认识到计算 机软件的强大功能。以后,我会更加重视用软件编程,应用计算机来对处理信号。如果您需婆使用木文档,请点击下载按钮下载!参考文献1丁玉美,高西全.数字信号处理(第三版)西安电子科技大学出版社, 2000.2陈怀垛,吴大正,高西全.MATLAB及在电子信息课程中的应用,电子工 业出版社,2006.3求是科技.MATLAB 7. 0从入门到精通.人民邮电出版社,2006.4高西全,丁玉美.数字信号处理(第三版)学习指导,西安科技大学出版 社,2001.(注:可编辑下载,若有不当之处,请指正,谢谢!)