实验六、用窗函数法设计FIR滤波器
- 格式:doc
- 大小:429.15 KB
- 文档页数:8
实验六 用窗函数法设计 FIR 滤波器
一、实验目的
(1) 掌握用窗函数法设计FIR 数字滤波器的原理和方法。 (2) 熟悉线性相位FIR 数字滤波器特性。 (3) 了解各种窗函数对滤波特性的影响。
二、实验原理
滤波器的理想频率响应函数为H d (e j ω
),则其对应的单位脉冲响应为:
h d (n) =
⎰
-π
π
ωωωπ
d e e H n
j j d )(21
窗函数设计法的基本原理是用有限长单位脉冲响应序列h(n)逼h d (n)。由于h d (n)往往是无
限长序列,且是非因果的,所以用窗函数。w(n)将h d (n)截断,并进行加权处理:
h(n) = h d (n) w(n)
h(n)就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数H(e j ω
)为:
H(e j ω
) =
∑-=-1
)(N n n
j e
n h ω
如果要求线性相位特性,则h (n )还必须满足:
)1()(n N h n h --±=
可根据具体情况选择h(n)的长度及对称性。
用窗函数法设计的滤波器性能取决于窗函数w(n)的类型及窗口长度N 的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。
三、实验步骤
1. 写出理想低通滤波器的传输函数和单位脉冲响应。
2. 写出用四种窗函数设计的滤波器的单位脉冲响应。
3. 用窗函数法设计一个线性相位FIR 低通滤波器,用理想低通滤波器作为逼近滤波器,截止频率ωc =π/4 rad ,选择窗函数的长度N =15,33两种情况。要求在两种窗口长度下,分别求出h(n),打印出相应的幅频特性和相频特性曲线,观察3dB 带宽和阻带衰减; 4 用其它窗函数(汉宁窗(升余弦窗)、哈明窗(改进的升余弦窗)、布莱克曼窗) 设计该滤波器,要求同1;比较四种窗函数对滤波器特性的影响。
四、实验用MATLAB 函数
可以调用MATLAB 工具箱函数fir1实现本实验所要求的线性相位FIR-DF 的设计,调用一维快速傅立叶变换函数fft 来计算滤波器的频率响应函数。
fir1是用窗函数法设计线性相位FIRDF 的工具箱函数,调用格式如下:
hn=fir1(N, wc, ‘ftype ’, window)
fir1实现线性相位FIR 滤波器的标准窗函数法设计。
hn=fir1(N,wc)可得到6 dB 截止频率为wc 的N 阶(单位脉冲响应h(n)长度为N+1)FIR 低通滤波器,默认(缺省参数windows)选用hammiing 窗。其单位脉冲响应h(n)满足线性相位条件:h(n)=h(N-1-n)
其中wc 为对π归一化的数字频率,0≤wc ≤1。 当wc=[wc1, wc2]时,得到的是带通滤波器。
hn=fir1(N,wc,’ftype ’)可设计高通和带阻滤波器。
当ftype=high 时,设计高通FIR 滤波器; 当ftype=stop 时,设计带阻FIR 滤波器。
应当注意,在设计高通和带阻滤波器时,阶数N 只能取偶数(h(n)长度N+1为奇数)。不过,当用户将N 设置为奇数时,fir1会自动对N 加1。
hn=fir1(N,wc,window)可以指定窗函数向量window 。如果缺省window 参数,则fir1默认为hamming 窗。可用的其他窗函数有Boxcar, Hanning, Bartlett, Blackman, Kaiser 和Chebwin 窗。例如: hn=fir1(N,wc,bartlett(N+1))使用Bartlett 窗设计;
hn=fir1(N,wc,chebwin(N+1,R))使用Chebyshev 窗设计。
hn=fir1(N,wc,’ftype ’,window)通过选择wc 、 ftype 和window 参数(含义同上),可以设计各种加窗滤波器。
五、实验内容
<1>理想低通滤波器传输函数:
H(e j ω
)=⎩⎨⎧≤<≤-π
ωωωωωα||,0||,c c
j e α=(N-1)/2
单位脉冲响应:
h d (n)=
ωπ
ωπ
π
ωd e
e H n
j j d ⎰-
)(21
=
ωπ
ωωω
ωαd e e n j j c
c
⎰-
-21 =
)
()
(sin απαω--n n c
<2>四种窗函数的设计滤波器的单位脉冲响应:
(1)矩形窗: ωR (n)=R N (n) h(n)=h d (n)R N (n)
(2)汉宁窗:ω
Hn (n)=0.5[1-)
1
2
cos(
-
N
nπ
]R
N
(n)
h(n)=h
d (n)·0.5[1-)
1
2
cos(
-
N
nπ
]R
N
(n)
(3)哈明窗:ω
Hm (n)=[0.54-0.46)
1
2
cos(
-
N
nπ
]R
N
(n)
h(n)=h
d (n)[0.54-0.46)
1
2
cos(
-
N
nπ
]R
N
(n)
(4)布莱克曼窗:ω
Bl (n)=[0.42-0.5)
1
2
cos(
-
N
nπ
+0.08)
1
4
cos(
-
N
nπ
]R
N
(n)
h(n)=h
d (n)[0.42-0.5)
1
2
cos(
-
N
nπ
+0.08)
1
4
cos(
-
N
nπ
]R
N
(n)
<3>MATALAB程序设计
实验程序1:
N=15、33,即N变化时,对滤波器特性的影响:
MATLAB程序:
clear all;
N1=15;N2=33;
Wc=pi/4;
wc=Wc/pi;%频率归一化
b1=fir1(N1-1,wc,boxcar(N1));
b2=fir1(N2-1,wc,boxcar(N2));
[H1,W]=freqz(b1,1);
H1_db=20*log10(abs(H1));
magH1=abs(H1);
phaH1=angle(H1);
[H2,W]=freqz(b2,1);
H2_db=20*log10(abs(H2));
magH2=abs(H2);
phaH2=angle(H2);
subplot(2,4,1);stem(b1);title('N=15时,实际低通滤波器的h(n)') subplot(2,4,2);plot(W/pi,H1_db);title('副频衰减特性')
subplot(2,4,3);plot(W/pi,phaH1);title('相频特性')
subplot(2,4,4);plot(W/pi,magH1);title('副频特性')
subplot(2,4,5);stem(b2);title('N=33时,实际低通滤波器的h(n)') subplot(2,4,6);plot(W/pi,H2_db);title('副频衰减特性')
subplot(2,4,7);plot(W/pi,phaH2);title('相频特性')
subplot(2,4,8);plot(W/pi,magH2);title('副频特性')