10 FIR Digital Filter Design
坚守着你所厌恶的爱情的我,和你的相位逐渐变得错位。
章节目录
- 章节目录
- 10-1 FIR 设计概述 FIR Design Overview
- 10-2 理想滤波器与截断 Ideal Filters and Truncation
- 10-3 窗函数法 Window Method
- 10-4 Kaiser 窗 Kaiser Window
- 10-5 窗函数法例题 Window Method Examples
- 10-6 频率采样法 Frequency Sampling Method
- 10-7 MATLAB FIR 设计 MATLAB FIR Design
10-1 FIR 设计概述 FIR Design Overview
10-1-1 基本目标 Basic Objective
FIR 数字滤波器设计通常直接逼近给定的数字频率响应,并附加线性相位要求。
长度为
设计任务主要确定以下量:
- 阶数
,即系数个数 ; - 冲激响应
,即 FIR 的全部抽头系数。
10-1-2 线性相位条件 Linear Phase Condition
线性相位 FIR 的相位可以写成:
对于长度
等价地,冲激响应关于中点对称或反对称:
本章主要处理对称情形。对称 FIR 适合设计低通、高通、带通和带阻幅频滤波器。
10-1-3 设计指标 Digital Filter Specifications
常见指标包括:
- 通带边缘频率
; - 阻带边缘频率
; - 通带纹波
或 ; - 阻带纹波
或最小阻带衰减 ; - 过渡带宽度
。
若用 dB 指标描述,阻带衰减通常写作:
通带纹波若围绕 1 对称,可由
FIR 阶数可以先粗估。Kaiser 经验公式的一种常见形式为:
Bellanger 公式为:
这些公式给出初始阶数。最终仍需验证实际频响是否满足指标。
10-2 理想滤波器与截断 Ideal Filters and Truncation
10-2-1 从理想频响得到冲激响应 Ideal Impulse Response
设理想频率响应为
大多数理想滤波器的
对应频域为:
10-2-2 典型理想滤波器 Typical Ideal Filters

理想低通的频率响应为:
对应冲激响应:
理想高通可由单位冲激减去低通得到:
理想带通的两个截止频率为
理想带阻为单位冲激减去带通:
NOTE
四类理想响应都可由频域矩形函数的反变换得到。低通对应 sinc 形式,其余几类可由低通响应的平移、相减或谱反转得到。
10-2-3 最小均方意义下的截断 Truncation in MSE Sense
定义积分平方误差:
由 Parseval 关系:
若只保留
当
时,第一项为 0,
截断后的序列仍以
若
10-3 窗函数法 Window Method
10-3-1 Gibbs 现象 Gibbs Phenomenon

直接截断相当于乘上矩形窗。频域中,理想频响的突变边缘会被窗函数频谱的主瓣和旁瓣扩散,从而产生纹波。
增大长度
- 通带和阻带中的纹波数量增加;
- 纹波宽度变窄;
- 过渡带变窄;
- 最大纹波高度不会随长度增加而消失。
该现象称为 Gibbs 现象 Gibbs Phenomenon。对于不连续频响,矩形截断无法完全消除边缘过冲;增大长度主要使过冲集中在更窄的频带附近。
10-3-2 窗函数与频域卷积 Windowing and Frequency Convolution
截断可以改写为窗函数操作:
时域相乘对应频域周期卷积:
其中
窗函数的主瓣宽度决定过渡带宽度,旁瓣面积决定通带和阻带纹波。二者存在折中关系。
IMPORTANT
主瓣越窄,过渡带越窄;旁瓣越低,纹波越小。固定窗函数预先给出这两个目标之间的折中。
10-3-3 固定窗函数 Fixed Windows

