DSP实验报告6 用窗函数法设计FIR滤波器

更新时间:2023-06-10 16:53:01 阅读量: 实用文档 文档下载

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

数字信号处理

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

一、实验目的

1. 掌握窗函数法设计FIR滤波器的原理和方法,观察用几种常用窗函数设计的FIR数字滤波器技术指标;

2. 掌握FIR滤波器的线性相位特性;

3. 了解各种窗函数对滤波特性的影响。

二、实验原理与方法

如果所希望的滤波器的理想频率响应函数为Hd(ejω),则其对应的单位脉冲响1应为hd(n) 2 H(e j )ej nd ,用窗函数wN(n)将hd(n)截断,并进行加权处理,

得到实际滤波器的单位脉冲响应h(n)=hd(n)wN(n),其频率响应函数为H(e) h(n)e j n。如果要求线性相位特性,则h(n)还必须满足j

n 0N 1

h(n) h(N 1 n)。可根据具体情况选择h(n)的长度及对称性。

三、实验步骤

1. 写出理想低通滤波器的传输函数和单位脉冲响应。

2. 写出用四种窗函数设计的滤波器的单位脉冲响应。

3. 用窗函数法设计一个线性相位FIR低通滤波器,用理想低通滤波器作为逼近滤波器,截止频率ωc=π/4 rad,选择窗函数的长度N=17,32两种情况。要求在两种窗口长度下,分别求出h(n),打印出相应的幅频特性和相频特性曲线,观察3dB带宽和阻带衰减;

4. 用其它窗函数(汉宁窗(升余弦窗)、哈明窗(改进的升余弦窗)、布莱克曼窗) 设计该滤波器,要求同1;比较四种窗函数对滤波器特性的影响。

四、实验用MATLAB函数

可以调用MATLAB工具箱函数fir1实现本实验所要求的线性相位FIR-DF的设计,调用一维快速傅立叶变换函数fft来计算滤波器的频率响应函数。

fir1是用窗函数法设计线性相位FIRDF的工具箱函数,调用格式如下: hn=fir1(N, wc, ‘ftype’, window):实现线性相位FIR滤波器的标准窗函数法设计,具体调用格式如下:

(1) hn=fir1(N,wc)可得到6dB截止频率为wc的N阶(单位脉冲响应h(n)长度

数字信号处理

为N+1)FIR低通滤波器,默认(缺省参数windows)选用hammiing窗。其单位脉冲响应h(n)满足线性相位条件:h(n)=h(N-1-n)

其中wc为对π归一化的数字频率,0≤wc≤1。

当wc=[wc1, wc2]时,得到的是带通滤波器。

(2)hn=fir1(N,wc,’ftype’)可设计高通和带阻滤波器。

当ftype=high时,设计高通FIR滤波器;

当ftype=stop时,设计带阻FIR滤波器。

应当注意,在设计高通和带阻滤波器时,阶数N只能取偶数(h(n)长度N+1为奇数)。不过,当用户将N设置为奇数时,fir1会自动对N加1。

(3)hn=fir1(N,wc,window)可以指定窗函数向量window。如果缺省window参数,则fir1默认为hamming窗。可用的其他窗函数有Boxcar, Hanning, Bartlett, Blackman, Kaiser和Chebwin窗。例如:

hn=fir1(N,wc,bartlett(N+1))使用Bartlett窗设计; hn=fir1(N,wc,chebwin(N+1,R))使用Chebyshev窗设计。 hn=fir1(N,wc,’ftype’,window)通过选择wc、 ftype和window参数(含义同上),可以设计各种加窗滤波器。

五、思考题

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

2. 如果要用窗函数法设计带通滤波器,且给定上、下边带截止频率为ω1和ω2,试求理想带通的单位脉冲响应hd(n)。

六、实验报告要求

1. 总结用窗函数法设计FIR滤波器的步骤。

2. 比较四种窗函数设计的滤波器的技术指标:阻带最小衰减和过渡带宽度。

3. 总结窗函数的形式和长度对设计滤波器的影响,及选择窗函数的依据。 附录:用窗函数法设计FIR低通滤波器程序

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

clear all;

N=17;

Wc=pi/4;

