ESC
输入关键词搜索文章
目录

FIR 数字滤波器的设计

第七讲|窗函数、频率采样、等波纹逼近
严格线性相位、绝对稳定、阶次代价
4线性相位类型
3核心设计方法
5+常用窗函数
1最优逼近算法
学习目标
本节在课程中的位置

上一章我们学习了 IIR 数字滤波器的设计方法--借助模拟低通原型(巴特沃斯、切比雪夫、椭圆),通过双线性变换把成熟的模拟设计"翻译"到数字域。IIR 滤波器可以用很低的阶次实现陡峭的过渡带,但它有一个挥之不去的痛点:相位非线性。在语音处理、图像处理、通信系统等对信号波形保真度要求高的场景中,非线性相位会造成波形失真。FIR 滤波器虽然阶次更高、计算量更大,却能实现严格的线性相位,并且天然绝对稳定。本节将系统介绍 FIR 滤波器的三种主流设计方法:窗函数法、频率采样法、等波纹(切比雪夫)最优逼近法。

核心问题:如何在有限阶次 N 的约束下,让 FIR 滤波器的频率响应尽可能逼近理想指标,同时保持线性相位?

前置知识回顾

如果下面这些概念不熟,先回看对应章节;本节会默认使用它们。

  • DTFT 与 IDFT:序列与频谱的正反变换关系。去哪里补:DTFT 笔记 / 课件第三讲。
  • 系统函数与零极点:$H(z)$ 的零极点分布与频率响应形状的对应关系。去哪里补:Z 变换笔记 / 课件第四讲。
  • 理想滤波器的冲激响应:理想低通是无限长 sinc 序列。去哪里补:课件第七讲第 36 页。
  • IIR 滤波器设计:双线性变换、模拟原型法的基本思想。去哪里补:IIR 滤波器设计笔记 / 课件第六讲。
Part 0 · FIR 是什么
定义、与 IIR 的根本区别

FIR 滤波器(Finite Impulse Response)

一个 FIR 数字滤波器的单位冲激响应 $h(n)$ 只在有限个时刻非零:

$$h(n) = 0,\quad n < 0 \text{ 或 } n \ge N.$$

系统函数是 $z^{-1}$ 的有限次多项式(无极点,除 $z=0$):

$$H(z) = \sum_{n=0}^{N-1} h(n)\,z^{-n},\qquad y(n) = \sum_{k=0}^{N-1} h(k)\,x(n-k).$$

$N$ 是滤波器长度(抽头数),阶数为 $N-1$$H(z)$$z\to\infty$ 处有 $N-1$ 阶零点,在 $z=0$ 处有 $N-1$ 阶极点--这些极点全部在原点,所以 FIR 滤波器天然绝对稳定

FIR 和 IIR 的根本区别在于冲激响应是否有限长。这个看似简单的差异,直接决定了两者在结构、稳定性、相位特性和设计方法上的全面分野:

维度IIRFIR
冲激响应 $h(n)$无限长(递归)有限长 $N$ 点(非递归)
系统函数 $H(z)$有理分式,含极点多项式,仅 $z=0$ 处有极点
差分方程$y(n)=\sum b_k x(n-k)+\sum a_k y(n-k)$$y(n)=\sum h(k)\,x(n-k)$
稳定性需极点在单位圆内始终稳定
相位特性非线性,难以控制可实现严格线性相位
阶次低(相同指标下)高(通常 5~10 倍)
群延迟非常数常数 $(N-1)/2$(线性相位时)
设计方法模拟原型 + 双线性变换窗函数 / 频率采样 / 最优逼近
存储/计算少(低阶递归)多(高阶卷积或 FFT)
典型应用音频均衡、通信信道波形保真、图像处理、数据传输
一句话总结:IIR 用反馈获得低阶高效,代价是相位非线性和潜在不稳定;FIR 放弃反馈换取绝对稳定和线性相位,代价是阶次高、延迟大。选择哪一种取决于应用场景--波形保真选 FIR,计算资源紧张选 IIR。

用一个最小例子来直观感受两者的区别。输入脉冲 $x(0)=1$,其余 $x(n)=0$,观察输出如何演化。

FIR 例子:算完就忘

$$H(z)=1+0.5z^{-1}+0.25z^{-2}$$

差分方程:

$$y(n)=x(n)+0.5\,x(n-1)+0.25\,x(n-2)$$

逐步计算:

  • $y(0)=1+0+0=1$
  • $y(1)=0+0.5\times 1+0=0.5$
  • $y(2)=0+0+0.25\times 1=0.25$
  • $y(3)=0+0+0=0$
  • $y(4)=y(5)=\cdots=0$ ← 永远为零

脉冲进来,经过 3 个抽头,输出归零。有限长,有终点。

IIR 例子:永远记得自己说过什么

$$H(z)=\frac{1}{1-0.5z^{-1}}$$

差分方程:

$$y(n)=x(n)+0.5\,y(n-1)$$

逐步计算:

  • $y(0)=1+0=1$
  • $y(1)=0+0.5\times 1=0.5$
  • $y(2)=0+0.5\times 0.5=0.25$
  • $y(3)=0+0.5\times 0.25=0.125$
  • $y(4)=0.0625$, $y(5)=0.03125$, $\cdots$

脉冲进来,每次输出都拿上一次的结果乘 0.5 再用。无限长,永远在衰减但永远不停。

$n$FIR $y(n)$IIR $y(n)$
011
10.50.5
20.250.25
300.125
400.0625
500.03125
$\cdots$0$(0.5)^n$

前 3 步输出完全一样,但第 4 步 FIR 归零了,IIR 还在继续衰减。原因是 IIR 差分方程里有 $y(n-1)$--反馈:输出反过来喂给自己。FIR 只看输入的历史 $x(n-k)$,不看自己的历史输出。

从这两个数值例子出发,可以推导出 FIR 与 IIR 在稳定性、相位和阶次上的全部差异:

从冲激响应看三个核心差异

1 稳定性。FIR 的 $H(z)$ 是有限多项式,没有分母就没有极点(除 $z=0$),不管输入什么,输出最多延续 $N$ 个采样点就归零,天然绝对稳定。IIR 的 $H(z)$ 有分母,极点 $z=0.5$ 在单位圆内所以 $h(n)=0.5^n$ 衰减;但若把系数改成 $1.1$,极点移到 $z=1.1$ 跑出单位圆,$h(n)=1.1^n$ 指数爆炸。IIR 的稳定性完全取决于极点位置,设计时必须确保所有极点在单位圆内。

2 相位。FIR 的 $h(n)$ 只有有限个非零值,可以自由安排排列--让 $h(n)$ 关于中心对称就得到严格线性相位。IIR 的 $h(n)$ 是无限长的,受极点支配呈指数衰减,无法关于某个中心对称,所以IIR 做不到严格线性相位

3 阶次。FIR 用 3 个系数实现的衰减速率,IIR 用 1 个反馈系数就能做到类似效果,因为每个输出都在循环利用之前所有输出的累积--一个反馈系数等效于无限多个前馈系数。IIR 阶次更低、效率更高,代价是必须管住极点并接受非线性相位。

一句话:反馈是有代价的自由。FIR 没有 feedback,所以安全、线性相位、但阶次高;IIR 有 feedback,所以高效、但必须管住极点、接受非线性相位。

第一组 · FIR 的实现结构
拿到 h(n) 之后怎么搭

Part 0 已经回答了"FIR 是什么"——冲激响应有限长、结构非递归、天然绝对稳定。接下来的问题是:拿到系数 $h(n)$ 之后,硬件或代码里具体怎么搭?

