您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 实验四-窗函数法设计FIR数字滤波器
实验四窗函数法设计FIR数字滤波器一、实验目的1、掌握窗函数法设计FIR数字滤波器的原理及具体方法。2、掌握频率取样法设计FIR数字滤波器的原理和基本方法。3、学习利用窗函数法和频率取样法设计低通、带通、高通、带阻数字滤波器。二、实验环境计算机、MATLAB软件三、实验基础理论窗函数设计FIR滤波器1.基本原理窗函数设计法的基本思想为,首先选择一个适当的理想的滤波器()jdHe,然后用窗函数截取它的单位脉冲响应(n)dh,得到线性相位和因果的FIR滤波器。这种方法的重点是选择一个合适的窗函数和理想滤波器,使设计的滤波器的单位脉冲响应逼近理想滤波器的单位脉冲响应。2.设计步骤(1)给定理想滤波器的频率响应()jdHe,在通带上具有单位增益和线性相位,在阻带上具有零响应。一个带宽为()cc的低通滤波器由下式给定:||,0)(,||,)(cjdcjajdeHeeH其中为采样延迟,其作用是为了得到一个因果系统。(2)确定这个滤波器的单位脉冲响应)())(sin()(anannhcd为了得到一个(n)h长度为N的因果的线性相位FIR滤波器,我们令21Na(3)用窗函数截取(n)dh得到所设计FIR数字滤波器:)()()(nRnhnhNd3.窗函数的选择常用的窗函数有矩形(Rectangular)窗,汉宁(Hanning)窗,海明(Hamming)窗、布莱克曼(Blackman)窗、凯瑟(Kaiser)窗等表4-1MATLAB中产生窗函数的命令MATLAB函数窗函数MATLAB函数窗函数Boxcar矩形窗函数Blackman布莱克曼窗Hanning汉宁窗函数Kaiser凯瑟窗函数Hamming海明窗表4-2常用窗函数的特性窗函数窗函数频率特性加窗后滤波器指标旁瓣峰值dB主瓣宽度过渡带宽最小阻带衰减dB矩形窗-134π/N1.8π/N-21汉宁窗-318π/N6.2π/N-44海明窗-418π/N6.6π/N-53布莱克曼窗-5712π/N11π/N-74凯瑟窗是一种广泛在实际中广泛应用的窗函数,它由下式给定:20021(1)1()[]nINnI其中0Ix是修正的零阶贝塞尔函数,参数控制最小阻带衰减,这种窗函数对于相同的N可以提供不同的过渡带宽。由于贝塞尔函数比较复杂,这种窗函数的设计方程很难推导,然而幸运的是,有一些经验设计方程可以直接使用。已知给定的指标,,RpstpsA和,滤波器长度N和凯瑟窗参数可以按如下凯瑟窗方程给出过渡带带宽:stp7.9512.285sAN0.40.1102(8.7),500.5842(21)0.07886(21),2150sssssAAAAA频率取样设计FIR滤波器1.基本原理频率取样法从频域出发,把理想的滤波器()jdHe等间隔采样得到()dHk,将()dHk作为实际设计滤波器的()Hk:2()()()|0,1,,1jdkNHkHkHekN得到()Hk以后可以由()Hk来确定唯一确定滤波器的单位脉冲响应()hn,()jHe可以由()Hk求得:10()[()]2()()()NjkhnIDFTHkHeHkkN其中()x为内插函数:12sin(/2))sin(/2)NjNeN(有()Hk求得的频率响应()jHe将逼近()jdHe。如果我们设计的是线性相位FIR滤波器,则()Hk的幅度和相位满足线性相位滤波器的约束条件。我们将()Hk表示为如下形式()()()=()()jkjkrHkHkeHke当()hn为实数,则*()()HkHNk由此得到()()rrHkHNk即()/2rHkkN以为中心偶对称。在利用线性相位条件可知,对于1型和2型线性相位滤波器:121()0,,22()121()()1,122NkNkNkNNNkkNN对于3型和4型线性相位滤波器121()0,,222()121()()1,1222NkNkNkNNNkkNN2.设计步骤(1)由给定的理想滤波器给出()rHk和()k。(2)由()()()=()()jkjkrHkHkeHke求得()Hk(3)根据()Hk求得()hn或()jHe四、实验内容1、设计一个数字低通FIR滤波器,其技术指标如下:0.2,0.25ppRdB0.3,50stsAdB分别采用矩形窗、汉宁窗、海明窗、布莱克曼窗、凯瑟窗设计该滤波器。结合实验结果,分别讨论采用上述方法设计的数字滤波器是否都能满足给定指标要求。(1)矩形窗程序代码:wp=0.2*pi;wst=0.3*pi;tr_width=wst-wp;N=ceil(1.8*pi/tr_width)n=0:N-1;wc=(wst+wp)/2;alpha=(N-1)/2;hd=(wc/pi)*sinc((wc/pi)*(n-alpha));w_boxcar=boxcar(N)';h=hd.*w_boxcar;subplot(221);stem(n,hd,'filled');axistight;xlabel('n');ylabel('hd(n)');[Hr,w1]=zerophase(h);subplot(222);plot(w1/pi,Hr);axis;xlabel('\omega/\pi');ylabel('H(\omega)');subplot(223);stem(n,h,'filled');axistight;xlabel('n');ylabel('h(n)');[H,w]=freqz(h,1);subplot(224);plot(w/pi,20*log10(abs(H)/max(H)));axistight;xlabel('\omega/\pi');ylabel('dB');gridon;MATLAB图形:(2)汉宁窗程序代码:wp=0.2*pi;wst=0.3*pi;tr_width=wst-wp;N=ceil(6.2*pi/tr_width)n=0:N-1;wc=(wst+wp)/2;alpha=(N-1)/2;hd=(wc/pi)*sinc((wc/pi)*(n-alpha));w_boxcar=hanning(N)';h=hd.*w_boxcar;subplot(221);stem(n,hd,'filled');axistight;xlabel('n');ylabel('hd(n)');[Hr,w1]=zerophase(h);subplot(222);plot(w1/pi,Hr);axis;xlabel('\omega/\pi');ylabel('H(\omega)');subplot(223);stem(n,h,'filled');axistight;xlabel('n');ylabel('h(n)');[H,w]=freqz(h,1);subplot(224);plot(w/pi,20*log10(abs(H)/max(H)));05101500.10.2nhd(n)00.51-0.500.511.5/H()05101500.10.2nh(n)00.20.40.60.8-80-60-40-200/dBaxistight;xlabel('\omega/\pi');ylabel('dB');gridon;MATLAB图形:(3)海明窗程序代码:wp=0.2*pi;wst=0.3*pi;tr_width=wst-wp;N=ceil(6.6*pi/tr_width)n=0:N-1;wc=(wst+wp)/2;alpha=(N-1)/2;hd=(wc/pi)*sinc((wc/pi)*(n-alpha));w_boxcar=hamming(N)';h=hd.*w_boxcar;subplot(221);stem(n,hd,'filled');axistight;xlabel('n');ylabel('hd(n)');[Hr,w1]=zerophase(h);subplot(222);plot(w1/pi,Hr);axis;xlabel('\omega/\pi');ylabel('H(\omega)');subplot(223);stem(n,h,'filled');axistight;xlabel('n');020406000.10.2nhd(n)00.51-0.500.511.5/H()020406000.050.10.150.2nh(n)00.20.40.60.8-120-100-80-60-40-200/dBylabel('h(n)');[H,w]=freqz(h,1);subplot(224);plot(w/pi,20*log10(abs(H)/max(H)));axistight;xlabel('\omega/\pi');ylabel('dB');gridon;MATLAB图形:(4)布莱克曼窗程序代码:wp=0.2*pi;wst=0.3*pi;tr_width=wst-wp;N=ceil(11*pi/tr_width)n=0:N-1;wc=(wst+wp)/2;alpha=(N-1)/2;hd=(wc/pi)*sinc((wc/pi)*(n-alpha));w_boxcar=blackman(N)';h=hd.*w_boxcar;subplot(221);stem(n,hd,'filled');axistight;xlabel('n');ylabel('hd(n)');[Hr,w1]=zerophase(h);subplot(222);plot(w1/pi,Hr);axis;xlabel('\omega/\pi');ylabel('H(\omega)');subplot(223);stem(n,h,'filled');axistight;xlabel('n');ylabel('h(n)');020406000.10.2nhd(n)00.51-0.500.511.5/H()020406000.10.2nh(n)00.20.40.60.8-100-500/dB[H,w]=freqz(h,1);subplot(224);plot(w/pi,20*log10(abs(H)/max(H)));axistight;xlabel('\omega/\pi');ylabel('dB');gridon;MATLAB图形为:(5)凯瑟窗程序代码:wp=0.2*pi;wst=0.3*pi;tr_width=wst-wp;As=50;N=ceil((As-7.95)/(2.285*tr_width))+1;beta=0.1102*(As-8.7);n=0:N-1;wc=(wst+wp)/2;alpha=(N-1)/2;hd=(wc/pi)*sinc((wc/pi)*(n-alpha));w_boxcar=kaiser(N,beta)';h=hd.*w_boxcar;subplot(221);stem(n,hd,'filled');axistight;xlabel('n');ylabel('hd(n)');[Hr,w1]=zerophase(h);subplot(222);plot(w1/pi,Hr);axis;xlabel('\omega/\pi');ylabel('H(\omega)');subplot(223);stem(n,h,'filled');05010000.10.2nhd(n)00.51-0.500.511.5/H()05010000.10.2nh(n)00.20.40.60.8-150-100-500/dBaxistight;xlabel('n');ylabel('h(n)');[
本文标题:实验四-窗函数法设计FIR数字滤波器
链接地址:https://www.777doc.com/doc-7372712 .html