数字信号处理实验报告基础实验篇实验一离散时间系统及离散卷积一、实验原理利用Matlab软件计算出系统函数的零极点分布、单位脉冲响应和系统频率响应等的图像并于笔算结果进行比较,找出异同。编译合适程序能计算取值范围不同的离散卷积。二、实验目的(1)熟悉MATLAB软件的使用方法。(2)熟悉系统函数的零极点分布、单位脉冲响应和系统频率响应等概念。(3)利用MATLAB绘制系统函数的零极点分布图、系统频率响应和单位脉冲响应。三、实验步骤(1)自编并调试实验程序,并且,给实验程序加注释;(2)按照实验内容完成笔算结果;(3)验证计算程序的正确性,记录实验结果。(4)至少要求一个除参考实例以外的实验结果,在实验报告中,要描述清楚实验结果对应的系统,并对实验结果进行解释说明。四、实验源程序及实验结果实验1-1运行结果xlabel('n');ylabel('h(n)');figure(2)[z,p,g]=tf2zp(b,a);zplane(z,p)title('零极点');function[x,n]=chongji(n1,n2)n=[n1:n2];x=[n==0];functionshiyan1()a=[1,-1,0.9];b=1;x=chongji(-20,120);n=-20:120;h=filter(b,a,x);figure(1)stem(n,h);title('冲击响应');实验1-2运行结果b=[0.0181,0.0543,0.0543,0.0181];a=[1.000,-1.76,1.1829,-0.2781];w=pi*freqspace(500);H=freqz(b,a,w);MH=abs(H);AH=angle(H);subplot(2,1,1);plot(w/pi,MH);grid;axis([0,1,0,1]);xlabel('w(pi)');ylabel('|H|');title('幅度、相位响应');subplot(2,1,2);plot(w/pi,AH);grid;xlabel('w(pi)');ylabel('angle(H)');实验1-3运行结果n=0:30;%输入x(n)和冲激响应h(n)x=zeros(1,length(n));h=zeros(1,length(n));x([find((n=0)&(n=4))])=1;h([find((n=0)&(n=8))])=0.5;figure(1)subplot(3,1,1);stem(n,x);axis([0,30,0,2]);title('输入序列');xlabel('n');ylabel('x(n)');subplot(3,1,2);stem(n,h);axis([0,30,0,2]);title('冲激响应序列');xlabel('n');ylabel('h(n)');%输出响应y=conv(x,h);subplot(3,1,3);n=0:length(y)-1;stem(n,y);title('输出响应');xlabel('n');ylabel('y(n)');实验二离散傅立叶变换与快速傅立叶变换一、实验原理对有限长序列使用离散Fouier变换(DFT)可以很好的反映序列的频谱特性,而且易于用快速算法在计算机上实现,当序列x(n)的长度为N时,它的DFT定义为10NnnkNWnxnxDFTkX10Nk反变换为101NnnkNWkXNkXIDFTnx10Nn有限长序列的DFT是其Z变换在单位圆上的等距采样,或者说是序列Fourier变换的等距采样,因此可以用于序列的谱分析。FFT是为了减少DFT运算次数的一种快速算法。它是对变换式进行一次次分解,使其成为若干较短序列的组合,从而减少运算量。常用的FFT是以2为基数的,其长度。它的效率高,程序简单,使用非常方便,当要变换的序列长度不等于2的整数次方时,为了使用以2为基数的FFT,可以用末位补零的方法,使其长度延长至2的整数次方。用FFT可以实现两个序列的圆周卷积。在一定的条件下,可以使圆周卷积等于线性卷积。一般情况,设两个序列的长度分别为N1和N2,要使圆周卷积等于线性卷积的充要条件是FFT的长度N≥N1+N2对于长度不足N的两个序列,分别将他们补零延长到N。二、实验目的1、加深理解离散傅立叶变换及快速傅立叶变换概念;2、学会应用FFT对典型信号进行频谱分析的方法;3、研究如何利用FFT程序分析确定性时间连续信号;4、熟悉应用FFT实现两个序列的线性卷积的方法。三、实验步骤1、调试实验程序,并且,给参考程序加注释;2、利用编制的计算卷积的计算程序,分别给出一下三组函数的卷积结果三、实验源程序及结果实验2-1运行结果b=[0.0181,0.0543,0.0543,0.0181];a=[1.000,-1.76,1.1829,-0.2781];w=pi*freqspace(500);H=freqz(b,a,w);MH=abs(H);AH=angle(H);subplot(2,1,1);plot(w/pi,MH);grid;axis([0,1,0,1]);xlabel('w(pi)');ylabel('|H|');title('幅度、相位响应');subplot(2,1,2);plot(w/pi,AH);grid;xlabel('w(pi)');ylabel('angle(H)');实验2-2运行结果functionshiyan22()F=50;N=64;T=0.000625;n=1:N;x=cos(2*pi*F*n*T);subplot(2,1,1);plot(n,x);holdontitle('x(n)');xlabel('n');X=fft(x);subplot(2,1,2);plot(n,X);gridtitle('FFT|X|');xlabel('f(pi)');实验2-3运行结果n=0:30;%输入x(n)和冲激响应h(n)x=zeros(1,length(n));h=zeros(1,length(n));x([find((n=0)&(n=4))])=1;h([find((n=0)&(n=8))])=0.5;subplot(3,1,1);stem(x);title('x(n)');axis([0,30,0,2]);subplot(3,1,2);stem(h);title('h(n)');axis([0,30,0,2]);X=fft(x);H=fft(h);Y=X.*H;y=ifft(Y);subplot(3,1,3);stem(abs(y));title('y(n)');实验三IIR数字滤波器设计一、实验原理(1)脉冲响应不变法用数字滤波器的单位脉冲响应序列)(nh模仿模拟滤波器的冲激响应)(tha,让)(nh正好等于)(tha的采样值,即)()(nThnha其中T为采样间隔,如果以)(sHa及)(zH分别表示)(tha的拉氏变换及)(nh的Z变换,则maezmTjsHTzHsT)2(1)((2)双线性变换法s平面与z平面之间满足以下映射关系:11112zzTss平面的虚轴单值地映射于z平面的单位圆上,s平面的左半平面完全映射到z平面的单位圆内。双线性变换不存在混叠问题。双线性变换时一种非线性变换,这种非线性引起的幅频特性畸变可通过预畸而得到校正。以低通数字滤波器为例,将设计步骤归纳如下:1.确定数字滤波器的性能指标:通带临界频率fp、阻带临界频率fs;通带内的最大衰减Rp;阻带内的最小衰减As;采样周期T;2.确定相应的数字角频率,ωp=2πfpT;ωs=2πfrT;3.计算经过预畸的相应模拟低通原型的频率,22,22sspptgTtgT根据Ωp和Ωs计算模拟低通原型滤波器的阶数N,并求得低通原型的传递函数Ha(s);4.用上面的双线性变换公式代入Ha(s),求出所设计的传递函数H(z);5.分析滤波器特性,检查其指标是否满足要求。二、实验目的1、学习模拟-数字变换滤波器的设计方法;2、掌握双线性变换数字滤波器设计方法;3、掌握实现数字滤波器的具体方法。三、实验步骤1、设计一个巴特沃思数字低通滤波器,设计指标如下:通带内2.0p幅度衰减不大于1dB;阻带35.0s幅度衰减不小于15dB;2、编制计算设计的数字滤波器幅度特性和相位特性的程序,并进行实验验证。3、编制实现该数字滤波器程序并且实现数字滤波(1)分别让满足所设计的滤波器的通带、过渡带、阻带频率特性的正弦波通过滤波器,验证滤波器性能;(2)改变正弦抽样时间,验证数字低通滤波器的模拟截止频率实抽样时间的函数。四、实验源程序及结果实验3-1functionshiyan3()fp=200*pi;fs=300*pi;wp=0.2*pi;ws=0.3*pi;Rp=1;As=15;T=1;Fs=1000;[N,fc]=buttord(fp,fs,Rp,As,'s');[b,a]=butter(N,fc,'s');ylabel('H');axis([0,1,0,1.1]);set(gca,'XTickmode','manual','XTick',[0,0.2,0.35,1.1]);set(gca,'YTickmode','manual','YTick',[0,Attn,Ripple,1]);grid;subplot(3,1,2);plot(wd/pi,20*log10((abs(hw2)+eps)/abs(hw2(1))));title('幅度响应(双线性变换法(dB))');w=[0:1000*2*pi];[hf,w]=freqs(b,a,1000);[d,c]=impinvar(b,a,Fs);wd=[0:512]*pi/512;hw1=freqz(d,c,wd);[f,e]=bilinear(b,a,Fs);hw2=freqz(f,e,wd);OmegaP=(2/T)*tan(wp/2);OmegaS=(2/T)*tan(ws/2);ep=sqrt(10^(Rp/10)-1);Ripple=sqrt(1/(1+ep.^2));Attn=1/10^(As/20);subplot(3,1,1);plot(wd/pi,abs(hw1)/abs(hw1(1)));title('幅度响应(冲击响应不变法)');xlabel('w(pi)');ylabel('H');运行结果xlabel('w(pi)');ylabel('H');axis([0,1,-40,5]);set(gca,'XTickmode','manual','XTick',[0,0.2,0.35,1.1]);set(gca,'YTickmode','manual','YTick',[-50,-15,-1,0]);grid;subplot(3,1,3);plot(wd/pi,-angle(hw2));title('相位响应');xlabel('w(pi)');ylabel('piunit');%axis([0,1,0,1.1]);set(gca,'XTickmode','manual','XTick',[0,0.2,0.35,1.1]);set(gca,'YTickmode','manual','YTick',[-1,0,1]);grid;实验四FIR数字滤波器设计一、实验原理窗函数法设计线性相位FIR滤波器步骤确定数字滤波器的性能要求:临界频率{ωk},滤波器单位脉冲响应长度N;根据性能要求,合理选择单位脉冲响应)(nh的奇偶对称性,从而确定理想频率响应)(jdeH的幅频特性和相频特性;求理想单位脉冲响应)(nhd,在实际计算中,可对)(jdeH按M(M远大于N)点等距离采样,并对其求IDFT得)(nhM,用)(nhM代替)(nhd;选择适当的窗函数)(nw,根据)()()(nwnhnhd求所需设计