FIR 没有反馈路径,所以所有结构都围绕有限长冲激响应的不同组织方式展开:有时域的横截型、有转置型、有频域的频率抽样型、还有利用对称性省乘法的线性相位型。理解这些结构之后,我们再深入线性相位 FIR 的本质(第二组)与具体设计方法(第三组)。

FIR 系统函数与结构总览

FIR 的系统函数是 $z^{-1}$$N-1$ 次多项式,没有分母(除 $z=0$ 处),系统在有限 $z$ 平面处处收敛。

FIR 系统函数

$$H(z)=\sum_{n=0}^{N-1}h(n)z^{-n},\qquad y(n)=\sum_{k=0}^{N-1}h(k)\,x(n-k).$$

$h(n)$$N$ 点序列,不同 FIR 结构的区别不在于系统函数是否改变,而在于怎样组织延迟、乘法和加法。

没有反馈意味着 FIR 天然稳定:只要输入有界,有限个输入样本的加权和一定有界。它还可以通过 $h(n)$ 的偶对称或奇对称设计出严格线性相位,因此在语音、通信、图像这类关心波形形状的场景中非常常用。代价是同样的幅频指标下,FIR 往往需要比 IIR 更高的阶数。

为什么 FIR 也要分这么多结构

结构利用的性质主要用途直觉
横截型卷积和公式通用 FIR、自适应滤波每个抽头就是一个 $h(k)$
转置横截型转置定理 $H(z)$ 不变流水线、硬件 MAC先乘系数,再沿链路累加
级联型$H(z)$ 分解为零点因子需要控制零点位置一节负责一对零点
频率抽样型频域采样值 $H(k)$频域直接调节频响$H(k)$ 就是改频点附近形状
线性相位型$h(n)$ 的对称性波形保真场景对称抽头先相加/相减,乘法减半
FFT 快速卷积频域乘法代替长卷积长 FIR、流式音频滤波器太长时变到频域再乘更便宜
一句话理解:FIR 没有稳定性危机,所以结构选择更多是在优化乘法次数、硬件流水线、频域调节方式和线性相位约束。
PDFFIR 数字滤波器的基本结构p.38
正在渲染 PDF 第 38 页…
FIR 数字滤波器的基本结构(PDF 第 38 页) · 打开原文
横截型(卷积型 / 直接型)

横截型直接用差分方程实现:$N-1$ 个延迟单元组成延时链,$N$ 个抽头分别乘 $h(0),h(1),\ldots,h(N-1)$,再相加。这就是 LTI 系统的卷积和公式。

横截型的优点是最直观:每个抽头对应一个冲激响应样本,改某个 $h(k)$ 就是改第 $k$ 条抽头的乘法系数。它常作为理解 FIR 的基准结构,也常用于系数需要频繁更新的自适应 FIR。

PDFFIR 横截型结构p.39
正在渲染 PDF 第 39 页…
FIR 横截型结构(PDF 第 39 页) · 打开原文
转置横截型与级联型

转置定理把横截型变换为等价的转置横截型:将所有支路方向反转,输入输出互换,系统函数 $H(z)$ 不变。转置后,输入信号先分配到各个乘法器,再沿着延迟链逐级累加,延迟单元数仍为 $N-1$

级联型$H(z)$ 分解为实系数一阶或二阶因子的乘积:

$$H(z)=\prod_{k=1}^{\lfloor N/2\rfloor}(\beta_{0k}+\beta_{1k}z^{-1}+\beta_{2k}z^{-2}).$$

$N$ 为偶数时共 $N/2$ 个二阶节;$N$ 为奇数时有一个一阶节($\beta_{2k}=0$)。每节主要对应一对零点,适合从零点分布理解和调节 FIR;缺点是需要先因式分解,且节次顺序和系数缩放会影响有限字长误差。

PDFFIR 转置横截型与级联型结构p.40
正在渲染 PDF 第 40 页…
FIR 转置横截型与级联型结构(PDF 第 40 页) · 打开原文
频率抽样型

频率抽样型利用 DFT 频域采样定理,把 $H(z)$$N$ 个频率采样值 $H(k)$ 表示:

$$H(z)=(1-z^{-N})\,\frac{1}{N}\sum_{k=0}^{N-1}\frac{H(k)}{1-W_N^{-k}z^{-1}},\qquad W_N=e^{-j2\pi/N}.$$

这可以看成两部分级联:

  • 梳状滤波器 $1-z^{-N}$:在单位圆上有 $N$ 个等间隔零点 $\omega_k=2\pi k/N$,频率响应为 $|2\sin(N\omega/2)|$
  • 谐振器组 $\sum H(k)/(1-W_N^{-k}z^{-1})$:每个一阶节在单位圆上有一个极点 $\omega_k=2\pi k/N$,正好与梳状滤波器的零点抵消,使得 $\omega=2\pi k/N$ 处的频率响应等于 $H(k)$
PDFFIR 频率抽样型结构(梳状滤波器 + 谐振器组)p.43
正在渲染 PDF 第 43 页…
FIR 频率抽样型结构(梳状滤波器 + 谐振器组)(PDF 第 43 页) · 打开原文
核心思想:频率抽样型把滤波器设计成"先梳状滤除,再谐振恢复"。修改 $H(k)$ 即可直接调整频响在采样点的值,适合需要快速调节频响形状的场合。缺点是极点恰好在单位圆上,有限字长下可能不稳定。
修正的频率抽样型:标准型的极点恰好落在单位圆上 $z_k=W_N^{-k}=e^{j2\pi k/N}$,有限字长实现时极点可能漂移到单位圆外导致不稳定。工程解决方案是把所有极点(连同梳状滤波器的零点)从单位圆收缩到半径 $r<1$ 的圆上,修正后 $H(z)=\frac{1-r^N z^{-N}}{N}\sum_{k=0}^{N-1}\frac{H(k)}{1-rW_N^{-k}z^{-1}}$$r$ 通常取 $0.99\sim 0.999$,兼顾稳定性和频响精度。
PDF修正的频率抽样型结构p.47
正在渲染 PDF 第 47 页…
修正的频率抽样型结构(PDF 第 47 页) · 打开原文
线性相位型

当 FIR 滤波器的单位冲激响应满足偶对称 $h(n)=h(N-1-n)$奇对称 $h(n)=-h(N-1-n)$ 时,相位响应具有严格的线性特性:

  • 偶对称(情况 I、II):$\theta(\omega)=-\frac{N-1}{2}\omega$,纯线性相位。
  • 奇对称(情况 III、IV):$\theta(\omega)=-\frac{N-1}{2}\omega+\frac{\pi}{2}$,线性相位加 $90°$ 相移。

利用对称性,可以把乘法次数减少约一半。根据 $N$ 的奇偶和对称性,线性相位 FIR 有四种情况:

线性相位 FIR 的四种情况

情况对称性$N$群延迟频率响应特点
I$h(n)=h(N\!-\!1\!-\!n)$$(N\!-\!1)/2$纯线性相位
II$h(n)=h(N\!-\!1\!-\!n)$$(N\!-\!1)/2$$\omega=\pi$ 处必为零
III$h(n)=-h(N\!-\!1\!-\!n)$$(N\!-\!1)/2$$\omega=0,\pi$ 处必为零
IV$h(n)=-h(N\!-\!1\!-\!n)$$(N\!-\!1)/2$$\omega=0$ 处必为零

$N$ 为奇数(情况 I)时,对称中心在整数样点 $n=(N-1)/2$,所有 $h(n)$ 都可配对。结构上,对称位置的两个延迟输出相加(偶对称取 $+1$)或相减(奇对称取 $-1$),再乘以系数 $h(n)$,乘法次数从 $N$ 减为 $(N+1)/2$

