logo资料库

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

第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
资料共15页,剩余部分请下载后查看
北京师范大学 课 程 设 计 报 告 课程名称: DSP 设计名称:FIR 低通、高通带通和带阻数字滤波器的设计 姓 名: 学 号: 班 级: 指导教师: 起止日期: 课 程 设 计 任 务 书
学生班级: 设计名称: 起止日期: 学生姓名: 学号: FIR 低通、高通带通和带阻数字滤波器的设计 指导教师: 设计目标: 1、采用 Kaiser 窗设计一个低通 FIR 滤波器 要求: 采样频率为 8kHz; 通带:0Hz~1kHz,带内波动小于 5%; 阻带:1.5kHz,带内最小衰减:Rs=40dB。 2、采用 hamming 窗设计一个高通 FIR 滤波器 要求: 通带截至频率 wp= 阻带截止频率 ws= , rad6.0 rad4.0 dB , 通带最大衰减 25.0 p ,阻带最小衰减 50 s dB 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 数字滤波器采用窗函数法或频率抽样法,本设计采用窗 函数法,分别采用海明窗和凯泽窗设计带通、带阻和低通。 如果所希望的滤波器的理想频率响应函数为 d eH ( jw ) ,如理想的低通,由信号系 统的知识知道,在时域系统的冲击响应 hd(n)将是无限长的,如图 2、图 3 所示。 Hd(w) -wc wc 图 2 图 3 若时域响应是无限长的,则不可能实现,因此需要对其截断,即设计一个 FIR 滤波 器频率响应 ( eH jw )  1 N  n  0 )( enh  jwn 来逼近 d eH ( jw ) ,即用一个窗函数 w(n)来截断 hd(n),如式 3 所示: )( nh d )( nwnh )( (式 1)。 最简单的截断方法是矩形窗,实际操作中,直接取 hd(n)的主要数据即可。 )(nh 作为实际设计的 FIR 数字滤波器的单位脉冲响应序列,其频率响应函数为: ( eH jw )  1 N  n  0 )( enh  jwn 令 z  ,则 jwe )( zH  1 N  n  0 nznh )(  式中,N 为所选窗函数 )(nw 的长度。 (式 2) (式 3),
如果要求线性相位特性, )(nh 还必须满足: )( nh  ( Nh 1  n ) (式 6),根据式 6 中的正、负和长度 N 的奇偶性又将线性 相位 FIR 滤波器分成四类。要根据所设计的滤波器特性正确选择其中一类。例如: 要设计线性相位低通特性,可选择 )( nh  ( Nh 1  n ) 类。 三、 详细设计步骤 T  S f s (公式 4) 表 1 窗函数 过滤带宽/(2π/N)阻带最小带宽 海明窗 凯泽窗 3.3 5 -53 -80 1、采用 Kaiser 窗设计一个低通 FIR 滤波器 要求: 采样频率为 8kHz; 通带:0Hz~1kHz,带内波动小于 5%; 阻带:1.5kHz,带内最小衰减:Rs=40dB 思路分析: 根据公式 4 可以得到通带截止频率 p 为 0.25,阻带截止频率 s 为 0.375。根据表 1 可算得 N  10    ,则凯泽窗的时域表达式可以通过 n =kaiser(N)得到。低通滤波器的时域表达式是   nhdn    sin n    npi   ,其中  应该关于 1N 对称。这样,滤波器就得到了为: 2   nh d  nh dn   n  。最后利 用函数 freqz 得到加窗后的滤波器的幅频响应和相频响应。 2、采用 Hamming 窗设计一个高通线性相位 FIR 滤波器
要求:设计用窗函数法设计线性相位高通滤波器,要求截至频率 wp= rad6.0 ,阻带截止频率 ws= rad4.0 ,通带最大衰减 25.0 p dB ,阻带最小衰减 50 s dB 。有如下公式计算高通滤波器 的通带截止频率以及阻带截止频率: w p 2 f p / F s w s 2 Ff s s /  P  20 log 1(   p ) 10  s 20 log  s 10 (1) (2) (3) (4) 分析:根据设计要求给出的高通滤波器的性能指标以及(1) (2) (3) (4)公式计算得出该高通 滤波器性能指标的另一种表示为:通带偏差 p 0.0292 阻带偏差 s 0.0032 通带边沿频率 pf 1000 KHZ 阻带边沿频率 sf 600 KHZ 选择窗函数 W(n),计算窗函数长度 N,由已知条件知:阻带最小衰减 40 s dB 参照表(1)可知汉宁窗和哈明窗都满足要求。我选择的窗函数是汉宁窗。 过渡带宽度 B t  w p  w s 2.0 汉宁窗的精确过度带宽 Bt /2.6  N 故要求 N )  2.0  , /2.6(   Bt 31N 解得: 又根据前面分析的四种类型的 FIR 滤波器的可知,对于高通滤波器,N 必须取奇数, 故 N=31 与汉宁窗函数的可以得知 )( nw  1[5.0  cos( 31 nRn  )] )( 12 3、采用 Hamming 窗设计一个带通线性相位 FIR 滤波器 要求:低端阻带截止频率 wls = 0.2*pi; 低端通带截止频率 wlp = 0.35*pi; 高端通带截止频率 whp = 0.65*pi;
高端阻带截止频率 whs = 0.8*pi; 思路分析: 由条件可知通带为 0.3pi,由通带大小可设计滤波器。这样,滤波器就得 到了为:   nh d  h 1 dn   n h  2 dn  n  n 。最后利用函数 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)得到。带阻滤波器可以看成是高通加低通。它的时域表达     sin sin 式 是   nh dn   n     npi    n   h   npi  1N 对称。这样,滤波器就得到了为: 2    sin   n   l   npi   , 其 中  应 该 关 于   nh d  nh dn   n  。最后利用函数 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 % clc clear Rs=40; Wp=0.25*pi; wp=0.125pi Wst=0.375*pi; wst=0.1875pi dert_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); %根据通带:0Hz~1kHz,带内波动小于 5%; 得 % 阻带:1.5kHz,带内最小衰减:Rs=40dB。 得 %滤波器在时域系统的冲击响应 %凯泽窗 %加窗后 %获取频率响应 %幅值 %分贝数 %相位 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/pi figure(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);
分享到:
收藏