实验七 用 MATLAB 设计 FIR 数字滤波器
一、实验目的:
1、加深对窗函数法设计 FIR 数字滤波器的基本原理的理解。
2、学习用 MATLAB 语言的窗函数法编写设计 FIR 数字滤波器的程序。
3、了解 MATLAB 语言有关窗函数法设计 FIR 数字滤波器的常用函数用法。
4、掌握 FIR 滤波器的快速卷积实现原理。
二、实验原理:
1、用窗函数法设计 FIR 数字滤波器
FIR 数字滤波器的系统函数为
-1
0
N
n
=
=
å
这个公式也可以看成是离散 LSI 系统的系统函数
-
0 0 1 2
-
1 2
1
( ) ( )
( )
( ) ( ) 1
1
M
m
m
m m
N
k
k
k
k
b z
Y z b z
H z
a z
=
=
+ + + +
= = = =
+ + + +
+
å
å
L
L
分母 a
0
为 1,其余 a
k
全都为 0 时的一个特例。由于极点全部集中在零点,稳定和线性相位
特性是 FIR 滤波器的突出优点,因此在实际中广泛使用。
FIR 滤波器的设计任务是选择有限长度的 h(n),使传输函数 H(e
j
ω
)满足技术要求。主
要设计方法有窗函数法、频率采样法和切比雪夫等波纹逼近法等。本实验主要介绍窗函数
法。
用窗函数法设计 FIR 数字滤波器的基本步骤如下:
(1)根据过渡带和阻带衰减指标选择窗函数的类型,估算滤波器的阶数 N。
(2)由数字滤波器的理想频率响应 H(e
j
ω
)求出其单位冲激响应 h
d
(n)。
可用自定义函数 ideal_lp 实现理想数字低通滤波器频率响应的求解。
程序清单如下:
其它选频滤波器可以由低通频响特性合成。如一个通带在 ω
c1
~ω
c2
之间的带通滤波器
在给定 N 值的条件下,可以用下列程序实现: