当前位置:文档之家› 基于matlab的FIR低通高通带通带阻滤波器设计

基于matlab的FIR低通高通带通带阻滤波器设计

基于matlab的FIR低通-高通-带通-带阻滤波器设计————————————————————————————————作者:————————————————————————————————日期:北京师范大学课程设计报告课程名称: DSP设计名称:FIR 低通、高通带通和带阻数字滤波器的设计姓名:学号:班级:指导教师:起止日期:课程设计任务书学生班级: 学生姓名: 学号:设计名称: FIR 低通、高通带通和带阻数字滤波器的设计 起止日期: 指导教师:设计目标:1、采用Kaiser 窗设计一个低通FIR 滤波器 要求:采样频率为8kHz ;通带:0Hz~1kHz ,带内波动小于5%; 阻带:1.5kHz ,带内最小衰减:Rs=40dB 。

2、采用hamming 窗设计一个高通FIR 滤波器 要求:通带截至频率wp=rad π6.0, 阻带截止频率ws=rad π4.0,通带最大衰减dB p 25.0=α,阻带最小衰减dB s 50=α3、采用hamming 设计一个带通滤波器低端阻带截止频率 wls = 0.2*pi ;低端通带截止频率 wlp = 0.35*pi ; 高端通带截止频率 whp = 0.65*pi ; 高端阻带截止频率 whs = 0.8*pi ;4、采用Hamming 窗设计一个带阻FIR 滤波器 要求:通带:0.35pi~0.65pi ,带内最小衰减Rs=50dB ; 阻带:0~0.2pi 和0.8pi~pi ,带内最大衰减:Rp=1dB 。

FIR 低通、高通带通和带阻数字滤波器的设计 一、 设计目的和意义1、熟练掌握使用窗函数的设计滤波器的方法,学会设计低通、带通、带阻滤波器。

2、通过对滤波器的设计,了解几种窗函数的性能,学会针对不同的指标选择不同的窗函数。

二、 设计原理一般,设计线性相位FIR 数字滤波器采用窗函数法或频率抽样法,本设计采用窗函数法,分别采用海明窗和凯泽窗设计带通、带阻和低通。

如果所希望的滤波器的理想频率响应函数为)(jw d e H ,如理想的低通,由信号系统的知识知道,在时域系统的冲击响应h d (n)将是无限长的,如图2、图3所示。

H d (w)-w c w c图2图3若时域响应是无限长的,则不可能实现,因此需要对其截断,即设计一个FIR 滤波器频率响应∑-=-=10)()(N n jwn jwe n h e H 来逼近)(jw d e H ,即用一个窗函数w(n)来截断h d (n),如式3所示:)()()(n w n h n h d =(式1)。

最简单的截断方法是矩形窗,实际操作中,直接取h d (n)的主要数据即可。

)(n h 作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数为:∑-=-=10)()(N n jwn jwe n h e H(式2)令jw e z =,则∑-=-=10)()(N n n z n h z H(式3),式中,N 为所选窗函数)(n w 的长度。

如果要求线性相位特性,)(n h 还必须满足:)1()(n N h n h --±= (式6),根据式6中的正、负和长度N 的奇偶性又将线性相位FIR 滤波器分成四类。

要根据所设计的滤波器特性正确选择其中一类。

例如:要设计线性相位低通特性,可选择)1()(n N h n h --=类。

三、 详细设计步骤s S f T Ω=Ω=ω(公式4)表1窗函数过滤带宽/(2π/N )阻带最小带宽海明窗3.3-53凯泽窗5-801、采用Kaiser 窗设计一个低通FIR 滤波器要求:采样频率为8kHz ;通带:0Hz~1kHz ,带内波动小于5%; 阻带:1.5kHz ,带内最小衰减:Rs=40dB思路分析:根据公式4可以得到通带截止频率p ω为0.25π,阻带截止频率s ω为0.375π。

根据表1可算得ωπ∆=10N ,则凯泽窗的时域表达式可以通过n ω=kaiser(N)得到。

低通滤波器的时域表达式是()()()()∂-∂-=n pi n n h dn ωsin ,其中∂应该关于21-N 对称。

这样,滤波器就得到了为:()()n dn d n h n h ω=。

最后利用函数freqz 得到加窗后的滤波器的幅频响应和相频响应。

2、采用Hamming 窗设计一个高通线性相位FIR 滤波器要求:设计用窗函数法设计线性相位高通滤波器,要求截至频率wp=rad π6.0,阻带截止频率ws=rad π4.0,通带最大衰减dB p 25.0=α,阻带最小衰减dB s 50=α。

有如下公式计算高通滤波器的通带截止频率以及阻带截止频率:s p p F f w /2π= (1)s s s F f w /2π= (2))1(log 2010p P δα+= (3)s s δα10log 20-= (4)分析:根据设计要求给出的高通滤波器的性能指标以及(1) (2) (3) (4)公式计算得出该高通滤波器性能指标的另一种表示为:通带偏差 =p δ0.0292 阻带偏差 =s δ0.0032 通带边沿频率 =p f 1000 KHZ 阻带边沿频率 =s f 600 KHZ选择窗函数W(n),计算窗函数长度N ,由已知条件知:阻带最小衰减dB s 40=α参照表(1)可知汉宁窗和哈明窗都满足要求。

我选择的窗函数是汉宁窗。

过渡带宽度π2.0=-≤s p t w w B 汉宁窗的精确过度带宽N B t /2.6π= 故要求ππ2.0)/2.6(≤=N B t ,解得:31≥N又根据前面分析的四种类型的FIR 滤波器的可知,对于高通滤波器,N 必须取奇数, 故 N=31与汉宁窗函数的可以得知 )()]12cos(1[5.0)(31n R nn w π-=3、采用Hamming 窗设计一个带通线性相位FIR 滤波器要求:低端阻带截止频率 wls = 0.2*pi ;低端通带截止频率 wlp = 0.35*pi ; 高端通带截止频率 whp = 0.65*pi ;高端阻带截止频率 whs = 0.8*pi ;思路分析:由条件可知通带为0.3pi,由通带大小可设计滤波器。

这样,滤波器就得到了为:()()n dn n dn d h n h n h ωω21+=。

最后利用函数freqz 得到加窗后的滤波器的幅频响应和相频响应。

4、采用Hamming 窗设计一个带阻FIR 滤波器要求:阻带:0.35pi~0.65pi ,带内最小衰减Rs=50dB ; 通带:0~0.2pi 和0.8pi~pi ,带内最大衰减:Rp=1dB思路分析:根据要求知阻带截止频率s ω分别为0.35π,π65.0。

通带截止频率为0.2π和0.8π。

.根据表1可算得ωπ∆=6.6N ,则海明窗的时域表达式可以通过n ω=hamming(N)得到。

带阻滤波器可以看成是高通加低通。

它的时域表达式是()()()()()()()()()()∂-∂-+∂-∂--∂-∂-=n pi n n pi n n pi n n h l h dn ωωπsin sin sin ,其中∂应该关于21-N 对称。

这样,滤波器就得到了为:()()n dn d n h n h ω=。

最后利用函数freqz 得到加窗后的滤波器的幅频响应和相频响应。

附程序:%子函数,产生理想滤波器的时域波形function hd=ideal(w,N);%1,2型理想低通滤波器单位单位脉冲响应hd(n),w 为窗口长度,N 为截止频率% alpha=(N-1)/2; n=[0:N-1];m=n-alpha+eps;%加一个小数以避免零作除数 hd=sin(w*m)./(pi*m);四 程序代码1、低通FIR 滤波器: % 采样频率为8kHz ;% 通带:0Hz~1kHz,带内波动小于5%;wp=0.、25pi% 阻带:1.5kHz,带内最小衰减:Rs=40dB。

wst=0.375pi%clcclearRs=40;Wp=0.25*pi; %根据通带:0Hz~1kHz,带内波动小于5%;得wp=0.125piWst=0.375*pi; % 阻带:1.5kHz,带内最小衰减:Rs=40dB。

得wst=0.1875pidert_w=Wst-Wp;% N=ceil((Rs-7.95)*2*pi/(14.36*dert_w)+1);N=ceil((10*pi/dert_w)+1);beta=0.5842*(Rs-21)^0.4+0.07886*(Rs-21);hd=ideal((Wst-Wp)/2,N); %滤波器在时域系统的冲击响应B=kaiser(N,beta); %凯泽窗h=hd.*(B)'; %加窗后[H,m]=freqz(h,[1],1024,'whole'); %获取频率响应mag=abs(H); %幅值db=20*log10((mag+eps)/max(mag)); %分贝数pha=angle(H); %相位%绘图w=m/pifigure(1);subplot(2,2,1);stem(hd);xlabel('n');ylabel('hd');title('滤波器时域');subplot(2,2,2);plot(w,mag);xlabel('w');ylabel('h');title('加窗后幅度响应');subplot(2,2,3);plot(w,db);xlabel('w');ylabel('db');title('分贝数');axis([0 1 -100 0]);subplot(2,2,4);plot(w,pha);%实际低通滤波器单位脉冲响应xlabel('w');ylabel('相位');title('相频响应');axis([0 1 -4 4]);2:高通滤波器设计clear all;wp=0.6*pi;ws=0.4*pi;tr_width=wp-ws;N=ceil(6.2*pi/tr_width)n=0:1:N-1;wc=(ws+wp)/2;hd=ideal_hp1(wc,N);w_han=(hanning(N))';h=hd.*w_han;[db,mag,pha,w]=freqz_m2(h,[1]);delta_w=2*pi/1000;Ap=-(min(db(wp/delta_w+1:1:501)))As=-round(max(db(1:1:ws/delta_w+1)))subplot(2,2,1),stem(n,hd)title('理想单位脉冲响应hd(n)')subplot(2,2,2)stem(n,w_han)title('汉宁窗w(n)')subplot(2,2,3)stem(n,h)title('实际单位脉冲响应h(n)')subplot(2,2,4)plot(w/pi,db)title('幅度相应(db)')axis([0,1,-100,10])3:带通滤波器设计wls = 0.2*pi;wlp = 0.35*pi;whp = 0.65*pi;wc = [wlp/pi,whp/pi];B = wlp-wls;N = ceil(8/0.15);n=0:N-1;window= hanning(N);[h1,w]=freqz(window,1);figure(1);stem(window);axis([0 60 0 1.2]);grid;xlabel('n');title('Hanning窗函数');figure(2);plot(w/pi,20*log(abs(h1)/abs(h1(1)))); axis([0 1 -350 0]);grid;xlabel('w/pi');ylabel('幅度(dB)');title('Hanning窗函数的频谱');hn = fir1(N-1,wc, hanning (N));[h2,w]=freqz(hn,1,512);figure(3);stem(n,hn);axis([0 60 -0.25 0.25]);grid;xlabel('n');ylabel('h(n)');title(‘Hanning窗函数的单位脉冲响应’); figure(4);plot(w/pi,20*log(abs(h2)/abs(h2(1)))); grid;xlabel('w/pi');ylabel('幅度(dB)');4.带阻滤波器设计% 采用Hamming窗设计一个带阻FIR滤波器% 要求:% 阻带:0.35pi~0.65pi,带内最小衰减Rs=50dB;% 通带:0~0.2pi和0.8pi~pi,带内最大衰减:Rp=1dB。

相关主题