$$H(z)=\sum_{n=0}^{(N-3)/2}h(n)\left[z^{-n} \pm z^{-(N-1-n)}\right] + h\!\left(\frac{N-1}{2}\right)z^{-(N-1)/2}.$$

$N$ 为偶数(情况 II)时,对称中心在 $n=(N-1)/2$ 处(非整数样点),没有单独的中心项。乘法次数从 $N$ 减为 $N/2$

$$H(z)=\sum_{n=0}^{N/2-1}h(n)\left[z^{-n} \pm z^{-(N-1-n)}\right].$$

线性相位 FIR 在通信、图像处理中非常重要,因为线性相位意味着所有频率分量延迟相同,信号波形不会失真。下面的第二组会深入展开线性相位的本质与四类约束。

PDF线性相位 FIR 滤波器的直接型结构p.56
正在渲染 PDF 第 56 页…
线性相位 FIR 滤波器的直接型结构(PDF 第 56 页) · 打开原文
PDFN 为奇数时线性相位 FIR 结构p.58
正在渲染 PDF 第 58 页…
N 为奇数时线性相位 FIR 结构(PDF 第 58 页) · 打开原文
PDFN 为偶数时线性相位 FIR 结构p.59
正在渲染 PDF 第 59 页…
N 为偶数时线性相位 FIR 结构(PDF 第 59 页) · 打开原文
结构延迟单元核心优点适用场景
横截型$N-1$简单直观通用
级联型$N-1$控制零点对需调零点时
频率抽样型$N$$H(k)$ 即改频响频域设计
线性相位型$N-1$乘法减半,相位线性波形保真
用 DFT/FFT 实现 FIR 滤波(快速卷积)

时域卷积 $y(n)=x(n)*h(n)$ 在频域等价于乘法 $Y(k)=X(k)\cdot H(k)$。当 FIR 滤波器的单位冲激响应 $h(n)$ 较长(比如 $N>64$)时,直接时域卷积需要 $N$ 次乘累加,而用 FFT 在频域做乘法的计算量反而更小。

基本原理

设 FIR 滤波器 $h(n)$ 长度为 $M$,输入 $x(n)$ 长度为 $L$。线性卷积结果长度为 $L+M-1$。用 DFT 计算线性卷积的步骤:

  1. $h(n)$ 补零到 $N\ge L+M-1$
  2. $x(n)$ 补零到 $N$
  3. 分别做 $N$ 点 DFT:$H(k)=\mathrm{DFT}\{h(n)\}$,$X(k)=\mathrm{DFT}\{x(n)\}$
  4. 频域相乘:$Y(k)=X(k)\cdot H(k)$
  5. IDFT 恢复:$y(n)=\mathrm{IDFT}\{Y(k)\}$

$N$ 取 2 的幂时,FFT 的计算复杂度为 $O(N\log N)$,而直接卷积为 $O(N\cdot M)$。当 $M$ 较大时 FFT 方法显著更快。

实际应用中输入信号通常是无限长的流式数据(如音频),需要分段处理。两种经典方法:

重叠相加法(Overlap-Add)

将长序列 $x(n)$ 分成每段长 $L$ 的无重叠子段 $x_m(n)$。每段与 $h(n)$$N$ 点循环卷积($N\ge L+M-1$),结果长度为 $L+M-1$,相邻段的输出有 $M-1$ 个样本重叠,将重叠部分相加即可。

流程图:

graph LR
  A["x(n) 分段"] --> B["补零到 N 点"]
  B --> C["N 点 FFT"]
  C --> D["乘以 H(k)"]
  D --> E["N 点 IFFT"]
  E --> F["重叠相加"]
  F --> G["y(n)"]

重叠保留法(Overlap-Save)

每段输入取 $N$ 点,但相邻段有 $M-1$ 点重叠(每段前 $M-1$ 个点是上一段的后 $M-1$ 个点)。每段做 $N$ 点循环卷积后,丢弃前 $M-1$ 个受缠绕效应影响的样本,保留后 $L=N-M+1$ 个有效样本拼接输出。

两种方法的对比:重叠相加法需要在输出端做加法(重叠相加),但输入分段干净无重叠;重叠保留法不需要输出端加法,但输入分段有重叠。两者计算量相当,具体选择取决于实现平台和缓存策略。两者都利用了 DFT 与 FFT 来加速卷积运算。
PDFFIR 快速卷积结构p.53
正在渲染 PDF 第 53 页…
FIR 快速卷积结构(PDF 第 53 页) · 打开原文
PDF重叠相加法与重叠保留法p.55
正在渲染 PDF 第 55 页…
重叠相加法与重叠保留法(PDF 第 55 页) · 打开原文

至此,FIR 部分已经从时域横截型讲到频域快速卷积。可以看出,FIR 和 IIR 的结构选择标准不同:IIR 首先要管住极点和反馈误差,FIR 则更多是在乘法次数、频域调节、线性相位和分段卷积之间做取舍。接下来的第二组,我们将深入分析线性相位 FIR 的本质与约束——这是 FIR 区别于 IIR 的核心优势所在。

第二组 · 理论分析
线性相位 FIR 的本质与约束

在深入具体设计方法之前,我们必须先回答一个根本问题:FIR 滤波器凭什么能做到线性相位?要做到这一点,它的冲激响应 $h(n)$ 必须满足什么对称条件?这些对称条件又把滤波器分成了哪几类,每类各自能做什么、不能做什么?

为什么需要线性相位

线性相位(Linear Phase)的定义

若滤波器的相位响应满足

$$\phi(\omega) = -\omega\tau + \beta$$

其中 $\tau$$\beta$ 是与 $\omega$ 无关的常数,则称该滤波器具有线性相位

群延迟(各频率分量的实际延迟时间)定义为相位对频率的负导数:

$$\tau_g(\omega) = -\frac{d\phi(\omega)}{d\omega} = \tau = \text{常数}$$

因为 $\phi(\omega)$ 是关于 $\omega$ 的一次线性函数,其导数(斜率)处处等于 $\tau$,所以所有频率分量的延迟时间相同,波形不散。

深入理解:为什么“相位线性”意味着“延迟相同”?

核心区分:相位 $\phi$ 是角度(弧度),延迟 $\tau$ 是时间(样本数)。

一个频率为 $\omega$ 的正弦信号 $x(n) = \sin(\omega n)$ 延迟 $\tau$ 个样本后:

$$y(n) = \sin(\omega(n - \tau)) = \sin(\omega n - \underbrace{\omega\tau}_{\text{相移 } \phi})$$

这里 相移 $\phi = -\omega\tau$(角度),延迟 $\tau$(时间)。关系是:相移 = 频率 × 延迟

关键问题:已知相移 $\phi$,如何反推延迟?答案是 $\tau = -\phi/\omega$

线性相位的情况$\phi = -\omega\tau$):

$$\tau(\omega) = -\frac{\phi(\omega)}{\omega} = -\frac{-\omega\tau}{\omega} = \tau$$

不管 $\omega$ 是多少,延迟都是常数 $\tau$

非线性相位的情况$\phi = -\omega^2$):

$$\tau(\omega) = -\frac{\phi(\omega)}{\omega} = -\frac{-\omega^2}{\omega} = \omega \quad \text{(依赖 }\omega\text{!)}$$

低频延迟少、高频延迟多,波形散架。