以下窗函数均采用中心化写法,定义在
矩形窗:
其频谱为:
Hann 窗:
Hamming 窗:
Blackman 窗:
固定窗函数的性质如下:
| 窗函数 Type | 主瓣宽度 | 相对旁瓣电平 | 最小阻带衰减 | 过渡带宽 |
|---|---|---|---|---|
| Rectangular | ||||
| Hann | ||||
| Hamming | ||||
| Blackman |
矩形窗主瓣最窄,但旁瓣最高。Blackman 窗旁瓣最低,但主瓣最宽。
10-4 Kaiser 窗 Kaiser Window
10-4-1 Kaiser 窗定义 Definition
Kaiser 窗是可调窗函数。仍使用中心化定义:
其中
10-4-2 参数估计 Parameter Estimation
设目标阻带衰减为
阶数估计为:
其中
10-5 窗函数法例题 Window Method Examples
10-5-1 由数字指标选择窗函数 Selecting a Window
设计线性相位 FIR 低通滤波器:
取截止频率为过渡带中点:
理想低通冲激响应:
根据
Hann 窗:
因果 FIR 为:
其中
若改用 Hamming 窗:
若改用 Blackman 窗:
若改用 Kaiser 窗:
10-5-2 低通与高通设计 Lowpass and Highpass Design

低通例题指标:
- 通带边缘
; - 阻带边缘
; - 阻带衰减
; - 采样频率
。
过渡带宽:
截止频率取中点:
选 Hamming 窗。其最小阻带衰减约为
有限长因果低通为:
Hamming 窗为:
最终系数为:
高通设计将理想低通替换为理想高通:
窗函数和阶数不变:
10-6 频率采样法 Frequency Sampling Method
10-6-1 基本方法 Basic Method

频率采样法直接在频域近似目标频率响应。设 FIR 长度为
令:
再用 IDFT 得到系数:
若要求 Type I 线性相位,且
其中
过渡带可以放入若干个采样点。经验表如下:
| 过渡带采样点数 | 1 | 2 | 3 |
|---|---|---|---|
| 阻带最小衰减 |
长度估计:
10-6-2 频率采样例题 Design Examples
设长度
由于
于是:
非零项为:
IDFT 得:
另一组按指标设计的低通为:
查表取
取奇长度
通带采样点数为:
幅度采样可写为:
其中
10-7 MATLAB FIR 设计 MATLAB FIR Design
10-7-1 常用函数 Common Functions
MATLAB 中固定窗可以直接生成:
W = hann(L);
W = hamming(L);
W = blackman(L);
W = kaiser(L, beta);fir1 用于设计常规低通、高通、带通、带阻和多带 FIR:
b = fir1(N, Wn);
b = fir1(N, Wn, 'ftype');
b = fir1(N, Wn, window);其中:
N是 FIR 阶数;Wn是归一化截止频率,范围为 到 ,对应 ;window的长度应为N+1;ftype可取'high'、'bandpass'、'stop'等。
fir2 用于任意形状幅频响应的 FIR 设计。
10-7-2 kaiserord 与 fir1 Kaiserord and fir1

Kaiser 窗设计常用 kaiserord 估计阶数和参数:
fpts = input('Type in the bandedges = ');
mag = input('Type in the desired magnitude values = ');
dev = input('Type in the ripples in each band = ');
[N, Wn, beta, ftype] = kaiserord(fpts, mag, dev);
kw = kaiser(N + 1, beta);
b = fir1(N, Wn, kw);
[h, omega] = freqz(b, 1, 512);
plot(omega/pi, 20*log10(abs(h)));
grid;
xlabel('\omega/\pi');
ylabel('Gain, dB');低通例题输入:
fpts = [0.3 0.4];
mag = [1 0];
dev = [0.003162 0.003162];输出为:
高通例题修改设计类型:
fpts = [0.4 0.55];
mag = [0 1];
dev = [0.02 0.02];
[N, Wn, beta, ftype] = kaiserord(fpts, mag, dev);
kw = kaiser(N + 1, beta);
b = fir1(N, Wn, 'high', kw);对应结果:
FDATool / filterDesigner 可用于图形化设计 FIR 或 IIR 滤波器。手算和脚本设计中,应优先掌握 fir1、kaiserord 以及 Wn 按 Nyquist 频率归一化的约定。
