当前位置:文档之家› 线性相位FIR数字滤波器设计

线性相位FIR数字滤波器设计

线性相位FIR数字滤波器设计
线性相位FIR数字滤波器设计

一、设计目的

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

FIR数字滤波器技术指标;

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

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

二、设计原理

如果所希望的滤波器的理想频率响应函数为H d(e j J,则其对应的单位脉冲

1

响应为h d(n)=——f H (e恋)e j^dB,用窗函数W N(n)将h d(n)截断,并进行加权处 2兀7

理,得到实际滤波器的单位脉冲响应h(n)=h d(n)w N(n),其频率响应函数为

N _!

H (e j ^ h(n)e」n。如果要求线性相位特性,贝U h(n)还必须满足

nM

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

可以调用MATLAB工具箱函数firl实现本实验所要求的线性相位FIR-DF

的设计,调用一维快速傅立叶变换函数fft来计算滤波器的频率响应函数。

fir1是用窗函数法设计线性相位FIRDF

hn=fir1(N, wc, ‘ ftype ' , window)

fir1实现线性相位FIR滤波器的标准窗函数法设计。

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

N+1)FIR低通滤波器,默认(缺省参数windows)选用hammiing窗。其单位脉冲响应

h(n)满足线性相位条件:h(n)=h(N-1-n)

其中wc为对n归一化的数字频率,OW wc< 1。

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

hn=fir1(N,wc, ' ftype ')

当ftype=high时,设计高通FIR

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

应当注意,在设计高通和带阻滤波器时,阶数N只能取偶数(h(n)长度N+1

为奇数)。不过,当用户将N设置为奇数时,fir1会自动对N加1。

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, 'type',window)通过选择wc、ftype 和window 参数(含义同上),

三、详细设计步骤

1、用窗函数法设计一个线性相位FIR低通数字滤波器FIR低通数字滤波器指标为:

'p =0.2二s =0.4 二R p=1dB 数字通带截止频率(弧度)数字阻带截止频率(弧度)通带衰减(dB)

A s = 50d

B 阻带衰减(dB)

因为衰减为50dB,所以选择海明窗。

过渡带宽为Ws —Wp=0.2 n,由公式N > 6.6 n - 0.2 n =33,所以N=34。

所以程序如下:

N=34;

Wc=pi/5; %通带截止频率wc=Wc/pi;%频率归一化h=fir1(N,wc);

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

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

pha=a ngle(H);

subplot(2,2,1)

n=0:N;

stem( n,h,'.')

axis([0 N -0.1 0.3])

hold on n=0:N; x=zeros(N+1); plot (n ,x,'-') hold off

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

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 6.15 0 1.5]) xlabel('频率W(rad)') ylabel('幅值')

title('幅频特性')

实际低通滤波器的h

(n)

J3

副频衰减特性

频率(「ad)频率W (「ad)

2、用窗函数法设计一个线性相位FIR高通数字滤波器。

要求:

FIR高通数字滤波器指标为:

■?p=0.5二数字通带截止频率(弧度)

■?u=0.3二数字阻带截止频率(弧度)

R p=1dB 通带衰减(dB)

A s =40d

B 阻带衰减(dB)

因为衰减为40dB,所以选择汉宁窗。

过渡带宽为Wp —Ws=0.2 n,由公式N > 6.2 n - 0.2 n =31,所以N=32。

程序如下:

N=32;

Wc=pi/2;

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

h=fir1(N,wc, 'high', Hanning(N+1));

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

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

pha=a ngle(H);

subplot(2,2,1)

n=0:N;

stem( n,h,'.')

axis([0 N -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)') 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 6.15 0 1.5]) xlabel('频率W(rad)')

ylabel('幅值')

title('幅频特性')

40

DO p

缶0

-80

四、 体会

通过这次课程设计,通过不断的查资料,思考等培养了我综合运用所学知识, 发现、提出、分析和解决实际问题、锻炼实践的能力。在这次课程设计中,我懂 得了如何设计窗函数,如何用窗函数法设计FIR 滤波器的原理和方法。在做设计 的过程中难免总会出现各种问题, 通过查阅资料,自学其中的相关知识,无形间 提高了我们的动手,动脑能力,通过课程设计让我知道了,知识只有学以致用才 能发挥它的价值,只有真正去做了,你才能真正懂得它的原理。 五、 参考文献

[1] 数字信号处理教程(第三版)

程佩青 清华大学出版社

[2] MATLAB 基础与编程入门(第二版)

张威编西安电子科技大学出版社

频率

-100

0.2

0.4 0.6 0.8 1

w/pi

频率Wgd )

相关主题
文本预览
相关文档 最新文档