用凯塞窗设计线性相位FIR滤波器实验四:用凯塞窗设计线性相位FIR滤波器通过本实验掌握窗函数法设计线性相位FIR低通滤波器的方法,对用窗函数法设计线性相位FIR低通滤波器有进一步理解。
1、窗函数设计法原理参见《数字信号处理》教材。2、凯塞窗是对于给定的阻带衰减,是主瓣具有最大能量意义下的最佳窗函数,因此具有最陡的过渡带。所以通常选用凯塞窗来进行FIR滤波器的设计。凯塞窗函数: 其中 为形状参数, 是第二类修正零阶贝塞尔函数,其幂函数展开式为: 给定滤波器的过渡带宽度 和阻带衰减 ,则滤波器的长度和形状参数 可由下列经验公式给出: 其中 。
计算机一台;MATLAB软件
1、 编写程序。计算理想低通滤波器单位取样响应 的M函数文件dlp.m。 其中 , 。2、 编写计算凯塞窗函数的M函数文件kwind.m。编写计算贝塞尔函数的M函数文件besl.m。3、 编写程序,调用dlp.m和kwind.m文件,设计系统FIR滤波器。利用凯塞窗来设计线性相位的FIR滤波器。1. M函数文件dlp.m如下:function H=dlp(wc,N)sum=wc/pi;a=(N-1)/2;n=0:N-1if n~=aH=sum*sinc(wc*(n-a));elseH=sum;EndEnd2.M函数文件besl.m如下:function s=besl(x)eps=10^(-9);n=1;s=1;D=1;while D>(eps*s)T=x/(2*n);n=n+1;D=D*T^2;s=s+D;End endM函数文件kwind.mfunction W=kwind(B,N)for n=1:N W(n)=besl(B*(1-(1-2*(n-1)/…(N-1))^2)^(1/2))/besl(B);endendfunction H=firfilter(np,ns,data,fs)wp=(2*pi*np)/fs;ws=(2*pi*ns)/fs;wc=(wp+ws)/2;dw=ws-wp;lwfree.cnif data>=50 beta=0.1102*(data-8.7);elseif data>21&data<50beta=0.5842*(data-21)^0.4+0.07886*(data-21);else beta=0;endw=kwind(beta,N);H=h.*w;end设计一个抽样频率为15KHZ,通带截止频率为8KHZ,阻带起始频率为3.5KHZ阻带衰减不低于-60dB的线性相位FIR低通滤波器。程序如下:>> H=impfilter(800,3500,60,15000);>>n=0:length(H)-1;>>stem(n,H) 试验中,掌握了窗函数法法设计线性相位FIR低通滤波器的方法,对窗函数法设计线性相位FIR低通滤波器有了进一步的理解,并学会了用MATLAB来设计线性相位FIR低通滤波器。177