具体数值对比(延迟 $\tau = 5$ 个样本时):

  • $\omega = 0.1\pi$:相移 $\phi = -0.1\pi \times 5 = -0.5\pi$(转了 90°),延迟 $= 0.5\pi / 0.1\pi = 5$
  • $\omega = 0.2\pi$:相移 $\phi = -0.2\pi \times 5 = -1.0\pi$(转了 180°),延迟 $= 1.0\pi / 0.2\pi = 5$
  • 两个频率相移不同,但延迟相同!

这就是为什么“相位是频率的线性函数”能保证所有频率延迟相同——分子 $\omega$ 和分母 $\omega$ 恰好约掉,留下常数 $\tau$

IIR 滤波器依靠递归结构(反馈)实现,系统函数 $H(z)$ 的极点可以靠近单位圆,从而用低阶次获得很窄的过渡带。但代价是:极点位置与相位特性深度耦合,无法独立控制。FIR 滤波器没有反馈,$H(z)$ 只有零点没有极点,这给它带来了两个天然优势:

  • 绝对稳定:没有极点,不存在稳定性问题。
  • 线性相位可实现:只要 $h(n)$ 满足对称条件,群延迟就是常数。

线性相位的物理意义是:信号通过滤波器后,所有频率分量被延迟的时间完全相同,波形只是整体平移,不会发生色散失真。这在图像滤波、数据通信、雷达信号处理中至关重要。

这句话的数学表述是:如果滤波器的相位响应为 $\varphi(\omega)=-\omega\tau$(关于 $\omega$ 的线性函数,斜率为常数 $\tau$),那么频率为 $\omega$ 的分量被延迟 $\tau$,频率为 $2\omega$ 的分量也被延迟 $\tau$--所有频率的延迟完全相同。结果就是波形形状不变,只是整体晚了 $\tau$ 个采样点。反过来,如果 $\varphi(\omega)$ 不是线性的,不同频率延迟不一样,波形散了,这就是相位失真。

FIR 线性相位实验:因果 vs 对称滑动平均
线性相位的数值验证。上图:因果 5 点滑动平均(输出写在 $i+4$),系数不对称,橙线相对蓝线明显右移(相位非线性)。下图:对称 5 点滑动平均(输出写在 $i+2$ 即窗口中心),系数对称,橙线和蓝线完全重合,只去掉噪声没有位移(线性相位=恒定延时)。

图中对比了同一个 5 点滑动平均的两种写法:

  • 上图(因果实现):输出写在 $i+4$,系数序列 $[\frac{1}{5},\frac{1}{5},\frac{1}{5},\frac{1}{5},\frac{1}{5}]$ 关于中心不对称(因果约束),相位非线性,滤波结果相对原始信号有明显位移。
  • 下图(对称实现):输出写在 $i+2$(窗口中心),同样的系数但输出位置对齐了窗口中心,等效于 $h(n)=h(N{-}1{-}n)$,相位线性,滤波结果与原始信号完全重合,只有平滑效果没有位移。

这正是 $h(n)=h(N{-}1{-}n)$ 的物理后果:对称系数保证所有频率分量被延迟相同的时间 $\tau=\frac{N-1}{2}$,波形保真。

IIR vs FIR 不是简单的"谁更好"

IIR 阶次低、过渡带窄,但相位非线性且可能不稳定;FIR 相位线性且绝对稳定,但阶次高、延迟大、计算量大。工程上要根据场景取舍,而非一刀切。

PDFIIR vs FIR 对比p.1
正在渲染 PDF 第 1 页…
IIR vs FIR 对比(PDF 第 1 页) · 打开原文
线性相位的对称条件

FIR 滤波器的系统函数为有限项多项式:

$$H(z)=\sum_{n=0}^{N-1}h(n)z^{-n}$$

其频率响应 $H(e^{j\omega})$ 可以写成幅度与相位的乘积。为了得到线性相位,需要相位 $\varphi(\omega)$$\omega$ 成严格的线性关系。数学上可以证明,这要求冲激响应 $h(n)$ 关于中心点 $\alpha=\frac{N-1}{2}$ 满足对称性:

线性相位的充要条件

若 FIR 滤波器具有线性相位,则其冲激响应满足

$$h(n)=\pm h(N-1-n),\quad n=0,1,\ldots,N-1$$

其中 "$+$" 对应偶对称($h(n)=h(N-1-n)$),"$-$" 对应奇对称($h(n)=-h(N-1-n)$)。群延迟恒为 $\tau=\frac{N-1}{2}$ 个采样点。

为什么对称能保证线性相位?直观理解:对称的 $h(n)$ 相当于把信号按中心"镜像折叠"后再加权求和,这种操作对每个频率分量的延迟完全一致,因此相位斜率是常数。

这里有一个常见的误解需要澄清。对称条件 $h(n)=h(N{-}1{-}n)$ 要求滤波器的"中心"在第 $\frac{N-1}{2}$ 个采样点,也就是说要等到输入信号的"未来"样本到达后才能计算当前输出。有人把这叫作"非因果"--但这个词容易误导。更准确的说法是非即时:

  • 频域视角:线性相位意味着 $\varphi(\omega)=-\omega\cdot\tau$,即相位随频率线性变化,斜率恒为 $\tau=\frac{N-1}{2}$。这不是"相位出问题了",而是所有频率分量统一偏移了一个固定斜率。
  • 时域视角:这个固定斜率 $\tau$ 就是恒定延时--输出波形整体晚 $\frac{N-1}{2}$ 个采样点出现,形状完全不变。

所以"非因果"不是真的违反因果律,而是为了对称而付出的延迟代价。因果系统完全可以实现线性相位,只要接受输出不是"即时"的,而是固定延迟 $\frac{N-1}{2}$ 个采样。在实时处理中,这个延迟是可预测、可补偿的;在离线处理中,直接把输出对齐回来就行。前面实验图里对称滑动平均的橙线和蓝线完全重合,就是因为输出写在窗口中心 $i+2$,自动补偿了这个延迟。

PDFFIR 零极点分布p.3
正在渲染 PDF 第 3 页…
FIR 零极点分布(PDF 第 3 页) · 打开原文
四类线性相位 FIR 滤波器

对称条件有"偶/奇"两种,滤波器长度 $N$ 有"奇/偶"两种,组合起来正好四类。每一类的频率响应形式和适用滤波器类型各不相同,这是 FIR 设计中最核心的约束表,做题时必须首先查表确定类型。

四类线性相位 FIR 的频率响应特征

$\alpha=\frac{N-1}{2}$,$M=\left\lfloor\frac{N-1}{2}\right\rfloor$,四类滤波器的频率响应可统一写成

$$H(e^{j\omega})=e^{-j\alpha\omega}\cdot e^{j\beta\pi/2}\cdot H_g(\omega)$$

其中 $H_g(\omega)$ 为实函数(幅度函数,可正可负),$\beta=0$(偶对称)或 $\beta=1$(奇对称)。

