图2-3实指数序列
2.4复指数序列
复指数序列定义为
它具有实部和虚部,是复正弦的数字域频率。
它又可表示为:
复指数序列
MATLAB程序如下:
波形如图2-4
n=0:
30;
x=exp(0.1+i*pi/9).^n;
xr=real(x);
xi=imag(x);
xm=abs(x);
xa=angle(x);
figure;
subplot(221);stem(n,xr);title('实部');
subplot(222);stem(n,xi);title('虚部');
subplot(223);stem(n,xm);title('模');
subplot(224);stem(n,xa);title('相角')
图2-4复指数序列
2.5矩形序列
矩形序列MATLAB程序如下:
波形如图2-5
n=-10:
20;
x=[zeros(1,10),ones(1,8),zeros(1,13)];
stem(n,x,'fill');
title('矩形序列')
gridon
图2-5矩形序列
2.6正弦序列
其中,ω是正弦序列的数字域频率;Φ为初相。
与连续的正弦信号不同,正弦序列的自变量n必须为整数。
可以证明只有当
为有理数时,正弦序列才具有周期性。
正弦序列
的MATLAB程序如下:
波形如图2-6
n=0:
49;
x=sin(pi/12*n);
stem(n,x,'fill'),xlabel('n'),gridon
title('正弦序列')
axis([0,50,-1.5,1.5]);
图
图图2-6正弦序列
3用MATLAB实现序列的常见运算
3.1序列相加
两序列的相加是指同序号(n)的序列值逐项相对应相加而构成的而构成的一个新的序列,表示为:
序列
相加的MATLAB程序如下:
波形如图3-1
w0=pi/15;a=1.05;
n1=[-25:
25];n2=[-25:
25];
subplot(2,2,1);stem(n1,sin(w0.*n1),'.k');title('x1(n)');axis([-25,25,-1,3]);
subplot(2,2,2);stem(n2,a.^n2,'.k');title('x2(n)');axis([-25,25,-1,3]);
n=[min(min(n1),min(n2));max(max(n1),max(n2))];
x1=zeros(1,length(n));
x2=zeros(1,length(n));
x1=sin(w0.*n1);
x2=a.^n2;
y1=x1+x2;
subplot(2,2,3);stem(n1,y1,'.k');title('y1(n)');axis([-25,25,-1,3]);
图3-1序列相加
3.2序列相乘
两序列相乘是指同序号(n)的序列值逐项对应相乘。
表示为:
序列
相乘的MATLAB程序如下:
波形如图3-2
w0=pi/15;a=1.05;
n1=[-25:
25];n2=[-25:
25];
subplot(2,2,1);stem(n1,sin(w0.*n1),'.k');title('x1(n)');axis([-25,25,-3,3]);
subplot(2,2,2);stem(n2,a.^n2,'.k');title('x2(n)');axis([-25,25,-3,3]);
n=[min(min(n1),min(n2));max(max(n1),max(n2))];
x1=zeros(1,length(n));x2=zeros(1,length(n));
x1=sin(w0.*n1);x2=a.^n2;y2=x1.*x2;
subplot(2,2,3);stem(n2,y2,'.k');title('y2(n)');axis([-25,25,-3,3]);
图3-2序列相乘
3.3序列移位
设某一序列为x(n),当x(n-m)是指序列x(n)逐项依次延时(右移)m位而给出的一个新序列,而想x(n+m)则指依次超前(左移)m位。
m为负时,则相反。
将序列
右移4位的MATLAB程序为:
x(n)原程序如下:
波形如图3-3
n=-5:
15
x=[zeros(1,5),1,2,1,3,zeros(1,12)];
stem(n,x,'*k');
gridon
移位程序如下:
波形如图3-4
n=-5:
15
x=[zeros(1,5),1,2,1,3,zeros(1,12)];
y=circshift(x,[0,4]);
stem(n,y,'*k');
gridon
图3-3图3-4
3.4序列翻转
如果序列为x(n),则x(-n)是以n=0的纵轴为对称轴将序列x(n)加以翻转。
将序列x(n)=δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4)翻转的MATLAB程序如下:
波形如图3-5和3-6
n=-10:
10;
x=[zeros(1,10),1,2,3,4,5,zeros(1,6)];
y=fliplr(x);
stem(n,y,'*k');
gridon
图3-5图3-6
3.5序列的抽取
序列x(n),其时间尺度变换后的序列为x(Mn),M为正整数。
x(Mn)表示从x(n)的每连续M个抽样值中取出一个组成的新序列。
这种运算称为抽取,x(Mn)称为x(n)的M取1的抽取序列。
3倍抽取的MATLAB程序如下:
波形如图3-7
N=50;w0=0.6*pi;
M=3;k=0:
N-1;
x=sin(w0*k);
y=x(1:
M:
end);
subplot(2,1,1);
stem(k,x);
title('x[k]');
subplot(2,1,2);
stem(0:
length(y)-1,y);
title('y[k]');
图3-7
3.6序列的内插
将序列x(n)扩展,则是另一种时间尺度变换,它是把原序列的两个相邻抽样值之间插入(I-1)个值,称为序列的内插。
用MATLAB实现序列的内插程序如下:
波形如图3-8
N=30;w0=0.1*pi;L=2
k=0:
N-1;
x=sin(w0*k);
y=zeros(1,L*length(x));
y(1:
L:
end)=x;
subplot(2,1,1);
stem(k,x);
title('x[k]');
subplot(2,1,2);
k=0:
L*N-1;
stem(k,y);
title('y[k]');
图3-8
结束语
经过一周的课程设计我觉得自己提升了很多,虽然在这一周的时间里基本上每天大部分时间都对着电脑,很累很疲惫但是受益匪浅。
本次设计的主要内容是使用MATLAB
软件编写程序处理信号并显示相应波形设计的核心内容就是利用MATLAB强大的图形处理功能,符号运算功能以及数值计算功能,实现离散时间信号时域分析的仿真波形。
整个设计过程中首先对所学的信号与系统与数字信号处理有了更深的了解,其次,实现过程是通过MATLAB软件完成的,MATLAB的图形功能强大,具有良好的人机界面,此次设计过程中熟练了MATLAB的编程,掌握了很多函数的作用及使用方法;最后,通过此次课程设计,我对设计所用到的软件MATLAB有了更加深刻地了解,MATLAB不管在数值计算方面的功能很强大,而且其图形仿真功能更能满足各个领域的需要,因此我们以后更要经常运用MATLAB软件,使其成为自己不可或缺的工具。
虽然我顺利完成了课程设计的要求,但是我感觉到我对MATLAB的理解我掌握还停留在比较浅的层次。
要想真正掌握它还需要继续努力学习它。
这次课程设计也使我明白了在知识的领域里我还有很多很多的不足,并且再一次的深深的体会到理论和实践之间还有很到的差别。
在以后的学习中应该多多的注意实践知识的训练和积累。
在以后的学习生活中要不断的开拓自己的动手能力,不断的训练自己的动手能力。
致谢
感谢学校给我们这次MATLAB课程设计的机会,不仅让我们更加学会了MATLAB的强大图形处理方法,掌握了MATLAB的编程技术,而且也锻炼了我们的动手能力。
通过这次课设让我明白了理论联系实践的重要性,书本上的理论知识学了不少,我们必须得应用到实践当中,做到学以致用,这样我们才能有不断的创新。
这次课程设计也感谢指导老师在设计过程中的辅导以及同学们的帮助。
没有他们的帮助我不会那么快克服那些困难,也不会这么快学到这么多的知识。
参考文献
【1】梁虹.《信号与系统分析及MATLAB实现》.电子工业出版社2002.02第12章
【2】王立宁等.《MATLAB与通信仿真》.北京:
高等教育出版社.2000.4
【3】刘泉等.《数字信号处理与实现》.北京:
电子工业出版社.2005.6
【4】刘泉。
江雪梅.《信号与系统》.北京:
高等教育出版社.2006.2
【5】陈亚勇.《MATLAB信号处理详解》.人民邮电出版社.2001.09
【6】程佩青《数字信号处理教程》.第三版,清华大学出版社。