信号实验三 用窗函数设计FIR滤波器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三用窗函数设计FIR滤波器

一、实验目的

1.熟悉FIR滤波器设计的基本方法。

2.掌握用窗函数设计FIR数字滤波器的原理及方法,熟悉相应的计算机高级语言编程。

3.熟悉线性相位FIR滤波器的幅频特性和相位特性。

4.了解各种不同窗函数对滤波器性能的响应。

二、实验内容

1、以下是几种常用的窗函数:

1.矩形窗:

2.Hanning(汉宁)窗:

3.Hamming(海明)窗:

4.Blackman窗:

5.Kaiser窗:

窗函数法设计线性相位FIR滤波器可以按如下步骤进行:

1.确定数字滤波器的性能要求。确定各临界频率{错误!未找到引用源。}和滤波器单位脉冲响应长度N。

2.根据性能要求和N值,合理地选择单位脉冲响应h(n)有奇偶对称性,从而确定理想频率响应H d(Ω)的幅频特性和相位特性。

3.用傅里叶反变换公式,求得理想单位脉冲响应h d(n)。

4.选择适当的窗函数W(n)根据式h(n)=h d(n)w(n)求得所设计的FIR滤波器单位脉冲响应。

5.用傅理叶变换求得其频率响应H(Ω),分析它的幅频特性,若不满足要求,可适当改变窗函数形式或长度N,重复上述过程,直至得到满意的结果。

2. 生成四种窗函数:矩形窗、三角窗、汉宁窗、海明窗,并观察其频率响应。

n=30;

%矩形窗及其频响

window1=rectwin(n);

[h1,w1]=freqz(window1,1);

subplot(4,2,1);

stem(window1);title('矩形窗');subplot(4,2,2);

plot(w1/pi,20*log(abs(h1))/abs(h1(1)));title('矩形窗频响');

%三角窗及其频响

window2=triang(n);

[h2,w2]=freqz(window2,1);

subplot(4,2,3);stem(window2);title('三角窗');

subplot(4,2,4);

plot(w2/pi,20*log(abs(h2))/abs(h2(1)));title('三角窗频响');

%汉宁窗及其频响

window3=hann(n);

[h3,w3]=freqz(window3,1);

subplot(4,2,5);stem(window3);title('汉宁窗');

subplot(4,2,6);

plot(w3/pi,20*log(abs(h3))/abs(h3(1)));title('汉宁窗频响');

%汉明窗频响

window4=hamming(n);

[h4,w4]=freqz(window4,1);

subplot(4,2,7);stem(window4);title('汉明窗');

subplot(4,2,8);

plot(w4/pi,20*log(abs(h4))/abs(h4(1)));title('汉明窗频响');

3、

(1)用Hanning窗设计一个线性相位带通滤波器,其长度N=15,

上下边带宽截止频率分别为ω

=0.3π错误!未找到引用源。,ω

1

=0.5π错误!未找到引用源。,求h(n),绘制它的幅频和相位特2

性曲线,观察它的实际3dB和3dB带宽。如果N=45,重复这个设

计,观察幅频和相位特性的变化,注意长度N变化对结果的影响。答: >> window=hanning(16);

>> b=fir1(15,[0.3 0.5],window);freqz(b,1);

改变N=45:

>> window=hanning(46);

>> b=fir1(45,[0.3 0.5],window);freqz(b,1);

(2)改用矩形窗和Blackman窗,设计步骤(1)中的带通滤波器,

观察并记录窗函数对滤波器幅频和相位特性的影响,比较这三种窗函数的特点。

A、矩形窗:

>> window=boxcar(16);

>> b=fir1(15,[0.3 0.5],window);freqz(b,1);

改变N=45:

>> window=boxcar(46);

>> b=fir1(45,[0.3 0.5],window);freqz(b,1);

B、Blackman窗:

>> window=blackman(16);

>> b=fir1(15,[0.3 0.5],window);freqz(b,1);

改变N=45:

>> window=blackman(46);

>> b=fir1(45,[0.3 0.5],window);freqz(b,1);

(3)用Kaiser窗设计一个专用的线性相位滤波器。N=40,当β值

分别为4,6,8时,设计相应的滤波器,比较它们的幅频和相位特性,观察并分析错误!未找到引用源。值不

同的时候对结果有什么影响。

>> window=kaiser(41,4);

>> b=fir1(40,[0.2 0.4],window);freqz(b,1);

>> window=kaiser(41,6);

>> b=fir1(40,[0.2 0.4],window);freqz(b,1);

>> window=kaiser(41,8);

相关文档
最新文档