FIR数字滤波器的Matlab实现

  • 格式:doc
  • 大小:191.50 KB
  • 文档页数:7

下载文档原格式

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

第7章 FIR 数字滤波器的Matlab 实现

7.1 实验目的

● 学习用窗函数法设计FIR 数字滤波器的原理及其设计步骤; ● 学习编写数字滤波器的设计程序的方法,并能进行正确编程; ● 根据给定的滤波器指标,给出设计步骤。

7.2 实验原理及实例分析

7.2.1 FIR 低通数字滤波器的设计原理

如果系统的冲激响应)(n h d 为已知,则系统的输入/输出关系为:

)()()(n h n x n y d ⋅=

对于低通滤波器,只要设计出低通滤波器的冲激响应函数,就可以由上式得到系统的输出了。假设所希望的数字滤波器的频率响应为)(jw

d e H ,它是频域的周期函数,周期为2π,那么

它与)(jw

d e

H 相对应的傅立叶系数为

dw e e H n h jnw jw d d )(21

)(⎰-

=

π

π

π

以)(n h d 为冲激响应的数字滤波器将具有频域响)(jw

d e H 。

但是将)(n h d 作为滤波器脉冲响应有两个问题:

(1) 它是无限长的,与FIP 滤波器脉冲响应有限长这一前提不一致 (2) 它是非因果的,0,0)(<≠n n h d 对此,要采取以下的措施,

(1) 将)(n h d 截短 (2)将其往右平移, 由此得到)(2n h 的实际频域响应jnw N n jw

d e n h e

H ∑-==1

2)()(,与理想频域响应)(jw d e H 相近,

但不完全一致。理论证明上述现象是对)(n h d 进行简单截短处理的必然结果,一般称为吉布斯现象,为尽可能的减少吉布斯现象,应对)(n h d 进行加窗截取,即以)

()()(n W n h n h N d ⋅=

作为FIR 滤波器的系数。

常用的窗函数有矩形窗、海明窗和布莱克曼窗等。

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

Matlab 设计FIR 滤波器有多种方法和对应的函数,见表7-1。

表7-1 matlab 设计FIR 滤波器的方法和函数

窗函数方法不仅在数字滤波器的设计中占有重要的地位,同时可以用于功率谱的估计,从根本上讲,使用窗函数的目的就是消除由无限序列的截短而引起的Gibbs 现象所带来的影响。

窗函数设计线性相位FIR 滤波器步骤如下:

(1) 确定数字滤波器的性能要求,临界频率}{k w ,滤波器单位脉冲响应长度N (2) 根据性能要求,合理选择单位脉冲响应h(n)的奇偶对称性,从而确定理想频率

响应)(jw

d e

H 的幅频特性和相频特性

(3) 求理想单位脉冲响应)(n h d ,在实际计算中,可对)(jw

d e

H 采样,并对其求IDFT

的)(n h M ,用)(n h M 代替)(n h d

(4) 选择适当的窗函数w (n ),根据)()()(n W n h n h N d ⋅=求所需设计的FIR 滤波

器单位脉冲响应

(5) 求)(jw

d e

H ,分析其幅频特性,若不满足要求,可适当改变窗函数形式或长度

N ,重复上述设计过程,以得到满意的结果

FIR1.m 调用格式:

a) b=fir1(N,wn)

b) b=fir1(N,wn,’hign ’)

N 为滤波器的阶次,wn 是通带截止频率,其值在0~1之间,1对应抽样频率的一半;b 是设计好的滤波器系数h(n)。

对于格式a),若wn 是标量,则用来设计低通滤波器,若wn 是1×L 的向量,则用来设计带通(带阻)滤波器。其格式为:

b=fir1(N,wn,’DC-1’)或b=fir1(N,wn,’DC-0’),其中,前者保证第一个带为通带,后者保证第一个带为阻带。

b )用来设计高通滤波器。

用于产生窗函数的matlab 文件有如下8个:

bartlett.m(巴特利特窗) blackman.m(布莱克曼窗) rectangle.m(矩形窗) hamming.m (汉明窗) hanning.m (汉宁窗) triang.m(三角窗)

chebwin.m (切比雪夫窗) Kaiser.m (凯泽窗)

【实例7-1】 设计一个34阶的高通滤波器,截止频率为0.48π,使用具有30dB 波纹的

chebyshev 窗。

解:源程序如下:

b=fir1(34,0.48,'high',chebwin(35,30));

freqz(b,1,512)

其响应波形如图7-1所示。

图7-1 带通FIR 滤波器

【实例7-2】设计一个24阶FIR 带通滤波器,通带频率0.350.65w ππ≤≤。 解:源程序如下: wn=[0.35 0.65]; N=24;

b=fir1(2*N,wn,'DC-0');% DC-0表示第一个带为阻带,这样设计出来的滤波器为带通滤波器。 freqz(b,1,512)

图7-2 带通FIR 滤波器

【实例7-3】 设计具有下面指标的低通FIR 滤波器

dB

A w d

B R w S s p p 50,3.0,25.0,2.0====ππ

由于其最小阻带衰减为50dB ,因此可以选择hamming 窗来实现这个滤波器,因为它具有较小的过渡带。

解:MATLAB 源程序为 %数字滤波器指标

wp=0.2*pi; ws=0.3*pi;

tr_width=ws-wp; %通带宽度

N=ceil(6.6*pi/tr_width)+1; %滤波器长度 if rem(N,2)==0 N=N+1; end

Nw=N; %滤波器长度为奇数 n=[0:1:Nw-1];

wc=(ws+wp)/2; %截止频率 alpha=(Nw-1)/2;

m=n-alpha+0.00001; %如果不加0.00001,当n= alpha 时,m 为0,下式分母为0,不能执行 hd=sin(wc*m)./(pi*m); %理想滤波器的冲激响应

% 生成hamming 窗

w_ham=(hamming(Nw))';

% 频域图像的绘制

h=hd.*w_ham; % 滤波器实际冲激响应

freqz (h,[1]) figure(2);