数字信号处理实验报告实验目的一、加深对离散傅立叶变换(DFT)和快速傅立叶变换(FFT)的理解,掌握通过两种变换求卷积的编程方法;二、掌握设计巴特沃斯低通双线性IIR数字滤波器的原理和方法,以及从低通转换到高通的技术;三、掌握用窗函数设计FIR数字滤波器的原理及方法,了解各种不同窗函数对滤波器性能的影响;四、提高综合应用和分析的能力,Matlab编程能力等。实验内容实验一一、实验名称快速傅立叶变换二、实验要求编程利用FFT进行卷积计算,通过实验比较出快速卷积优越性。三、实验原理利用FFT进行离散卷积的步骤归纳如下:(1)、设x(n)的列长为N1,h(n)的列长为N2,要求y(n)=x(n)*h(n)=10Nkx(k)h((n-k))NRN(n)=10)()(Nkknhkx[1](2)、为使两有限长序列的线性卷积可用其圆周卷积来代替而不产生混淆,必须选择N≥N1+N2-1。为使用基-2FFT来完成卷积计算,故要求N=2v(v是整数)。用补零的办法使x(n),h(n)具有列长N,即x(n)=1-N1,N1N1n01-1210nx(n),,,,Nh(n)=1-N1,N2N2n01-2210nh(n),,,,N(3)为用圆周卷积定理计算线性卷积,先用FFT计算x(n),h(n)的N点离散傅立叶变换x(n)FFTX(k)[2]h(n)FFTH(k)[3](4)组成卷积Y(k)=X(k)H(k)[4](5)利用IFFT计算Y(k)的离散傅立叶逆变换得到线性卷积y(n)。由于y(n)=10)]()/1[(NkkYNWN-nk=[10)](*)/1[(NkkYNWNnk]*[5]可见,y(n)可由求(1/N)Y*(k)的FFT再取共轭得到。四、实验题目(1)两个正弦序列的卷积(均为两个周期,256点)输入序列:卷积输出:(2)正弦序列与三角序列的卷积(正弦序列为两个周期,256点;三角序列为一个周期,256个点)输入序列:卷积输出:(3)两个矩形序列的卷积(均为两个周期,256个点,占空比0.5)输入序列:卷积输出:(4)单位冲击与正弦波(单位冲击序列为256个点,正弦序列为1.7个周期,256个点)输入序列:卷积输出:任何序列与单位冲击序列的卷积为原序列,所以结果正确。(5)正弦序列与矩形序列的卷积(两序列均为256个点,正弦序列为两个周期,矩形序列为两个周期,占空比为0.2)输入序列:卷积输出:主要代码(只选一个参考,下同):%(1)的代码k=1:256;s1=sin(k/64*pi);s2=s1;xk=fft(s1,2*length(k)-1);yk=fft(s2,2*length(k)-1);rm=ifft(xk.*yk);m=(-255):(255);stem(m,rm)xlabel('m');ylabel('·ù¶È');实验二一、实验名称IIR数字滤波器二、实验要求:设计巴特沃斯低通双线性IIR数字滤波器,N=3,ωc=0.2π。输入信号为以下三种序列(选择点数为128或256):1.单位取样2.三角序列(两个周期)3.矩形序列(占空比0.1或0.5)给出输出的时域及频域效果,并进行简单的分析。三、实验原理:滤波器的作用是滤除信号中某一部分的频率分量。信号经过滤波器处理,就相当与信号频谱与滤波器的频率响应相乘的结果。在时域里来看,这就是信号与滤波器的冲激响应相卷积。可以说滤波器就是一个卷积器。IIR滤波器的系统函数对应的差分方程为模拟滤波器系统函数)(sHa的一般表示式为MrNkkrknyarnxbny01)()()(NkkkMrrrzazbzH101)(数字滤波器系统函数H(z)的普遍表示式为三阶次巴特沃斯滤波器的系统函数为由Ha(s)的系数表示经双极性变换后的Y(z)的表达式(三阶)ωc=0.2πY(Z)=0.018099*X(Z)*Z-3+0.054297*X(Z)*Z-2+0.054297*X(Z)*Z-1+0.018099*X(Z)+0.27806*Y(Z)*Z-3-1.18289*Y(Z)*Z-2+1.76004*Y(Z)*Z-1即y(n)=0.018099*x(n-3)+0.054297*x(n-2)+0.054297*x(n-1)+0.018099*x(n)+0.27806*y(n-3)-1.18289*y(n-2)+1.76004*y(n-1)由低通数字滤波器原形变换为高通数字滤波器由截止频率ωc=0.2π三阶低通变换为截止频率ωc=0.6π三阶高通,经计算,其表达式为:y(n)=-0.098531x(n-3)+0.295594x(n-2)-0.295594x(n-1)+0.098531x(n)-0.056297y(n-3)-0.42179y(n-2)-0.57724y(n-1)计算过程:由给定的条件可计算出巴特沃斯系统函数的系数,相应可知摸拟系统函数的系数,经双极性变换法求出数字滤波器的系数,最后由差分方程实现低通滤波效果。经相应的Z平面映射,由映射公式变换得出数字高通滤波器系统函数的系数,从而由差分方程实现高通效果。四、实验结果及分析:A.低通滤波:)22/(32233ccccsss)]2tan(2[TcNNNNNkkkNrrrasCsCsCCsdsdsddsCsdsH2210221000)(NNNNNkkkNrrrzAzAzAzBzBzBBzazbzH221122110001)(1111aaz)2cos()2cos(cccca(1).单位取样(256个点)输入序列:低通滤波后的傅立叶变换和输出序列:0100200300-0.500.51TheresultofFilter010020030000.20.40.60.81Thesignalofy0123400.511.520123400.511.5(2).三角序列(256个点,两个周期)输入序列:低通滤波后的频谱和输出序列:0100200300-1-0.500.51TheresultofFilter0100200300-1-0.500.51Thesignalofy0123405010015001234050100150(3).矩形序列(两个周期,256个点,占空比0.5)输入序列:低通滤波后的频谱和输出序列:0100200300-2-1012TheresultofFilter0100200300-1-0.500.51Thesignalofy0123405010015020001234050100150200主要代码:%y=[ones(1,64)-ones(1,64)ones(1,64)-ones(1,64)];%y=[1zeros(1,255)];y=[1:3231:-1:-32-31:3231:-1:-32-31:0]./32;k=2*length(y);[B,A]=butter(3,0.2*pi);[num1,den1]=impinvar(B,A);[h1,w]=freqz(num1,den1);[HH,TT]=impz(B,A);YY1=conv(HH,y);%YY=filter(B,A,y);f=fft(y,k);FF1=fft(YY1,k);subplot(2,2,2);stem(YY1(1:length(y)),'.');title('TheresultofFilter');subplot(2,2,1);stem(y,'.');title('Thesignalofy');subplot(2,2,3);plot(w,abs(f));subplot(2,2,4);plot(w,abs(FF1));B.高通滤波:(1)矩形序列(256个点,两个周期,占空比0.5)输入序列:高通滤波输出的频谱:高通滤波输出:0100200300-1-0.500.51x10-22TheresultofFilter0100200300-1-0.500.51Thesignalofy012340501001502000123400.51x10-20(2)矩形序列(256个点,两个周期,占空比0.1)输入序列:高通滤波输出的频谱和高通滤波输出:0100200300-1-0.500.51x10-22TheresultofFilter0100200300-1-0.500.51Thesignalofy0123401002003000123400.511.5x10-20主要代码:y=[ones(1,13)-ones(1,115)ones(1,13)-ones(1,115)];k=2*length(y);[B,A]=butter(3,0.2*pi,'high');[num1,den1]=impinvar(B,A);[h1,w]=freqz(num1,den1);[HH,TT]=impz(B,A,'high');YY1=conv(HH,y);%YY=filter(B,A,y);f=fft(y,k);FF1=fft(YY1,k);subplot(2,2,2);stem(YY1(1:length(y)),'.');title('TheresultofFilter');subplot(2,2,1);stem(y,'.');title('Thesignalofy');subplot(2,2,3);plot(w,abs(f));subplot(2,2,4);plot(w,abs(FF1));实验三一、实验名称FIR数字滤波器二、实验要求:设计一个截止频率为ωc=0.2π的线性相位低通数字滤波器,ω1=0.3π,ω2=0.3π的线性相位带通滤波器,分别用矩形窗和海明窗对其进行截断,N为61。输入序列64-128点,输出128-256点。输入单位取样及矩形序列(占空比0.1),画出输出序列及其频谱。三、实验原理:理想低通数字滤波器,其频率特性为Hd(ejω),现假设其幅频特性|Hd(ejω)|=1,相频特性φ(ω)=0,那么,该滤波器的单位抽样响应hd(n)是以为hd(0)为对称的sinc函数,hd(0)=ωc/π。我们将hd(n)截短,例如仅取hd(-M/2),…,hd(0),…,hd(M/2),并将截短后的hd(n)移位,得h(n)=hd(n-M/2)n=0,1,…,M那么h(n)是因果的,且为有限长,长度为M+1,令H(z)=∑h(n)Z-nn=0,1,…,M即得到所设计滤波器的转移函数。H(z)的频率响应将近似Hd(ejω),且是线形相位的。窗函数设计法是一种逼近,用其频响H(ejw)去逼近所要求的理想滤波器频响Hd(ejw),用其有限长单位冲击响应h(n)去逼近理想滤波器的无限长单位冲击响应hd(n),即:设计FIRDF的关键是求出h(n),它应该是一个有限长因果序列。有限性可通过对hd(n)截取一段,即与某一窗函数相乘获得;因果性可通过在时域上进行的时延来获得,这不影响幅频特性,只影响相频。常用的窗函数有矩形窗、海明窗等。设计时,先根据算出hd(n),再根据指定的窗函数点数以及窗的类型得出h(n),对输入的待滤波序列和h(n)做卷积,即可达到滤波效果。具体实现时可根据线形卷积和圆周卷积的关系,通过补点把线形卷积化为圆周卷积,再根据离散时域的卷积定理,借助FFT求出两序列的频谱,对其频域的乘积做IFFT,即得到时域的圆周卷积。理想低通滤波器幅频特性可知:同理:带通滤波器的单位冲击响应为:h(n)=(Sinω2n-Sinω1n)/(πn)所以:10)()()(Nmmnxmhny四、实验结果及分析:以下各图输入序列均为128个点,输出序列均为256个点,滤波器窗函数取样点的数目N均为61。低通滤波(1)单位冲击序列输入:02040608010012014000.51nx(n)输入序列05010015020025030000.51n