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

更新时间:2024-03-05 00:12:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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

一、实验目的:

1. 掌握用窗函数法设计FIR数字滤波器的原理和方法 2. 熟悉线性相位FIR数字滤波器特性。 3. 了解各种窗函数对滤波特性的影响。

二、实验原理

线性相位特点在实际应用中非常重要,如在数据通信、图像处理、语音信号处理等领域,往往要求系统具有线性相位特性,因而常采用容易设计成线性相位的有限冲激响应FIR数字滤波器来实现。 1. 常用窗函数: 1) 矩形窗

?10?k?Mw[k]?? (5.21)

0其他?2) Hann(汉纳)窗

?0.5-0.5cos(2?k/M)w[k]???03) Hamming(汉明)窗

0?k?M其他 (5.22)

?0.54-0.46cos(2?k/M)w[k]???04) Blackman(布莱克曼)窗

0?k?M其他 (5.23)

?0.42-0.5cos(2?k/M)?0.08cos(4?k/M)0?k?Mw[k]?? (5.24)

0其他?5) Kaiser(凯泽)窗

I0(?1?(1?2k?M)2)w[k]?I0(?)?0?k?M (5.25)

2?(x/2)2?其中I0(x)?1??? ?n!?n?1?下面介绍用窗函数设计FIR滤波器的步骤:

a) 根据技术要求确定待求滤波器的单位取样响应hd[k]。

b) 根据对过渡带和阻带衰减的要求,选择窗函数的形式,并估计窗函数长度N?A/?w,A决定于窗口的形式,?w表示滤波器的过渡带。

c) 利用选好的窗函数计算滤波器的单位取样响应h[k]?hd[k]w[k]。 d) 验算技术指标是否满足要求。设计出来的滤波器的频率响应用H(e)?j??h[k]en?0N?1?j?n来计算。

2. Matlab数字信号处理工具箱中常用的FIR数字滤波器设计函数

hanning 汉纳窗函数。 hamming 汉明窗函数。

blackman 布莱克曼窗函数。 kaiser 凯泽窗函数。

kaiserord 凯泽窗函数设计法的阶数估计。

fir1 窗函数法FIR数字滤波器设计:低通、高通、带通、带阻、多频率滤波。 fir2 频率抽样法FIR数字滤波器设计:任意频率响应。

三、实验内容

1. 分别用矩形窗、hann窗,hamming窗设计一个阶数为9的FIR低通数字滤波器,截止频率?c?1) 画出各种方法设计的数字滤波器的单位脉冲响应。

2) 画出它们的幅频响应,并比较各滤波器的通带纹波和阻带纹波,有何结论? 3) 若当输入x[k]?1?2cos(程序过程:

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,'.');

?3rad。

?k)?cos(k),计算各滤波器的输出并画出其波形。

42?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窗滤波后输出');

(1) (2)

(3)

2. 分别用blackman窗和kaiser窗法设计一个满足下列指标的线性相位的FIR低通滤波器

?p?0.4?rad,Ap?0.5dB,?s?0.6?rad,As?45dB,画出所设计的滤波器的幅频响应。

简单评述两种窗的设计结果。

实现过程:

%分别用blackman窗和kaiser窗法设计一个满足下列指标的线性相位的FIR低通滤波器 clc;clear all;

Wp=0.4*pi;Ws=0.6*pi;Ap=0.5;As=45; Wc=(Wp+Ws)/2;

%Blackman窗的近似过渡带宽度为11.4pi/N ;窗函数的长度N N=ceil(11.4*pi/(Ws-Wp));

% N=58,滤波器阶次 M=N-1=57 可以设计II型低通线性相位系统 M=N-1;k=0:M;

hd=Wc*sinc(Wc*(k-0.5*M))/pi; wk=blackman(N); hk=hd.*wk'; [H,w]=freqz(hk,1); subplot(211);

plot(w/pi,20*log10(abs(H)));grid;

xlabel('Normalized frequency');ylabel('Gain in dB'); title('blackman窗设计的FIR滤波器'); %kaiser窗设计 subplot(212);

f=[Wp/pi,Ws/pi];a=[1,0];dev=[1-10^(-0.05*Ap),10^(-0.05*As)]; [M1,Wc1,beta,ftype]=kaiserord(f,a,dev); wk1=kaiser(M1+1,beta); hk1=fir1(M1,Wc1,ftype,wk1); [H1,w1]=freqz(hk1,1);

plot(w1/pi,20*log10(abs(H1)));grid;

xlabel('Normalized frequency');ylabel('Gain in dB'); title('kaiser窗设计的FIR滤波器');

比较:kaiser窗的过渡带较长,在阻带的衰减波动逐渐减小;

利用blackman窗设计出的低通滤波器阻带衰减最大。

3. 用频率取样法设计一个M?44的Ⅰ型线性相位带通FIR滤波器。带通滤波器的通带截止频率分别为

?p1?0.3?rad,?p2?0.5?rad。

本文来源:https://www.bwwdw.com/article/saxa.html

Top