第一类与第二类线性相位 FIR 的时域对称与频率响应形式
第一类与第二类线性相位 FIR 的对比总结。共同点是都满足偶对称 $h(n)=h(N-1-n)$,因此相位都是严格线性的:$\phi(\omega)=-\tau\omega$。区别在于:第一类 $N$ 为奇数,对称轴正好落在中心采样点上,因此幅度函数里有一个独立的中心项 $h(\tau)$;第二类 $N$ 为偶数,对称轴落在两个采样点之间,因此没有独立中心项,只剩成对余弦项,这也导致它必有 $H(\pi)=0$
类型对称性长度 N$H_g(\omega)$ 形式$\omega=0$$\omega=\pi$可设计类型
第一类 偶对称 奇数 $h(\alpha)+2\sum\limits_{n=0}^{M}h(n)\cos[(\alpha-n)\omega]$ 任意 任意 低通、高通、带通、带阻
第二类 偶对称 偶数 $2\sum\limits_{n=0}^{N/2-1}h(n)\cos[(\alpha-n)\omega]$ 任意 $H_g(\pi)=0$ 低通、带通(不能高通/带阻)
第三类 奇对称 奇数 $2\sum\limits_{n=0}^{M}h(n)\sin[(\alpha-n)\omega]$ $H_g(0)=0$ $H_g(\pi)=0$ 仅带通(微分器、希尔伯特)
第四类 奇对称 偶数 $2\sum\limits_{n=0}^{N/2-1}h(n)\sin[(\alpha-n)\omega]$ $H_g(0)=0$ 任意 高通、带通(不能低通/带阻)
记忆口诀:奇对称必有 $H(0)=0$;偶对称且 $N$ 偶数必有 $H(\pi)=0$。设计高通/带阻时,要么第一类($N$ 奇、偶对称),要么第四类($N$ 偶、奇对称)--但第四类不能做低通。

最近几张课件图还可以和这里形成一条完整的理解链:

  • 理想低通图给出窗函数法的目标:矩形幅频响应 $|H(e^{j\omega})|$ 在时域对应无限长的 sinc 序列 $h_d(n)=\frac{\sin[\omega_c(n-\tau)]}{\pi(n-\tau)}$,这解释了为什么后面必须“加窗”。
  • 5 点滑动平均例题说明“偶对称 + 奇数长度”就是第一类线性相位 FIR,也是最简单的线性相位低通。
  • $h(n)=\{2,2,3,0,-3,-2,-2\}$ 例题说明“奇对称 + 奇数长度”属于第三类,并且天然有 $H(0)=0$,所以能滤除直流。
  • 汉明窗例题说明只要构造出关于中心 $\tau=\frac{N-1}{2}$ 偶对称的窗序列,就能得到线性相位;当 $N=31$ 时,它属于第一类。
PDF第一类线性相位公式p.8
正在渲染 PDF 第 8 页…
第一类线性相位公式(PDF 第 8 页) · 打开原文
零点分布规律

线性相位 FIR 的零点不是随意分布的,它们具有严格的共轭倒数对称结构。若 $z_i$$H(z)$ 的零点,则 $z_i^*$$1/z_i$$1/z_i^*$ 也必然是零点--四个零点组成一组"四重对称"。

这种结构来源于线性相位条件的代数要求:$H(z)=\pm z^{-(N-1)}H(z^{-1})$。它强制 $H(z)$ 的零点关于单位圆镜像对称,同时关于实轴共轭对称。

  • 当零点恰好落在单位圆上($|z_i|=1$)时,$z_i$$1/z_i^*$ 重合,退化为二重零点
  • 当零点恰好落在实轴上($z_i=\pm 1$)时,四个点全部重合为单点,且 $\omega=0$$\omega=\pi$ 处必有过零。

零点分布与滤波器类型的关系

第二类和第三类在 $\omega=\pi$ 处有过零,说明 $z=-1$ 处必有零点;第三类在 $\omega=0$ 处也有过零,说明 $z=1$ 处也必有零点。这是它们不能设计某些滤波器类型的根本原因--零点被对称条件"钉死"在了特定位置。

PDFFIR 零极点分布p.3
正在渲染 PDF 第 3 页…
FIR 零极点分布(PDF 第 3 页) · 打开原文
第三组 · 三大设计方法
从时域、频域到最优逼近

明确了线性相位的分类约束后,核心问题转化为:如何由给定的频率指标 $H_d(e^{j\omega})$,求出满足线性相位条件的有限长 $h(n)$? 三种方法对应三条不同的路径:时域截断(窗函数法)、频域采样(频率采样法)、误差最小化(等波纹最优法)。

窗函数法:理想响应的时域截断

最直观的设计思路是:先写出理想滤波器的频率响应 $H_d(e^{j\omega})$,通过 IDTFT 得到无限长的理想冲激响应 $h_d(n)$,然后用一个有限长的"窗" $w(n)$ 把它截断为 $N$ 点,得到可实现的 $h(n)=h_d(n)\cdot w(n)$

理想低通滤波器的矩形幅频响应与其对应的 sinc 冲激响应
理想低通滤波器的频域与时域对应关系。上图是“砖墙式”理想低通幅频响应:$|H_d(e^{j\omega})|=1$$|\omega|\le \omega_c$),其余频率完全抑制;下图是对应的单位冲激响应 $h_d(n)$,呈无限长的 sinc(Sa)序列:$h_d(n)=\frac{\sin[\omega_c(n-\tau)]}{\pi(n-\tau)}$,在 $n=\tau$ 处取极限值 $h_d(\tau)=\omega_c/\pi$。这正是窗函数法的起点:先得到理想目标序列,再用窗把它截成有限长 FIR。

这里有一个根本问题:为什么要加窗?理想低通滤波器的冲激响应是无限长的 sinc 函数 $h_d(n)=\frac{\sin[\omega_c(n-\alpha)]}{\pi(n-\alpha)}$,向两侧无限延伸。一个无限长的 $h(n)$ 在物理上无法实现——你不能存储无限个历史样本,也不能做无限次乘法。FIR 滤波器的定义就是冲激响应有限长$h(n)$ 只在 $n=0,1,\ldots,N-1$ 处非零。所以必须截断。窗函数就是截断的工具:$w(n)$$0\le n\le N-1$ 内非零、外面为零,乘以 $h_d(n)$ 后就把无限长序列"剪"成了 $N$ 点。

反过来,正因为 FIR 允许我们自由选择保留哪 $N$ 个点、怎么过渡到零,所以才有了"加窗"这个设计空间。不同窗函数的区别就在于截断的方式不同:矩形窗是硬切,汉宁/汉明窗是软着陆。截断方式不同,频域的"涂抹"效果就不同——这就是窗函数法设计的全部内容。

理想低通的冲激响应

截止频率为 $\omega_c$ 的理想低通滤波器,其 IDTFT 为

$$h_d(n)=\frac{\sin[\omega_c(n-\alpha)]}{\pi(n-\alpha)},\quad \alpha=\frac{N-1}{2}$$

这是一个以 $\alpha$ 为中心、向两侧无限延伸的 sinc 函数。$h_d(n)$ 天然关于 $\alpha$ 偶对称,因此只要窗函数 $w(n)$ 也关于 $\alpha$ 偶对称,截断后的 $h(n)$ 就保持偶对称,满足第一类线性相位。

从频域看,时域乘积对应频域卷积:

$$H(e^{j\omega})=\frac{1}{2\pi}\int_{-\pi}^{\pi}H_d(e^{j\theta})W(e^{j(\omega-\theta)})\,d\theta$$

因此,$H(e^{j\omega})$ 的形状由窗函数频谱 $W(e^{j\omega})$ "涂抹"理想响应得到。窗函数的频谱特性直接决定了设计结果的三大指标:

  • 过渡带宽度:由窗频谱主瓣宽度决定,近似为 $\Delta\omega\approx c\cdot\frac{2\pi}{N}$
  • 通带波纹:由窗频谱主瓣与理想响应的卷积造成。
  • 阻带衰减:由窗频谱旁瓣的峰值相对幅度决定。
一句话理解:窗函数法就是用"一把剪刀"把无限长的 sinc 序列剪成 $N$ 点,剪口越平滑(好窗),频谱上的毛刺越少。
PDF加窗卷积过程(吉布斯现象)p.43
正在渲染 PDF 第 43 页…
加窗卷积过程(吉布斯现象)(PDF 第 43 页) · 打开原文

