您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 实验二Z变换和傅立叶变换201101830105
数字信号处理学院理学院年级专业2011级电子信息工程01班指导老师刘x学号201101830105姓名郑xx实验二Z变换和傅立叶变换实验目的:掌握Z变换和反变换和傅立叶变换在MATLAB信号处理工具箱提供的求连续和离散系统频率响应的函数。实验内容:(1)有限长序列的Z变换和逆Z变换x1=[1,2,3];ns1=-1;nf1=ns1+length(x1)-1;x2=[2,4,3,5];ns2=-2;nf2=ns1+length(x1)-1;x=conv(x1,x2)n=(ns1+ns2):(nf1+nf2)结果:x=2817231915n=-3-2-1012(2)clear,closeallx=[2,4,3,5];nsx=-2;nfx=nsx+length(x)-1;Bw=-3;nsbw=-1;Aw=[2,-2.2,.5];nsaw=0;B=conv(-3,x);A=Aw;nsy=nsaw-(nsbw-nsx)[r,p,k]=residuez(B,A)nf=input('终点时间nf=');n=min(nsx,nsy):nf;yi=(r(1)*p(1).^(n-nsy)+r(2)*p(2).^(n-nsy)).*stepseq(nsy,n(1),nf);yd=k(1)*impseq(nsy,n(1),nf)+k(2)*impseq(-1-nsy,n(1),nf);y=yi+yd;xe=zeros(1,length(n));xe(find((n=nsx)&(n=nfx)==1))=x;subplot(2,1,1),stem(n,xe,'.'),line([min(n(1),0),nf],[0,0])subplot(2,1,2),stem(n,y,'.'),line([min(n(1),0),nf],[0,0])m文件impseq.mfunction[x,n]=impseq(n0,ns,nf)n=[ns:nf];x=[(n-n0)==0];stepseq.mfunction[x,n]=stepseq(n0,ns,nf)n=[ns:nf];x=[(n-n0)=0];(1)离散时间傅立叶变换disp('八点时间信号的离散时间傅立叶变换')x0=sin(2*pi*[1:8]/8)*5;dt=2*pi/8;w=linspace(-8,2*pi,1000)/dt;X0=dtft(x0,w)*dt;subplot(3,1,1),plot(w,abs(X0)),axis([-8,max(w),0,max(abs(X0))]),grid,shgdisp('重复N次的八点时间信号的离散离散时间傅立叶变换')N=input('N=');x1=reshape(x0'*ones(1,N),1,N*length(x0));X1=dtft(x1,w)*dt;subplot(3,1,2),plot(w,abs(X1)),axis([-8,max(w),0,max(abs(X1))]),grid,shgdisp('重复无穷次的八点信号的离散傅立叶变换')pause,X2=fft(x0*dt);w1=2*pi*[0:length(x0)-1]/length(x0);subplot(3,1,3),stem([-w1,w1],[abs(X2),abs(X2)]),grid,shgaxis([-8,max(w),0,max(abs(X2))]),grid,shgm文件dtft.mfunctionX=dtft(x,w)X=x*exp(-j*[1:length(x)]'*w);(2)由离散序列恢复模拟信号clear,closeall;A=444.128;a=50*sqrt(2)*pi;b=a;fork=1:2ifk==1Fs=400;elseifk==2Fs=1000;endT=1/Fs;dt=T/3;Tp=0.03;t=0:dt:Tp;n=0:Tp/T;TMN=ones(length(n),1)*t-n'*T*ones(1,length(t));x=A*exp(-a*n*T).*sin(b*n*T);xa=x*sinc(Fs*TMN);subplot(2,1,k);plot(t,xa);holdonaxis([0,max(t),min(xa)-10,max(xa)+10]);st1=sprintf('有Fs=%d',Fs);st2='Hz的采样序列z(n)重构的信号';st=[st1,st2];title(st)ylabel('xa(t)');xo=A*exp(-a*t).*sin(b*t);stem(t,xo,'.');line([0,max(t)],[0,0])emax2=max(abs(xa-xo))end(3)梳状滤波器零极点和幅频特性clear;closeallb=[1,0,0,0,0,0,0,0,-1];a0=1;a1=[1,0,0,0,0,0,0,0,-(0.8)^8];a2=[1,0,0,0,0,0,0,0,-(0.9)^8];a3=[1,0,0,0,0,0,0,0,-(0.98)^8];[H,w]=freqz(b,a0);[H1,w1]=freqz(b,a1);[H2,w2]=freqz(b,a2);[H3,w3]=freqz(b,a3);subplot(4,2,1),zplane(b,a0),gridsubplot(4,2,2),zplane(b,a1),gridsubplot(4,2,3),plot(w/pi,abs(H)),gridsubplot(4,2,4),plot(w1/pi,abs(H1)),gridsubplot(4,2,5),zplane(b,a2),gridsubplot(4,2,6),zplane(b,a3),gridsubplot(4,2,7),plot(w2/pi,abs(H2)),gridsubplot(4,2,8),plot(w3/pi,abs(H3)),grid(4)低通滤波效果及傅立叶变换时域卷积定理验证clear;closealln=0:255;N=4096;x=cos(0.04*pi*n)+cos(0.08*pi*n)+cos(0.4*pi*n);w=randn(size(x));x=x+0.3*w;b=[1,2,1];B=0.0003738*conv(conv(b,b),b);a1=[1,-1.2686,0.7051];a2=[1,-1.0106,0.3583];a3=[1,-0.9044,0.2155];A=conv(conv(a1,a2),a3);y=filter(B,A,x);X=fft(x,N);Y=fft(y,N);[H,f]=freqz(B,A,N,'whole');Ym=H'.*X;k=0:N-1;f=2*k/N;subplot(3,2,1);stem(x,'.');xlabel('n'),ylabel('x(n)')subplot(3,2,2);plot(f,abs(X));xlabel('w/pi'),ylabel('IFT[y(n)]I')subplot(3,2,3);stem(y,'.');xlabel('n'),ylabel('y(n)')axis([0,60,-1,1])subplot(3,2,4);plot(f,abs(Y));xlabel('w/pi'),ylabel('Ift[y(n)]I')subplot(3,2,5);plot(f/pi,abs(H));xlabel('w/pi'),ylabel('H幅度')subplot(3,2,6);plot(f/pi,abs(Ym));xlabel('w/pi'),ylabel('Ym幅度')实验总结:这次试验让我学会了Z变换和傅里叶变换,掌握Z变换和反变换和傅里叶变换在MATLAB中的处理过程,通过基本技能训练内容对这一技能掌握的更熟练了。并在实验的过程中发现了自己的不足,并加以改正。
本文标题:实验二Z变换和傅立叶变换201101830105
链接地址:https://www.777doc.com/doc-2458574 .html