资源描述:
《实验一 离散信号的MATLAB实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一离散信号的MATLAB实现一、目的要求1)学习典型的离散时间信号的MATLAB实现方法;2)学习离散时间序列的基本运算:相加、相乘、移位等;3)学习噪声的产生;4)掌握两个序列的卷积和相关运算5)掌握离散系统单位脉冲响应的求解。二、实验内容1)典型的离散信号的表示方法:用matlab产生单位抽样信号δ(n)、单位阶跃序列u(n)、矩形序列RN(n)、实指数序列anu(n)、正弦序列sin(ωn)。编写程序、并画出图形。n=-20:20;n0=0;n1=10;w0=pi/4;x=[(n-n0)==0];x1=[(n-n0)>=0];x2=[(n-n0)>=0&(n-n1)<=0];
2、x3=0.9.^n.*x1;x4=sin(w0*n);subplot(511);stem(n,x);axis([-202002]);ylabel('sigma(n)');subplot(512);stem(n,x1);axis([-202002]);ylabel('u(n)');subplot(513);stem(n,x2);axis([-202002]);ylabel('BN(n)');subplot(514);stem(n,x3);axis([-202002]);ylabel('anu(n)');subplot(515);stem(n,x4);axis([-2020-22]);y
3、label('sin(w0n)');xlabel('n');2)离散信号的基本运算:对序列x(n)={2,3,4,1,2,5},n=0,1,2,3,4,5,的移位、乘法、加法、翻转及尺度变换。编写程序、并画出图形。n=-10:10;k=2;N=length(n);x=zeros(size(n));x1=zeros(size(n));y=zeros(size(n));y1=zeros(size(n));y2=zeros(size(n));y3=zeros(size(n));y4=zeros(size(n));x(11:16)=[234125];x1(11:16)=[123456];y(1
4、+k:N)=x(1:N-k);y1(1:N-k)=x(1+k:N);y2=x.*x1;y3=x+x1;y4=fliplr(x);y5=x(1:2:N);n1=fix(n(1:2:N)/2);subplot(421);stem(n,x);xlabel('n');ylabel('x(n)');subplot(422);stem(n,x1);xlabel('n');ylabel('x1(n)');subplot(423);stem(n,y);xlabel('n');ylabel('x(n-2)');subplot(424);stem(n,y1);xlabel('n');ylabel('x(n
5、+2)');subplot(425);stem(n,y2);xlabel('n');ylabel('x(n)*x1(n)');subplot(426);stem(n,y3);xlabel('n');ylabel('x(n)+x1(n)');subplot(427);stem(n,y4);xlabel('n');ylabel('x(-n)');subplot(428);stem(n1,y5);xlabel('n');ylabel('x(2n)');3)噪声的产生:产生方差为1,2,0.5的白噪声。a=[0.512];N=1000;x=a'*randn(1,N);subplot(311);
6、plot(1:N,x(1,:));subplot(312);plot(1:N,x(2,:));subplot(313);plot(1:N,x(3,:));4)用matlab求系统的单位脉冲响应、频率响应和零极点分布。编写程序、并画出图形。二阶离散系统的差分方程:y(n)-2.5y(n-1)+y(n-2)=f(n)-2f(n-1)Y(z)=(1-2z-1)/(1-2.5z-1+z-2)b=[1-2];a=[1-2.51];[h,t]=impz(b,a,40);[H,W]=freqz(b,a,256,'whole',1);Hr=abs(H);Hphase=angle(H);Hphase=u
7、nwrap(Hphase);subplot(221);stem(t,h);xlabel('n');ylabel('h(n)');subplot(222);plot(W,Hr);xlabel('w');ylabel('H(ejw)');subplot(223);plot(W,Hphase);xlabel('w');ylabel('phi(w)');subplot(224);zplane(b,a);xlabel('Re(z)');ylabel('