《数字信号处理》课程研究性学习报告DSP基本概念和技能的训练姓名张然学号13211074同组成员蔡逸飞13211078朱斌指导教师陈后金时间2015/6DSP基本概念和技能研究性学习报告【目的】(1)掌握离散信号和系统时域、频域和z域分析中的基本方法和概念;(2)学会用计算机进行离散信号和系统时域、频域和z域分析。(3)培养学生自主学习能力,以及发现问题、分析问题和解决问题的能力。【研讨内容】问题一(1)阅读教材1.9节及MATLAB中的Help,学会MATLAB函数filter的使用方法;(2)利用filter函数,求出下列系统的单位脉冲响应,并判断系统是否稳定。讨论实验所获得的结果。211850586.0845.111)(zzzH21285.085.111)(zzzH【题目目的】1.掌握LTI系统单位脉冲响应的基本概念、系统稳定性与单位脉冲响应的关系;2.学会filter函数的使用方法及用filter函数计算系统单位脉冲响应;3.体验有限字长对系统特性的影响。【仿真结果】极点10.94300.9020极点21.00000.85000510152025303540455002468y1[k]0510152025303540455002468y2[k]【结果分析】我们所使用的计算机的是有限字长的,当我们用计算机对系统的各项参数进行量化,计算离散时,这些量化误差会使实际系统的极点值偏离理论值,导致系统的特性发生变化,甚至会使稳定系统变为非稳定系统。【问题探究】已知LTI系统的系统函数)(zH,有哪些计算系统单位脉冲响应方法,比较这些方法的优缺点。Filter函数,可计算出差分方程的零状态响应,既可以用来求y[k],也可以求出h[k];Impulse函数,只是用来实现冲击响应的;Conv函数,是用来计算卷积的,可以用来求y[k]【仿真程序】b1=[100];b2=[100];a1=[1-1.8450.850586];a2=[1-1.850.85];x=0:50;y1=filter(b1,a1,x);subplot(2,1,1);stem(y1);axis([05008])[r1,p1,m1]=residuez(b1,a1);disp('极点1');disp(p1');y2=filter(b2,a2,x);subplot(2,1,2);stem(y2);axis([05008])[r2,p2,m2]=residuez(b2,a2);disp('极点2');disp(p2');b1=[100];b2=[100];a1=[1-1.8450.850586];a2=[1-1.850.85];n=0:512;x=[1zeros(1,512)]y1=filter(b1,a1,x);subplot(2,1,1);stem(n,y1);axis([05008])axis([05008])ylabel('y1[k]')[r1,p1,m1]=residuez(b1,a1);disp('极点1');disp(p1');y2=filter(b2,a2,x);subplot(2,1,2);stem(n,y2);axis([05008])ylabel('y2[k]')[r2,p2,m2]=residuez(b2,a2);disp('极点2');disp(p2');当取下列值时a1=[1-1.85060.850586];a2=[1-1.850.906];极点11.00010.8505极点20.9250-0.2244i0.9250+0.2244i0510152025303540455002468y1[k]05101520253035404550-505y2[k]问题二(1)阅读教材1.9节及MATLAB中的Help,学会MATLAB函数freqz的使用方法;(2)利用MATLAB语句x=firls(511,[00.40.4041],[1100]产生一个长度为512的序列x[k],用plot函数画出序列x[k]的波形,用freqz函数画出该序列的幅度频谱。观察所得结果,你让为序列x[k]有何特征?(3)已知序列)cos(][][0kkxky,分别画出ππ,9.0π,8.0π,4.00时序列y[k]的幅度频谱。解释所得到的结果。【题目目的】1.学会用MATLAB函数freqz计算序列频谱;2.掌握序列频谱的基本特性及分析方法。【温磬提示】只需知道MATLAB语句x=firls(511,[00.40.4041],[1100]产生一个长度为512的序列x[k],该序列满足255,,1,0],511[][kkxkx不需知道其他细节。用函数freqz计算该序列的频谱,在画幅度频谱时,建议用/π为横坐标,称其为归一化频率。【仿真结果】-1-0.500.510100200幅度频谱w0=0.4*pi-1-0.500.5100.51幅度频谱w0=0.8*pi-1-0.500.5100.51幅度频谱w0=0.9*pi-1-0.500.51012幅度频谱w0=1*pi-2-1.5-1-0.500.511.52-10120200400600-0.500.5-2-1012-1012-1-0.500.5100.51幅度频谱w0=0.4*pi-1-0.500.5100.51幅度频谱w0=0.8*pi-1-0.500.5100.51幅度频谱w0=0.9*pi-1-0.500.51012幅度频谱w0=1*pi【结果分析】)cos(][][0kkxkyY[k]=x[k](exp(jΩ0k)+exp(-jΩ0k))(1/2)Y(ejΩ)=(1/2)[X(ej(Ω+Ω0))+X(ej(Ω-Ω0))]y[k]的幅度频谱是x[k]幅度频谱左移Ω0与右移Ω0之和的一半,在平移的过程中,会出现混叠现象。【问题探究】有部分的计算结果可能与理论分析的结果不一致,分析出现该现象的原因,给出解决问题方法并进行仿真实验。利用fft函数来求解。【仿真程序】k=0:511;x=firls(511,[00.40.4041],[1100]);b=x;a=[1];w=linspace(-pi,pi,512);y=freqz(b,a,w);subplot(3,2,1:2);plot(w/pi,abs(y));axis([-2,2,-1,2]);y1=conv(x,cos(0.4*pi*k));g1=freqz(y1,a,w);subplot(3,2,3);plot(w/pi,abs(g1));ylabel('幅度频谱')xlabel('w0=0.4*pi')y2=conv(x,cos(0.8*pi*k));g2=freqz(y2,a,w);subplot(3,2,4);plot(w/pi,abs(g2));ylabel('幅度频谱')xlabel('w0=0.8*pi')y3=conv(x,cos(0.9*pi*k));g3=freqz(y3,a,w);subplot(3,2,5);plot(w/pi,abs(g3));ylabel('幅度频谱')xlabel('w0=0.9*pi')y4=conv(x,cos(1*pi*k));g4=freqz(y4,a,w);subplot(3,2,6);plot(w/pi,abs(g4));ylabel('幅度频谱')xlabel('w0=1*pi')【改进程序】k=0:511;x=firls(511,[00.40.4041],[1100]);b=x;a=[1];w=linspace(-pi,pi,512);y=freqz(b,a,w);subplot(3,2,1:2);plot(w/pi,abs(y));axis([-2,2,-1,2]);y=x.*cos(0.4*pi*k);g=fft(y);subplot(3,2,3);plot(w/pi,abs(g));ylabel('幅度频谱')xlabel('w0=0.4*pi')y=x.*cos(0.8*pi*k);g=fft(y);subplot(3,2,4);plot(w/pi,abs(g));ylabel('幅度频谱')xlabel('w0=0.8*pi')y=x.*cos(0.9*pi*k);g=fft(y);subplot(3,2,5);plot(w/pi,abs(g));ylabel('幅度频谱')xlabel('w0=0.9*pi')y=x.*cos(1*pi*k);g=fft(y);subplot(3,2,6);plot(w/pi,abs(g));ylabel('幅度频谱')xlabel('w0=1*pi')问题三已知一因果稳定系统的H(z)为1212120.99()11.550.6zzHzzz(1)试求出与H(z)有相同幅度响应的最小相位系统Hmin(z)和最大相位系统Hmax(z);(2)利用freqz和angle函数,画出并比较H(z)、Hmin(z)和Hmax(z)的相位响应;(3)利用grpdelay函数,画出系统H(z)、Hmin(z)和Hmax(z)的群延迟;(4)在教材中对最小相位系统给出了如下结论H(z)=Hmin(z)Ha(z)Ha(z)是一个稳定的全通系统。对最大相位系统能否得到一个类似的结论?给出你的结论不【题目目的】1.掌握全通滤波器的基本特征和特性;2.学会计算具有相同幅度响应的最小相位系统Hmin(z)和最大相位系统Hmax(z)。3.了解最小相位系统Hmin(z)和最大相位系统Hmax(z)的相位特征。【温磬提示】在比较系统的相位响应时,为便于比较的进行,建议把不同系统相位响应画在同一个坐标系中,可用unwrap函数解决某些系统相位响应不连续的问题。【仿真结果】R=-1.000-0.900000.10.20.30.40.50.60.70.80.91-4-2024相位响应00.0050.010.0150.020.0250.030.0350.040.0450.0500.050.10.150.2群延迟【结果分析】最小相位系统:Hmin(z)=(1.1+1.99z-1+0.9z-2)/(1+1.55z-1+0.6z-2)最大相位系统:Hmax(z)=(0.9+1.99z-1+1.1z-2)/(1+1.55z-1+0.6z-2)由图像可知,最小相位系统的相位值最大,最大相位系统的相位值最小,即最小相位系统相位滞后最小,最大相位系统相位滞后最大。【问题探究】手算时,如何找出最小相位系统Hmin(z)和最大相位系统Hmax(z)?用计算机自动求解时,如何找出最小相位系统Hmin(z)和最大相位系统Hmax(z)?你所用的算法是一样的吗?解:手算时,将H(Z)的分子写成多个因式相乘的形式,找到解为大于1的因式,将其系数调换即可得到最小相位系统。同理,找到解为小于1的因式,将其系数调换后即可得到最大相位系统。用计算机自动求解时,也是先因式分解,然后将其系数调换,然后用计算机算出结果,两种方法是一样的。【仿真程序】p=[120.99];r=roots(p)B1=[1,2,0.99];A=[1,1.55,0.6];[H1,w]=freqz(B1,A,1000);Hf1=angle(H1);b1=[1.1,1];b2=[1,0.9];B2=conv(b1,b2);[H2,w]=freqz(B2,A,1000);Hf2=angle(H2);s1=[1,1.1];s2=[0.9,1];B3=conv(s1,s2);[H3,w]=freqz(B3,A,1000);Hf3=angle(H3);subplot(2,1,1);plot(w/pi,Hf1,'r',w/pi,Hf2,'g',w/pi,Hf3,'b');title('相位响应')B1=[1,2,0.99];A=[1,1.55,0.6];[Hg1,w]=grpdelay(B1,A,512);b1=[1.1,1];b2=[1,0.9];B2=conv(b1,b2);[Hg2,w]=grpdelay(B2