序列的移位和周期延拓课程设计Word格式文档下载.docx
《序列的移位和周期延拓课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《序列的移位和周期延拓课程设计Word格式文档下载.docx(6页珍藏版)》请在冰豆网上搜索。
4程序运行结果及分析4
总结6
参考文献7
1课题描述
时域离散信号用x(n)表示,时间变量n(表示采样位置)只能取整数。
因此,x(n)是一个离散序列,以后简称序列。
序列适合讣算机存储与处理。
序列的基本运算包括相加、相乘、移位、周期延拓等。
MATLAB是MATrixLABoratory的缩写,早期主要用于现代控制中复杂的矩阵、向量的各种运算。
MATLAB以矩阵作为基本编程单元,它提供了各种矩阵的运算与操作,并有较强的绘图功能。
本课题是利用MATLAB元素集运算和矩阵的运算实现了对序列移位和周期延拓运算的软件实现。
开发工具:
MATLAB
2设计原理
设计原理如下:
移位:
在这个序列运算中,x[n]的每一个样本都移动(即延迟)k个采样周期,设移位后的序列为y(n)。
当k〉0时每一个样本向右移动,称为x(n)的延时序列;
当k〈0时,每一个样本向左移动,称为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“进行标注,它被称为迟延算子,表示把输入序列右移一位;
用z进行标注,它是左移运算是右移算子的逆运算。
实际上迟延算子取的是序列过去的值,具有物理可实现性;
而左移算子是提前算子,它要知道序列未来的值,物理上无法实现。
所以数字信号处理中通常都用z“算子。
周期延拓:
如果对于所有的n,序列免[n]满足:
x[n]=x[n+kN](2.2)
贝收[n]称为周期序列。
满足上述关系的最小N称为基本周期。
用MATLAB把—个周期序列{x(n),0<
n<
N~l},拓展为有K个周期的序列xtide(n)—般有两种方法。
简单复制法:
设x是一个已赋值的行向量,其长度为N二length(x),把它复制K次,得到的xtide长度为K*N。
因此有,xtide=[X,X,X];
nxtide二0:
K:
N-lo这个方法在K太大时容易数错,不是很好。
余函数mod法:
函数nl=(nmodN)<
>
这个算式把大于等于'
的n值,减去N的整倍数,使余数nl在0与N-1之间。
对于小于等于0的n值,则加以N的整倍数。
也使nl在0与N-1之间。
把这一运算用到位置向量上,就可以方便的实现有限序列的周期延拓。
先设置位置向量,要复制K个x,则新向量的长度应为K*N。
其中N为x的长度,也就是所取的周期。
假如起始位置为0,则可用下列语句:
nxtide二0:
K*NT;
%设置延拓序列的位置向量
xtide=x(mod(nxtide,N)+l)%确定位置向量各点对应的x值
3设计过程
3.1软件介绍
MATLAB是一种科学计算软件,适用于工程应用个领域的分析设计与复杂计算,它使用方便,输入简捷,运算高效且内容丰富,很容易由用户自行扩展。
因此,当前已成为美国和其他发达国家大学教学和科学研究中最常用且必不可少的工具。
MATLAB以矩阵作为基本编程单元,它提供了各种矩阵的运算与操作,并有较强的绘图功能。
MATLAB集科学计算、图像处理、声音处理于一身,是一个高度的集成系统,有良好的用户界面,并有良好的帮助功能。
MATLAB不仅流行于控制界,在机械工程、生物工程、语音处理、图像处理、信号分析、计算机技术等各行各业中都有极广泛的应用。
MATLAB语言的特点1.编程效率高2.用户
使用方便
3.扩充能力强4.语句简单,内涵丰富5.高效方便的矩阵和数组运算6.方便的绘图功能
数字信号处理的主要对象是数字信号,且是采用运算的方法达到处理口的,因此,其实现方法不同于模拟信号的实现方法,基本上可以分为两种实现方法,即软件实现方法和硬件实现的方法。
而硬件实现指的是选用合适的DSP芯片,配有适合芯片语言及任务要求的软件,实现某种信号处理功能的一种方法。
数字信号处理的特点1.灵活性2.高精度和高稳定性3.便于大规模集成4.对数字信号可以存储、运算;
系统可以获得高性能指标
3.2设计内容
已知x(n)=O.8Z,/?
8(n)>
利用MATLAB生成x(n),x((n))gRN(n)和
HS-同L心@)。
3.3设计步骤
建模:
取序列的观察区间为24o利用MATLAB的矩阵乘法和冒号运算可使周期延拓程序简短明了。
假如取三个延拓周期,则
x二[1234];
y二x'
*ones(1,3):
=111
222
333
444
yi=(y(:
))>
=[123412341234]
另一种更好的方法是采用MATLAB求余函数mod,y=x(mod(n,M)+l)可实现对x(n)以M为周期的周期延拓,其中求余后加1是因为MATLAB向量下标只能从1开始,这样使程序更为简洁。
设计程序如下:
N二24;
H二8;
m=3;
n二O:
NT;
xl=(O.8)."
n;
x2=[(n>
=0)&
(n<
M)];
%产生x(n)
xn=xl・*x2;
xm=zeros(1,N);
%设定Mxm的长度
fork=m+l:
m+M
xm(k)=xn(k-m);
end
xc=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・'
n);
xm,);
subplot(2,2,3);
stem(n,xc,5・'
xc'
axis([0,length(n),0,11);
subplot(2,2,4);
stem(n,xcm,I'
ylabel('
xcm,);
4程序运行结果及分析
运行结果如下图所示,显示出x(n),x(n-m),x((zO)sKvG)和x((n-«
?
))87?
jV(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编译程序的基本过程,和构造工具及其相关的技术。
课本上的知识是有限的,并且是抽象的,枯燥的,难以理解的。
在本次课程设计,我有很大的收获,这不仅仅是理论知识上的完善,而且在自学能力和动手能力上有了新的飞跃!
设计•中,我感觉到自己知识极度匮乏,网查阅资料,翻阅各类相关书籍,完全鼎自己设讣,这让我的思维逻辑更加清晰。
在操作MATLAB中我基本握了一些基本程序的设计,为以后进一步的深入学习做好了铺垫。
在我设计好之后,老师对我进行指导,使得我的课程设计进一步完善,更加完美。
通过这次课程设汁我还对数字信号处理中的关于序列的移位和周期延拓有了更深刻的认识,通过自己编程生成的图形更直接的看到了疗:
列的移位和周期延拓的产生,对今后在数字信号处理方面和通信方面的学习有很大的帮助。
在这次课程设计过程中,我发现了自己综合应用能力的欠缺,也认识到计算机软件的强大功能。
以后,我会更加重视用软件编程,应用计算机来对处理信号。
参考文献
[1]丁玉美,高西全.《数字信号处理》(第三版)•西安电子科技大学出版社,2000.
[2]陈怀垛,吴大正,高西全.《MATLAB及在电子信息课程中的应用》,电子工业出版社,2006.
[3]求是科技.《MATLAB7.0从入门到精通》.人民邮电出版社,2006.
[4]高西全,丁玉美.《数字信号处理(第三版)》学习指导,西安科技大学出版社,2001.
(注:
可编辑下载,若有不当之处,请指正,谢谢!
)