-1-实验1常见离散信号的MATLAB产生和图形显示一、实验目的:加深对常用离散信号的理解二、实验原理:1.单位抽样序列:⎩⎨⎧=01)(nδ00≠=nn在MATLAB中可以利用zeros()函数实现。;1)1();,1(==xNzerosx如果)(nδ在时间轴上延迟了k个单位,得到)(kn−δ即:⎩⎨⎧=−01)(knδ0≠=nkn2.单位阶越序列:⎩⎨⎧01)(nu00≥nn在MATLAB中可以利用ones()函数实现。(1,)xonesN=3.正弦序列:)/2sin()(ϕπ+=FsfnAnx在MATLAB中)/***2sin(*1:0faiFsnfpiAxNn+=−=4.复正弦序列:njenxϖ=)(在MATLAB中)**exp(1:0nwjxNn=−=5.指数序列:nanx=)(在MATLAB中naxNn.^1:0=−=三、实验内容:1、编制程序产生上述5种信号(长度可输入确定),并绘出其图形。2、讨论正弦序列、复指数序列的性质:(1)绘出信号()znxne=,当1126zjπ=−+、1126zjπ=+、112z=、62πjz+=、6πjz=时信号的实部和虚部图;当6πjz=时信号的周期为多少?-2-(2)绘出信号()1.5sin(2*0.1)xnnπ=的频率是多少?周期是多少?产生一个数字频率为0.9的正弦序列,并显示该信号,说明其周期。3、使用帮助功能学习square(方波),sawtooth(锯齿波)和sinc函数,并绘图。四、实验要求:1、预先阅读MATLAB基础;2、讨论复指数序列的性质。-3-程序参考:1、绘制5中常见离散信号(1)单位抽样序列clf;n=0:10;x1=[1zeros(1,10)];x2=[zeros(1,5)1zeros(1,5)];subplot(1,2,1);stem(n,x1);xlabel('时间序列n');ylabel('振幅');title('单位抽样序列x1');subplot(1,2,2);stem(n,x2);xlabel('时间序列n');ylabel('振幅');title('延时了5的单位抽样序列');(2)单位阶越序列clf;n=0:10;u=[ones(1,11)];stem(n,u);xlabel('时间序列n');ylabel('振幅');title('单位阶越序列');(3)正弦函数clf;n=1:30;x=2*sin(pi*n/6+pi/3);stem(n,x);xlabel('时间序列n');ylabel('振幅');title('正弦函数序列x=2*sin(pi*n/6+pi/3)');-4-(4)复指数序列clf;n=1:30;x=2*exp(j*3*n);stem(n,x);xlabel('时间序列n');ylabel('振幅');title('复指数序列x=2*exp(j*3*n)');(5)指数序列clf;n=1:30;x=1.2.^n;stem(n,x);xlabel('时间序列n');ylabel('振幅');title('指数序列x=1.2.^n');2、讨论正弦序列、复指数序列的性质:(1)绘出信号()znxne=,当1126zjπ=−+、1126zjπ=+、112z=、62πjz+=、6πjz=时信号的实部和虚部图;当6πjz=时信号的周期为多少?程序如下:clf;z1=-1/12+j*pi/6;z2=1/12+j*pi/6;z3=1/12;z4=2+j*pi/6;z5=j*pi/6;n=0:20;x1=exp(z1*n);x2=exp(z2*n);x3=exp(z3*n);x4=exp(z4*n);x5=exp(z5*n);subplot(5,2,1);stem(n,real(x1));xlabel('时间序列n');ylabel('实部');title('复指数z1=-1/12+j*pi/6时序列实部');subplot(5,2,2);stem(n,imag(x1));xlabel('时间序列n');ylabel('虚部');title('复指数z1=-1/12+j*pi/6时序列虚部');subplot(5,2,3);-5-stem(n,real(x2));xlabel('时间序列n');ylabel('实部');title('复指数z2=1/12+j*pi/6时序列实部');subplot(5,2,4);stem(n,imag(x2));xlabel('时间序列n');ylabel('虚部');title('复指数z2=1/12+j*pi/6时序列虚部');subplot(5,2,5);stem(n,real(x3));xlabel('时间序列n');ylabel('实部');title('复指数z3=1/12时序列实部');subplot(5,2,6);stem(n,imag(x3));xlabel('时间序列n');ylabel('虚部');title('复指数z3=1/12时序列虚部');subplot(5,2,7);stem(n,real(x4));xlabel('时间序列n');ylabel('实部');title('复指数z4=2+j*pi/6时序列实部');subplot(5,2,8);stem(n,imag(x4));xlabel('时间序列n');ylabel('虚部');title('复指数z4=2+j*pi/6时序列虚部');subplot(5,2,9);stem(n,real(x5));xlabel('时间序列n');ylabel('实部');title('复指数z5=j*pi/6时序列实部');subplot(5,2,10);stem(n,imag(x5));xlabel('时间序列n');ylabel('虚部');title('复指数z5=j*pi/6时序列虚部');由上图的实部部分可以看出,Z=pi/6时,序列周期为12。计算序列周期为2*6=12。实验和理论相符。-6-(2)绘出信号()1.5sin(2*0.1)xnnπ=的频率是多少?周期是多少?产生一个数字频率为0.9的正弦序列,并显示该信号,说明其周期。程序如下:clf;n=0:40;x1=1.5*sin(2*pi*0.1*n);x2=sin(0.9*n);subplot(1,2,1);stem(n,x1);xlabel('时间序列n');ylabel('振幅');title('正弦序列x1=1.5*sin(2*pi*0.1*n)');subplot(1,2,2);stem(n,x2);xlabel('时间序列n');ylabel('振幅');title('正弦序列x2=sin(0.9*n)');运行结果如下:由上图看出:x1=1.5*sin(2*pi*0.1*n)的周期是10,而x2=sin(0.9*n)是非周期的。理论计算中对第一个,N=2*pi/(0.1*pi)=10,第二个0.9不是pi的倍数,所以不是周期的。因此可以看出,实验结果和理论相符。3、使用帮助功能学习square(方波),sawtooth(锯齿波)和sinc函数,并绘图。(1)方波绘图程序如下:t=-2*pi:0.001:2*pi;x=square(t);plot(t,x);xlabel('t'),ylabel('x=square(t)');-7-(2)三角波绘图程序如下:t=-2*pi:0.001:2*pi;y=sawtooth(t);plot(t,y);xlabel('t'),ylabel('y=sawtooth(t);');(3)sinc函数绘图程序如下:t=-pi:0.001:pi;x=sinc(t);plot(t,x);xlabel('t'),ylabel('sinc(t);');四、问题讨论与总结:1、离散正弦序列的性质:离散正弦序列就是一个连续的正弦信号被一系列冲激函数采样后的结果,原连续正弦函数一定是周期的,但采样后的离散序列却不一定是周期的。对于离散序列x=sin(n*w)来说,只有当2*pi/w是一个有理数时,也就是说当w是pi的倍数时,此离散序列才是周期的。所以在本实验中x1=1.5*sin(2*pi*0.1*n)的周期是10,而x2=sin(0.9*n)是非周期的。因为0.9不是pi的倍数。2、离散复指数序列性质:对于离散复指数函数x=a*exp(z*n),只有当z是纯虚数,且纯虚数的系数是pi的倍数时,才是周期的。其它情况下均不是。这个性质由本次实验中的五个函数的图像可以被证明。