用窗函数法设计FIR数字滤波器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五 用窗函数法设计FIR 数字滤波器
一、实验目的:
1. 掌握用窗函数法设计FIR 数字滤波器的原理和方法
2. 熟悉线性相位FIR 数字滤波器特性。
3. 了解各种窗函数对滤波特性的影响。
二、实验原理
线性相位特点在实际应用中非常重要,如在数据通信、图像处理、语音信号处理等领域,往往要求系统具有线性相位特性,因而常采用容易设计成线性相位的有限冲激响应FIR 数字滤波器来实现。
1. 常用窗函数:
1) 矩形窗
10[]0k M w k ≤≤⎧=⎨⎩
其他 (5.21) 2) Hann (汉纳)窗
0.5-0.5cos(2/)
0[]0k M k M w k π≤≤⎧=⎨⎩其他 (5.22)
3) Hamming (汉明)窗
0.54-0.46cos(2/)0[]0
k M k M w k π≤≤⎧=⎨⎩其他 (5.23) 4) Blackman (布莱克曼)窗
0.42-0.5cos(2/)0.08cos(4/)0[]0
k M k M k M w k ππ+≤≤⎧=⎨⎩其他 (5.24) 5) Kaiser (凯泽)窗
0[]0w k k M =≤≤ (5.25) 其中2201(/2)()1!n x I x n ∞=⎡⎤=+⎢⎥⎣⎦∑ 下面介绍用窗函数设计FIR 滤波器的步骤:
a) 根据技术要求确定待求滤波器的单位取样响应[]d h k 。
b) 根据对过渡带和阻带衰减的要求,选择窗函数的形式,并估计窗函数长度/N A w ≈∆,A 决定
于窗口的形式, w ∆表示滤波器的过渡带。
c) 利用选好的窗函数计算滤波器的单位取样响应[][][]d h k h k w k =。
d) 验算技术指标是否满足要求。设计出来的滤波器的频率响应用1
0()[]N j j n n H e h k e -Ω-Ω==∑来计算。
2. Matlab 数字信号处理工具箱中常用的FIR 数字滤波器设计函数
hanning 汉纳窗函数。
hamming 汉明窗函数。
blackman 布莱克曼窗函数。
kaiser 凯泽窗函数。
kaiserord 凯泽窗函数设计法的阶数估计。
fir1 窗函数法FIR 数字滤波器设计:低通、高通、带通、带阻、多频率滤波。
fir2 频率抽样法FIR 数字滤波器设计:任意频率响应。
三、实验内容
1. 分别用矩形窗、hann 窗,hamming 窗设计一个阶数为9的FIR 低通数字滤波器,截止频率3c rad πΩ=
。 1) 画出各种方法设计的数字滤波器的单位脉冲响应。
2) 画出它们的幅频响应,并比较各滤波器的通带纹波和阻带纹波,有何结论?
3) 若当输入[]12cos(
)cos()42x k k k ππ
=++,计算各滤波器的输出并画出其波形。 程序过程:
clc;clear all ;
%阶数为M=9,数字截止频率为 pi/3;设计II 型低通线性相位滤波器
M=9;Wc=pi/3;k=0:M;
hd=Wc*sinc(Wc*(k-0.5*M))/pi;
xk=1+2*cos(pi*k/4)+cos(pi*k/2);
figure(1);
%以下是矩形窗截断
wk=ones(1,M+1);
hk=hd.*wk;[H,w]=freqz(hk,1);
subplot(311);
stem(k,hk,'.');
title('矩形窗截断的单位脉冲响应');
%以下是hann 窗截断
wk=hanning(M+1);
hk=hd.*wk';[H,w]=freqz(hk,1);
subplot(312);stem(k,hk,'.');
title('hanniing 窗截断的单位脉冲响应');
%以下是hamming 窗截断
wk=hamming(M+1);
hk=hd.*wk';[H,w]=freqz(hk,1);
subplot(313);stem(k,hk,'.');
title('hamming窗截断的单位脉冲响应');
figure(2);
%以下是矩形窗截断
wk=ones(1,M+1);
hk=hd.*wk;[H,w]=freqz(hk,1); subplot(311);
plot(w,20*log10(abs(H)));grid;
title('矩形窗截断的幅频响应');
%以下是hann窗截断
wk=hanning(M+1);
hk=hd.*wk';[H,w]=freqz(hk,1); subplot(312);
plot(w,20*log10(abs(H)));grid;
title('hanniing窗截断的幅频响应');
%以下是hamming窗截断
wk=hamming(M+1);
hk=hd.*wk';[H,w]=freqz(hk,1); subplot(313);
plot(w,20*log10(abs(H)));grid;
title('hamming窗截断的幅频响应');
figure(3);
subplot(221);
stem(k,xk,'.');
title('输入x[k]');
%以下是矩形窗截断
wk=ones(1,M+1);
hk=hd.*wk;
subplot(222);
stem(k,xk.*hk,'.');
title('矩形窗滤波后输出');
%以下是hann窗截断
wk=hanning(M+1);
hk=hd.*wk';
subplot(223);
stem(k,xk.*hk,'.');
title('hanniing窗滤波后输出');
%以下是hamming窗截断
wk=hamming(M+1);
hk=hd.*wk';
subplot(224);
stem(k,xk.*hk,'.');
title('hamming窗滤波后输出');