五种常用窗函数

窗的选择是窗函数法的核心。以下五种窗从“最粗糙”到“最平滑”递进,主瓣越窄则过渡带越陡,旁瓣越低则阻带衰减越大——二者不可兼得。

五种常用窗函数时域波形对比
图 7.11 五种常用窗函数的时域波形。所有窗关于中心 $n=\frac{N-1}{2}$ 对称,峰值 $w(n)=1$。矩形窗(最宽、截断最硬)→ 三角窗 → 汉宁窗 → 海明窗 → 布莱克曼窗(最窄、边缘衰减最柔和)。底部公式:$h(n)=h_d(n)\cdot w(n)$,加窗后的频率响应 $H(e^{j\omega})=\sum_{n=0}^{N-1}h(n)e^{-j\omega n}$

从图中可以看出窗函数设计的核心权衡:矩形窗的“剪刀”最锋利(主瓣最窄,过渡带最陡),但截断太硬导致频谱旁瓣很高;越往右的窗边缘衰减越柔和,旁瓣越低,但主瓣越宽(过渡带越宽)。五种窗的关键参数对比见下表。

窗名称时域表达式 $w(n)$主瓣宽度旁瓣峰值 (dB)阻带最小衰减 (dB)过渡带 $\Delta\omega$
矩形窗$1$$4\pi/N$$-13$$-21$$1.8\pi/N$
三角窗$1-\frac{2|n-\alpha|}{N-1}$$8\pi/N$$-25$$-25$$6.1\pi/N$
汉宁窗$0.5-0.5\cos\frac{2\pi n}{N-1}$$8\pi/N$$-31$$-44$$6.2\pi/N$
汉明窗$0.54-0.46\cos\frac{2\pi n}{N-1}$$8\pi/N$$-41$$-53$$6.6\pi/N$
布莱克曼窗$0.42-0.5\cos\frac{2\pi n}{N-1}+0.08\cos\frac{4\pi n}{N-1}$$12\pi/N$$-57$$-74$$11\pi/N$

工程上最常用的是汉明窗:它在主瓣宽度与旁瓣衰减之间取得了最佳平衡,阻带衰减约 53 dB,足以满足大多数应用。

矩形窗与汉明窗的时域波形对比(N=32)JSXGraph
矩形窗与汉明窗的时域波形对比(N=32)

上图展示了 $N=32$ 时矩形窗(红色)与汉明窗(蓝色)的时域波形。汉明窗在两端逐渐衰减到接近零,这种"软着陆"显著抑制了频谱旁瓣,代价是主瓣变宽一倍。

PDF五种窗函数频谱对比p.53
正在渲染 PDF 第 53 页…
五种窗函数频谱对比(PDF 第 53 页) · 打开原文

窗函数法设计步骤

窗函数法的完整设计流程可以归纳为四步,考试时按此顺序书写,不容易遗漏。

窗函数法设计流程

  1. 确定滤波器类型:根据指标(低通/高通/带通/带阻)和相位要求,查四类表选定对称类型(通常第一类)。
  2. 由阻带衰减选定窗:根据 $A_s$ 要求选择窗函数。$A_s\leq 21$ dB 用矩形窗;$A_s\leq 53$ dB 用汉明窗;$A_s\leq 74$ dB 用布莱克曼窗。
  3. 由过渡带估计阶数 N:利用 $\Delta\omega\approx c\cdot\frac{2\pi}{N}$ 反解 $N$,并向上取整到最近的奇数(若用第一类)。
  4. 计算并加窗:求 $h_d(n)=\frac{\sin[\omega_c(n-\alpha)]}{\pi(n-\alpha)}$,乘以 $w(n)$$h(n)=h_d(n)\cdot w(n)$

其中 $\omega_c$ 通常取通带边缘 $\omega_p$ 与阻带边缘 $\omega_{st}$算术中点:$\omega_c=\frac{\omega_p+\omega_{st}}{2}$。这是因为加窗后通带和阻带各向中间"侵蚀"了一段。

PDF窗函数法设计步骤p.56
正在渲染 PDF 第 56 页…
窗函数法设计步骤(PDF 第 56 页) · 打开原文

频率采样法:从频域直接构造

窗函数法走的是"时域截断"路线。另一条思路是:既然 $h(n)$$N$ 点有限长序列,它的 DTFT 在单位圆上采样 $N$ 点正好对应 DFT。那么,何不直接在频域"画"出想要的 $H_d(k)$,再反变换回时域?这就是频率采样法。

频率采样法的基本思想

对理想频率响应 $H_d(e^{j\omega})$$\omega_k=\frac{2\pi k}{N}$($k=0,1,\ldots,N-1$)处采样 $N$ 个点,得到 $H(k)=H_d(e^{j\omega_k})$,再通过 $N$ 点 IDFT 得到

$$h(n)=\frac{1}{N}\sum_{k=0}^{N-1}H(k)e^{j\frac{2\pi}{N}kn},\quad n=0,1,\ldots,N-1$$

实际频率响应则由内插公式重建:

$$H(e^{j\omega})=\sum_{k=0}^{N-1}H(k)\Phi\left(\omega-\frac{2\pi k}{N}\right)$$

其中 $\Phi(\omega)=\frac{\sin(N\omega/2)}{N\sin(\omega/2)}e^{-j\omega(N-1)/2}$ 为内插函数。

频率采样法的优点是直接:你把想要的频响"画"在 $N$ 个采样点上,IDFT 后就自动得到 $h(n)$。缺点也很明显:采样点之间的频率响应由内插函数"连接",如果采样点处跳变太剧烈(比如从通带 1 直接跳到阻带 0),内插会在中间产生较大的起伏,导致阻带衰减不够。

PDF频率采样法基本思想p.68
正在渲染 PDF 第 68 页…
频率采样法基本思想(PDF 第 68 页) · 打开原文

线性相位约束下的采样点相位

为保证线性相位,$H(k)$ 的相位不能随意取,必须满足与四类对称对应的约束。以最常见的第一类(偶对称、$N$ 奇数)为例,幅度采样 $H_k$ 必须为偶对称 $H_k=H_{N-k}$,相位采样则为

$$\theta(k)=-\frac{k(N-1)\pi}{N},\quad k=0,1,\ldots,\frac{N-1}{2}$$

第二类(偶对称、$N$ 偶数)还需要额外满足 $H_{N/2}=0$,因为 $H(\pi)=0$

一句话理解:频率采样法相当于在频域"打桩"--$N$ 个采样点是桩,桩与桩之间由内插函数拉线。桩的高度和角度必须成对对称,才能保证拉出来的线是线性相位的。

频率采样法通常分为 I 型和 II 型,区别仅在于第一个采样点的位置:

  • I 型:第一个采样点在 $\omega=0$ 处($k=0$),即标准的 $N$ 点 DFT 采样。
  • II 型:第一个采样点在 $\omega=\frac{\pi}{N}$ 处,采样点整体偏移半个间隔。

两种类型在通带平坦度和设计灵活性上略有差异,但核心思想完全相同。

过渡带采样的技巧

频率采样法最经典的问题出现在低通设计:通带最后一个采样点为 1,阻带第一个采样点为 0,中间没有任何过渡。内插函数在跳变边缘会产生类似吉布斯现象的振荡,阻带衰减通常只有 20 dB 左右,远不能满足工程需求。

解决方法是:在通带与阻带之间故意插入一个或几个过渡带采样点,取介于 0 和 1 之间的值。这相当于在频域"修坡",让跳变变缓。代价是过渡带变宽,但阻带衰减可以大幅提高。

