使用置零的方法为Multirate Filtering: Introduction中的多频采样系统设计滤波器。一个长度为
N
N 的FIR滤波器的
z
z-变换在
z-1
z
-1
中是一个多项式,这个多项式可被因式分解为
N−1
N
1
项。
Hz=
h
0
+
h
1
z-1+
h
2
z-2+⋯=(
z
1
−z-1)(
z
2
−z-1)(
z
3
−z-1)⋯
H
z
h
0
h
1
z
-1
h
2
z
-2
⋯
z
1
z
-1
z
2
z
-1
z
3
z
-1
⋯
(1)
利用这一关系在单位圆上的
±3π8
±
3
8
,
±π2
±
2
,
±5π8
±
5
8
,
±3π4
±
3
4
,
±7π8
±
7
8
和
±π
±
处放置12个复数零来设计一个低通滤波器(用于多频采样系统中的anti-aliasing和anti-imaging滤波器)。你设计的这个滤波器既可被用作 FIR 1,也可被用作 FIR 3。而对于滤波器 FIR 2 则通过在单位圆上的
±π4
±
4
and
±3π4
±
3
4
处放置四个等间距的零来设计一个低通滤波器(用于多频采样系统的 anti-aliasing 和 anti-imaging 滤波器)。调整设计好的滤波器参数以确保在任何频率下增益都不超过1。
在MATLAB中根据给定的零点来计算滤波器参数,并以此来设计滤波器。你可以使用MATLAB的poly函数。在MATLAB中键入help poly来获取使用细节。
在确定了滤波器参数后,使用MATLAB中的freqz函数来画出频率响应曲线。你会发现这些滤波器的频率响应具有很大的增益。通过除以适当数值的方法来调整滤波器参数,以确保增益最大不超过1。所得到的频率响应是否和你根据z-平面上零点位置所预计的频率响应相一致?