加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2011-06-24 11:44:06)
标签:

窗函数法设计

fir数字滤波器

数字信号处理

matlab

分类: 实验报告

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

1.实验目的

1) 熟悉矩形窗、海宁窗、汉明窗和布莱克曼窗。

2) 掌握用上述窗函数法设计FIR数字滤波器的原理和方法。

3) 熟悉线性相位FIR数字滤波器特性。

4) 了解各种窗函数对滤波特性的影响

2.实验原理

如果所希望的滤波器的理想频率响应函数为http://s2/middle/7bf0c30f4a66cfc444421&690,则其对应的单位脉冲响应为            

    http://s7/middle/7bf0c30f4a66cfc4b01c6&690

用窗函数http://s5/middle/7bf0c30f4a66cfc6e0244&690截断,并进行加权处理,得到: http://s10/middle/7bf0c30f4a66cfc79f659&690

http://s1/middle/7bf0c30f4a66cfc9a6b60&690为:

http://s3/middle/7bf0c30f4a66cfd2278d2&690

如果要求线性相位特性,则http://s14/middle/7bf0c30f0770ae61e485d&690还必须满足:

http://s10/middle/7bf0c30f4a66cfd4235a9&690

根据上式中的正、 负号和长度N的奇偶性又将线性相位FIR滤波器分成四类。要根据所设计的滤波特性正确选择其中一类。例如,要设计线性相位低通特性,可选择http://s10/middle/7bf0c30f4a66cfd61e3f9&690一类。

常用的窗函数有矩形窗、巴特列特窗(三角形窗)、汉宁窗(升余弦窗)、海明窗(改进的升余弦窗)、布拉克曼窗(二阶升余弦窗)及凯泽窗。

3.实验内容与步骤

1)  复习用窗函数法设计FIR数字滤波器一节内容,阅读本实验原理,了解各窗函数,掌握设计步骤。

2)  编写程序。

     编写能产生四种窗函数的子程序。

      编写主程序。主程序框图如右图所示。

其中幅度特性要求用dB表示。

http://s15/middle/7bf0c30f4a66cfd6ecf3e&690  

http://s9/middle/7bf0c30f4a66cfda86748&690

http://s5/middle/7bf0c30f4a66cfdba6fb4&690

画图时,用http://s13/middle/7bf0c30f4a66cfdeb670c&690的幅度特性曲线,DFT变换区间要选大些。例如窗口长度N=33时,可通过在h(n)末尾补零的方法,使长度变为64,再进行64DFT,则可得到更精确的幅度衰减特性曲线。

(3) 上机实验内容。

     ①设计低通FIR数字滤波器时,一般以理想低通滤波特性为逼近函数,即

http://s6/middle/7bf0c30f4a66cfe1d2f05&690

 

http://s11/middle/7bf0c30f4a66cfe23f82a&690
 

用四种窗函数设计线形相位低通滤波器。要求在两种窗口长度下,绘制相应的幅频和相频特性曲线,观察3dB20dB带宽以及阻带最小衰减,比较四种窗函数对滤波器特性的影响。

http://s3/middle/7bf0c30f4a66cfe62ef52&690

4.实验程序

wc=pi/4;

N=15;

a=(N-1)/2;

n=0:N-1;

hd=sin(wc*(n-a))/(n-a)*pi;

w1=boxcar(N);

h1=hd*w1;

w2=hanning(N);

h2=hd*w2;

w3=hamming(N);

h3=hd*w3;

w4=blackman(N);

h4=hd*w4;

H1=20*log10(abs(fft(h1,1024)));

H2=20*log10(abs(fft(h2,1024)));

H3=20*log10(abs(fft(h3,1024)));

H4=20*log10(abs(fft(h4,1024)));

w=(0:1023)/1024;

subplot(2,4,1);

plot(w,H1);

title('矩形窗幅频曲线');

subplot(2,4,2);

plot(w,H2);

title('Hanning窗幅频曲线');

subplot(2,4,3);

plot(w,H3);

title('Hamming窗幅频曲线');

subplot(2,4,4);

plot(w,H4);

title('Blackman窗幅频曲线');

subplot(2,4,5);

plot(w,angle(fft(h1,1024)));

title('矩形窗相频曲线');

subplot(2,4,6);

plot(w,angle(fft(h2,1024)));

title('Hanning窗相频曲线');

subplot(2,4,7);

plot(w,angle(fft(h3,1024)));

title('Hamming窗相频曲线');

subplot(2,4,8);

plot(w,angle(fft(h4,1024)));

title('Blackman窗相频曲线')

5.实验结果图

http://s9/middle/7bf0c30f0770ae66a99d8&690

6.思考题

(1) 如果给定通带截止频率和阻带截止频率以及阻带最小衰减,如何用窗函数法设计线性相位低通滤波器?写出设计步骤。

答:a) 求出对应的数字频率。

           通带截止频率http://s2/middle/7bf0c30f4a66d004273a1&690

           阻带截止频率http://s15/middle/7bf0c30f4a66d004a9bde&690

b)求http://s12/middle/7bf0c30f4a66d007043fb&690为理想线性相位滤波器

           http://s6/middle/7bf0c30f4a66d00879195&690

           其中http://s13/middle/7bf0c30f4a66d00bc9b8c&690

       c)求窗函数。由阻带衰减http://s9/middle/7bf0c30f4a66d00c4afc8&690确定窗形状,由过度带宽确定N

       d)求http://s6/middle/7bf0c30f4a66d012f7275&690

                http://s9/middle/7bf0c30f0770ae6861358&690

       e)由http://s3/middle/7bf0c30f4a66d019357e2&690,检验各项指标是否满足要求。如不满足要求,则要改变N,或改变窗形状,然后重新计算。

 

(2) 如果要求用窗函数法设计带通滤波器,且给定上、下边带截止频率为http://s8/middle/7bf0c30f4a66d01b95e67&690,试求理想带通的单位脉冲响应hd(n) .

答:a) 求出对应的数字频率。

           通带截止频率http://s1/middle/7bf0c30f4a66d01ce63b0&690

           阻带截止频率http://s1/middle/7bf0c30f4a66d01dfb440&690

b)求http://s6/middle/7bf0c30f4a66d02360605&690为理想线性相位滤波器

           http://s9/middle/7bf0c30f4a66d0280fde8&690

           其中http://s16/middle/7bf0c30f4a66d02aa1b3f&690

       c)求窗函数。由阻带衰减http://s2/middle/7bf0c30f4a66d02bf61f1&690确定窗形状,由过度带宽确定N

       d)求http://s9/middle/7bf0c30f4a66d0328de48&690

                http://s3/middle/7bf0c30f4a66d03394b12&690

       e)由http://s2/middle/7bf0c30f4a66d03520de1&690,检验各项指标是否满足要求。如不满足要求,则要改变N,或改变窗形状,然后重新计算。

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有