加过渡带前后阻带衰减对比示意JSXGraph
加过渡带前后阻带衰减对比示意

上图示意了三种情况:理想矩形频响(蓝色实线)、无过渡带采样时的频响起伏(红色虚线,吉布斯振荡明显)、插入过渡带采样后的平滑结果(绿色)。过渡带采样"牺牲"了过渡带的陡峭度,换取了阻带内更干净的高衰减。

PDF增加过渡带的效果p.88
正在渲染 PDF 第 88 页…
增加过渡带的效果(PDF 第 88 页) · 打开原文

等波纹逼近法:最优设计

窗函数法和频率采样法都有一个共同缺陷:它们无法精确控制通带波纹 $\delta_1$ 和阻带衰减 $\delta_2$,设计结果是"碰运气"的--阶数 $N$ 选大了浪费计算,选小了指标不达标。有没有一种方法,能在给定阶数 $N$ 的约束下,让最大逼近误差最小化?

答案是等波纹最优逼近法,也称切比雪夫逼近法或 Parks-McClellan 算法。它的数学目标非常清晰:

切比雪夫最优逼近问题

寻找 $h(n)$,使得加权误差的最大绝对值最小化:

$$\min_{h(n)}\max_{\omega\in A}\left|W(\omega)\left[H_d(e^{j\omega})-H(e^{j\omega})\right]\right|$$

其中 $A$ 为通带与阻带的并集(过渡带不参与优化),$W(\omega)$ 为加权函数:

$$W(\omega)=\begin{cases}\delta_2/\delta_1,&\omega\in\text{通带}\\1,&\omega\in\text{阻带}\end{cases}$$

通带误差被放大了 $\delta_2/\delta_1$ 倍,使得优化结果在通带和阻带中的波纹幅度之比恰好为 $\delta_1:\delta_2$

为什么叫"等波纹"?因为最优解有一个惊人的性质:误差函数 $E(\omega)=W(\omega)[H_d(\omega)-P(\omega)]$ 在逼近区间 $A$ 上的极值点数目达到最大,且所有极值点的绝对值相等,形成均匀分布的波纹。直观上,这就像把一块弹性膜绷紧在理想响应上,膜上的波峰波谷高度完全一致--没有任何一处"特别突出"。

PDF交错定理p.98
正在渲染 PDF 第 98 页…
交错定理(PDF 第 98 页) · 打开原文

交错定理与 Remez 交换算法

等波纹最优解的存在性和唯一性由交错定理保证。

交错定理(Alternation Theorem)

$P(\omega)$$r$ 阶三角多项式(对应 $N$ 阶 FIR 滤波器的幅度函数),$A$$[0,\pi]$ 上若干个不相交闭区间的并集。$P(\omega)$$H_d(\omega)$$A$ 上的唯一最优切比雪夫逼近,当且仅当误差函数 $E(\omega)=W(\omega)[H_d(\omega)-P(\omega)]$$A$ 上至少有 $r+2$交错点,即存在 $\omega_0<\omega_1<\cdots<\omega_{r+1}$ 使得

$$E(\omega_i)=-E(\omega_{i+1})=\pm\max|E(\omega)|,\quad i=0,1,\ldots,r$$

也就是误差在最值之间正负交替,且绝对值相等。

基于交错定理,Parks 和 McClellan 提出了高效的迭代算法--Remez 交换算法。它的核心思想是:

  1. 在逼近区间 $A$猜测一组 $r+2$ 个极值点频率 $\{\omega_i\}$
  2. 解线性方程组,求出这组极值点上的等波纹误差值 $\delta$ 和多项式系数。
  3. 计算整个区间上的误差函数 $E(\omega)$,找出真正的极值点。
  4. 用新的极值点替换旧的猜测,重复迭代直到收敛。

Remez 算法收敛非常快,通常只需 5-10 次迭代即可达到机器精度。MATLAB 的 firpm(原 remez)和 SciPy 的 scipy.signal.remez 都是这一算法的实现。

核心优势:等波纹法在同等阶数 $N$ 下,能获得最大的阻带衰减、最窄的过渡带。它是 FIR 设计的"天花板"--理论最优,没有理由在阶数受限时不用它。
PDFParks-McClellan 算法p.105
正在渲染 PDF 第 105 页…
Parks-McClellan 算法(PDF 第 105 页) · 打开原文
第四组 · 方法对比与实战
三种方法如何选择

现在我们已经掌握了 FIR 滤波器的三种设计方法。窗函数法概念最直观、手算最方便;频率采样法适合需要精确控制频域某些点响应的场景;等波纹法在给定阶数下性能最优。下面从多个维度进行系统对比。

三种设计方法全面对比
对比维度窗函数法频率采样法等波纹最优法
设计路径 时域:理想响应 $h_d(n)$ + 窗截断 频域:$H_d(k)$ 采样 → IDFT 优化:最小化最大加权误差
核心思想 用有限长窗"软化"无限长 sinc 频域打桩 + 内插重建 交错定理 + Remez 迭代
能否精确控制 $\delta_1, \delta_2$ 不能,只能靠试 $N$ 不能,过渡带采样需试凑 ,直接作为优化约束
过渡带宽度 由窗主瓣决定,较宽 由采样密度决定,较宽 最窄(同阶下最优)
阻带衰减 由窗旁瓣决定,固定值 过渡带采样可提升,但有限 最大(同阶下最优)
通带/阻带波纹分布 不均匀(两端大、中间小) 不均匀 等波纹(均匀分布)
计算复杂度 低,解析公式直接求 低,一次 IDFT 中,需迭代求解
手算可行性 (考试常考) 低(依赖计算机迭代)
适用场景 快速设计、原型验证、考试 需要频域任意点精确控制的场景 阶数受限、指标苛刻的工程实现

工程实践的选择建议

快速原型或课堂作业 → 窗函数法(汉明窗最常用)。

需要频域陷波或特定频点精确响应 → 频率采样法(配合过渡带优化)。

产品级实现、DSP 芯片资源受限 → 等波纹法(用 MATLAB firpm 设计后量化系数量化)。

FIR 设计的通用流程图

无论用哪种方法,FIR 滤波器设计都可以归纳为以下决策流程:

flowchart TD
    A[给定滤波器指标] --> B{需要线性相位?}
    B -->|是| C[FIR]
    B -->|否| D[IIR]
    C --> E{阶次受限且指标苛刻?}
    E -->|是| F[等波纹最优法
Parks-McClellan] E -->|否| G{需要手算/快速原型?} G -->|是| H[窗函数法
汉明/汉宁/布莱克曼] G -->|否| I[频率采样法
配合过渡带优化] F --> J[量化系数
实现为 DSP/FPGA] H --> J I --> J
例题区
FIR 全部例题

例题:差分方程系数与系统函数的一一对应

设 LTI 系统的差分方程系数为 $b_k = [1, 2, 1]$,求系统函数 $H(z)$ 和频率响应 $H(e^{j\omega})$

解:差分方程系数即冲激响应:

$$h(n) = \delta(n) + 2\delta(n-1) + \delta(n-2)$$

Z 变换:

$$H(z) = 1 + 2z^{-1} + z^{-2}$$

$z = e^{j\omega}$ 得频率响应:

$$H(e^{j\omega}) = 1 + 2e^{-j\omega} + e^{-2j\omega}$$
FIR 滤波器之所以如此"透明",是因为它没有反馈:差分方程 $y(n)=\sum b_k x(n-k)$ 的系数 $b_k$ 直接就是冲激响应 $h(k)$,直接就是 $H(z)$ 多项式的系数。不存在 IIR 那种"系数和极点关系复杂"的问题。