数字信号处理

%理想低通滤波器设计(怎样设计理想高通、带通、带阻滤波器?)

alpha=(N-1)/2;

n=[0:(N-1)];

m=n-alpha+eps;

hd=sin(Wc*m)./(pi*m); %理想低通的单位脉冲响应

%hd= sin(pi*m)./(pi*m)-sin(Wc*m)./(pi*m); %理想高通的单位脉冲响应 B=boxcar(N);%矩形窗

string=['Boxcar ','N=',num2str(N)];

h=hd.*(B)'; %加窗截取

%以上过程可直接调用FIR1实现

%wc=Wc/pi;%频率归一化

%h=fir1(N-1,wc,boxcar(N));

[H,m]=freqz(h,[1],1024,'whole'); %频率响应

mag=abs(H);

db=20*log10((mag+eps)/max(mag));

pha=angle(H);

subplot(2,2,1)

n=0:N-1;

stem(n,h,'.')

axis([0 N-1 -0.1 0.3])

hold on

n=0:N-1;

x=zeros(N);

plot(n,x,'-')

hold off

xlabel('n')

ylabel('h(n)')

title('实际低通滤波器的h(n)')

数字信号处理

text(0.3*N,0.27,string)

subplot(2,2,2)

plot(m/pi,db)

axis([0 1 -100 0])

xlabel('w/pi')

ylabel('dB')

title('副频衰减特性

')

grid on

subplot(2,2,3)

数字信号处理

plot(m,pha)

hold on

n=0:7;

x=zeros(8);

plot(n,x,'-')

hold off

axis([0 3.15 -4 4])

xlabel('频率(rad)')

ylabel('相位(rad)')

title('相频特性

')

subplot(2,2,4)

plot(m,mag)

axis([0 3.15 0 1.5])

xlabel('频率W(rad)')

ylabel('幅值')

title('幅频特性')

text(0.9,1.2,string)

数字信号处理

实验要求:

1. 修改理想低通程序为理想高通、带通、带阻的程序,重新进行实验,注意高通、带阻滤波器的情况下,N的取值有何限制?

2. 直接调用FIR1函数,重新进行实验;

3. 观察不同窗函数对滤波特性即对阻带衰减的影响,另外观察窗函数的长度N对过渡带宽的影响。

用窗函数法设计FIR高通滤波器程序

clear all;

N=17;

Wc=pi/4;%理想低通滤波器设计(怎样设计理想高通、带通、带阻滤波器?)

alpha=(N-1)/2;

数字信号处理

m=n-alpha+eps;%hd=sin(Wc*m)./(pi*m); %理想低通的单位脉冲响应 hd= sin(pi*m)./(pi*m)-sin(Wc*m)./(pi*m); %理想高通的单位脉冲响应 B=boxcar(N);%矩形窗

string=['Boxcar ','N=',num2str(N)];

h=hd.*(B)'; %加窗截取

%以上过程可直接调用FIR1实现

%wc=Wc/pi;%频率归一化

%h=fir1(N-1,wc,boxcar(N));

[H,m]=freqz(h,[1],1024,'whole'); %频率响应

mag=abs(H);

db=20*log10((mag+eps)/max(mag));

pha=angle(H);

subplot(2,2,1)

n=0:N-1;

stem(n,h,'.')

axis([0 N-1 -0.1 0.3])

hold on

n=0:N-1;

x=zeros(N);

plot(n,x,'-')

hold off

xlabel('n')

ylabel('h(n)')

title('实际高通滤波器的

h(n)')

text(0.3*N,0.27,string)

subplot(2,2,2)

plot(m/pi,db)

axis([0 1 -100 0])

数字信号处理

ylabel('dB')

title('副频衰减特性

')

grid on

subplot(2,2,3) plot(m,pha) hold on

n=0:7;

x=zeros(8); plot(n,x,'-' hold off

axis([0 3.15 -4 4]) xlabel('频率(rad)') ylabel('相位(rad)') title('相频特性

')

数字信号处理

plot(m,mag)

axis([0 3.15 0 1.5]) xlabel('频率W(rad)') ylabel('幅值') title('幅频特性

')

text(0.9,1.2,string)

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

Top