用窗函数法设计FIR数字滤波器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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窗滤波后输出');

相关文档
最新文档