例题:判断 FIR 滤波器的线性相位类型

题目:已知系统差分方程为 $y(n)=\frac{1}{5}\sum_{i=0}^{4}x(n-i)$,判断属于哪一类线性相位滤波器。

解:

由差分方程写出冲激响应:

$$h(n) = \frac{1}{5}\bigl[\delta(n)+\delta(n-1)+\delta(n-2)+\delta(n-3)+\delta(n-4)\bigr]$$

滤波器长度 $N=5$$N-1=4$),系数为 $[\frac{1}{5},\frac{1}{5},\frac{1}{5},\frac{1}{5},\frac{1}{5}]$

观察对称性:$h(0)=h(4)=\frac{1}{5}$$h(1)=h(3)=\frac{1}{5}$$h(2)=\frac{1}{5}$,即 $h(n)=h(N-1-n)$偶对称

长度 $N=5$(奇数),偶对称 → 查表得 第一类线性相位 FIR

第一类滤波器 $\omega=0$$\omega=\pi$ 处都可以任意取值,因此可以设计低通、高通、带通、带阻——四类中唯一"全能"的。这个 5 点滑动平均就是一个最简单的第一类低通 FIR。

例题 2:判断线性相位类型与直流滤波能力

题目:已知系统单位脉冲响应 $h(n)=\{2,2,3,0,-3,-2,-2\}$,分析该滤波器属于哪类线性相位?长度是多少?能否滤除直流信号?

解:

1) 对称性与类型判断

序列长度 $N=7$,中心 $\alpha=\frac{N-1}{2}=3$。逐项检验:

  • $h(0)=2$, $h(6)=-2$$h(0)=-h(6)$
  • $h(1)=2$, $h(5)=-2$$h(1)=-h(5)$
  • $h(2)=3$, $h(4)=-3$$h(2)=-h(4)$
  • $h(3)=0$ → 满足 $h(3)=-h(3)$

因此 $h(n)=-h(N-1-n)$奇对称$N=7$(奇数)+ 奇对称 → 查表得 第三类线性相位 FIR

易错点:第三类 vs 第二类

部分课件将本题误判为"第二类"。正确判断:第二类 = 偶对称 + $N$ 偶数第三类 = 奇对称 + $N$ 奇数。本题 $N=7$(奇数)且奇对称,应为第三类。

2) 滤波器阶数

$h(n)$$z$ 的最高负幂次为 $z^{-6}$,所以阶数为 $N-1=6$,即 6 阶系统。

3) 能否滤除直流

第三类的特征:$H_g(0)=0$。验证:令 $\omega=0$

$$H(e^{j0})=\sum_{n=0}^{6}h(n)=2+2+3+0-3-2-2=0$$

频率响应在 $\omega=0$ 处为零,可以滤除直流信号。这正是第三类"$H(0)=0$"约束的直接体现——奇对称的系数正负抵消,直流分量被完全抑制。

例题 3:由汉明窗序列判断线性相位性质

题目:已知 FIR 系统的单位脉冲响应

$$h(n)=\bigl[0.54-0.46\cos(\tfrac{n\pi}{15})\bigr]R_N(n)$$

问:该系统属于何种类型的滤波器?是否具有线性相位特性?

解:

要判断是否具有线性相位,只需检查是否满足对称条件。令 $\tau=\frac{N-1}{2}$,考察

$$h(N-1-n)=\bigl[0.54-0.46\cos(\tfrac{(N-1-n)\pi}{15})\bigr]R_N(n)$$

若要有 $h(N-1-n)=h(n)$,必须使

$$\cos\!\left(\frac{(N-1-n)\pi}{15}\right)=\cos\!\left(\frac{n\pi}{15}\right)$$

利用恒等式

$$\cos\!\left(\frac{(N-1)\pi}{15}-\frac{n\pi}{15}\right)=\cos\!\left(\frac{n\pi}{15}\right)$$

只要取

$$\frac{(N-1)\pi}{15}=2\pi$$

即可成立,因此

$$N-1=30\quad\Rightarrow\quad N=31$$

于是 $N=31$(奇数),并且 $h(n)=h(N-1-n)$(偶对称),故该系统属于 第一类线性相位 FIR 滤波器,具有严格线性相位,群延迟为

$$\tau=\frac{N-1}{2}=15$$
这道题说明:窗函数本身只要关于中心偶对称,就天然适合用来构造线性相位 FIR。汉明窗、汉宁窗、布莱克曼窗之所以常用,一个重要原因就是它们都满足这种对称性。

例题 2:汉明窗低通设计 (例 7-1)

题目:采样频率 $F_s=1.5\times 10^4$ Hz,通带截止 $f_p=1.5\times 10^3$ Hz,阻带截止 $f_{st}=3\times 10^3$ Hz,阻带衰减 $A_s\geq 50$ dB。用汉明窗设计。

  1. 选窗:汉明窗阻带衰减 53 dB $\geq$ 50 dB,满足要求。
  2. 数字边缘:
    $$\omega_p=2\pi\frac{f_p}{F_s}=0.2\pi,\quad \omega_{st}=2\pi\frac{f_{st}}{F_s}=0.4\pi$$
    过渡带 $\Delta\omega=0.2\pi$
  3. 定阶数:汉明窗过渡带 $6.6\pi/N$
    $$N\geq\frac{6.6\pi}{0.2\pi}=33$$

    $N=33$(奇数),$\alpha=16$

  4. 理想冲激响应:$\omega_c=(0.2\pi+0.4\pi)/2=0.3\pi$
    $$h_d(n)=\frac{\sin[0.3\pi(n-16)]}{\pi(n-16)},\quad n=0,1,\ldots,32$$
  5. 加汉明窗:
    $$w(n)=0.54-0.46\cos\frac{2\pi n}{32},\quad n=0,1,\ldots,32$$
    $$h(n)=h_d(n)\cdot w(n)$$
验证:$h(16)=0.3\times 1=0.3$(窗函数在中心处值为 1)。

复习速查

  • 线性相位条件:$h(n)=\pm h(N-1-n)$,群延迟 $\tau=(N-1)/2$
  • 四类 FIR:奇偶对称 × 奇偶长度。第一类万能;第二类不能高通/带阻;第三类只能带通;第四类不能低通/带阻。
  • 窗函数法公式:$h_d(n)=\frac{\sin[\omega_c(n-\alpha)]}{\pi(n-\alpha)}$,$h(n)=h_d(n)\cdot w(n)$,$\omega_c=\frac{\omega_p+\omega_{st}}{2}$
  • 常用窗衰减:矩形 $-21$ dB → 汉宁 $-44$ dB → 汉明 $-53$ dB → 布莱克曼 $-74$ dB。
  • 频率采样法:$H(k)$ 采样 → IDFT 得 $h(n)$。插入过渡带采样可大幅提升阻带衰减。
  • 等波纹最优:最小化 $\max|W(\omega)[H_d-P]|$。交错定理保证 $r+2$ 个等幅交错极值点。Remez 算法迭代求解。
  • 方法选择:考试/手算用窗函数法;频域点控用频率采样;阶次受限用等波纹最优。

参考来源

  • 西安交通大学数字信号处理课程. 第七讲:FIR 数字滤波器的设计方法. 课件 PDF(114 页)
  • Oppenheim, A. V. & Schafer, R. W. (2009). Discrete-Time Signal Processing (3rd ed.). Pearson. 出版社页面
  • Parks, T. W. & McClellan, J. H. (1972). Chebyshev Approximation for Nonrecursive Digital Filters with Linear Phase. IEEE Trans. on Circuit Theory, 19(2), 189-194. IEEE Xplore