← Home

Chapter 09 · Design of Digital Filters

数字滤波器设计

9.1 Basic Concepts in Digital Filters

数字滤波器基本概念

模拟滤波器 vs. 数字滤波器:为什么采样前还需要模拟滤波器?Analog vs. digital filters: why an analog filter is still required before sampling

数字滤波器处理的是已经采样好的离散序列 ,发生在 A/D 转换之后。但在 A/D 之前,信号还是连续时间的,往往要先经过一个模拟滤波器(由电阻、电容、运算放大器等搭成)。

它最关键的作用是抗混叠(anti-aliasing)。给定采样率 ,ADC 只能正确表示频率低于 Nyquist 频率 的成分。如果输入里含有高于 的频率,采样后它们会折叠 频段,和真实信号叠在一起,无法分离、也无法事后纠正。

所以采样前必须用一个模拟低通(抗混叠滤波器)先把 以上的成分滤掉。这一步只能交给模拟滤波器:一旦采样完成,混叠已经发生,再强的数字滤波器也救不回来。对称地,D/A 之后通常还有一个模拟低通(重建 / 抗镜像滤波器),用来平滑阶梯状输出里的高频镜像。

下面用一个例子直观看危害:采样率 (Nyquist ),想采集的信号是 ,但输入里混有 的干扰(高于 Nyquist)。

无抗混叠:直接采样含 90 Hz 的信号
有抗混叠:先用模拟低通滤掉 90 Hz 再采样

本课程主要关心数字滤波器:即对采样后的序列 做处理。模拟滤波器只出现在 A/D 前、D/A 后这两个"边界"上,它的电路设计不在本章展开。

Digital filters act on the sampled sequence after A/D. Before A/D, an analog anti-aliasing low-pass must remove everything above the Nyquist frequency f_s/2, because aliasing is irreversible once sampling has happened. This course focuses on digital filters; analog filters appear only at the A/D and D/A boundaries.

A digital filter is a discrete-time LTI system. Its most common job is frequency selection: keep some frequency components, suppress others. Build a 3-tone test signal below, then pick a filter and watch what survives. The same goal can be met three ways: an ideal brick wall (the dream), an IIR filter (feedback), or an FIR filter (feedforward), which preview §9.2 and §9.4.
数字滤波器就是离散时间 LTI 系统,最常见的任务是频率选择。先在下方造一个三频测试信号, 再选一种滤波器看效果。采样率固定 , 记录长度 (1 秒)。

Signal 信号
1.00
0.60
1.20
50
100
200
Time domain 时域
Spectrum 频谱 (红 = |X|,蓝 = |Y|,灰虚线 = 滤波器 |H|,橙色竖线 = 目标截止·可拖动,淡灰阴影 = 实际滤除量·随 |H| 衰减)
0.60
0.60

Type 类型
Class 实现类
Presets:
一句话:滤波器设计的产物就是一组系数。 IIR 给出反馈 + 前馈两组系数 ; FIR 只给前馈一组 (即 本身,分母恒为 1); 在因果、实时系统的前提下,理想滤波器是无法实现的目标,IIR 和 FIR 就是逼近它的两条路。
Think About It 想一想
Q1: 切到"混合出现"和"依次出现",频谱的三根峰为什么粗细不一样?Why do the spectral peaks look sharper in mixed mode than in sequential mode?

混合模式下每个频率成分占满整整 1 秒,频率分辨率最高,每根峰几乎落在单个频点上(频率都取整数 Hz,正好对齐 DFT 频格,没有泄漏)。

依次模式下每个频率只持续 0.2 秒,等效观测时长变短。根据时频不确定性,时间越短,频谱越宽,所以每根峰被展宽成一个有旁瓣的"小山包"。两种模式峰的中心位置相同,差别在宽度

想亲手玩"观测时长 ↔ 分辨率",到 §5.4 DFT 谱分析演示 拉"观测时长"滑块:时间一短,两根挨近的峰就并成一个,补零也救不回。

A tone lasting 1 s gives a razor-thin line; the same tone lasting 0.2 s is broadened by the time-frequency uncertainty principle. Same center, different width. Play with it in the §5.4 spectral-analysis demo.

Q2: 在"依次出现"模式下,为什么 FIR 滤波后的蓝色脉冲会整体向右平移?In sequential mode, why does the FIR-filtered burst shift to the right?

这就是群延迟(group delay)。FIR 是因果系统,对称的 (长度 )必然带来 个样本的延迟,即 秒。因为是线性相位,所有频率延迟相同,所以脉冲整体平移、形状不变。

对比:理想滤波器零相位,蓝线和红线对齐;IIR 相位非线性,不同频率延迟不同,脉冲不仅平移还会变形。全通的 FIR 退化为纯延迟,可以直接看到这 0.05 秒的平移。

Causal linear-phase FIR delays every frequency by M=50 samples (0.05 s), so the burst shifts rigidly. Ideal = zero phase (aligned); IIR = nonlinear phase (shift + distortion).

Q3: 理想砖墙最干净,为什么不直接用?离线处理能造出真正的理想滤波器吗?The ideal brick wall is cleanest. If I process offline (non-causal), can I build a true one?

理想滤波器的冲激响应 是一个 ,它无限长非因果(在 也有值)。所以严格说,理想砖墙无法用因果、实时的系统实现(Paley-Wiener 定理:因果系统的幅频响应不能在一整段频率上恒为 0)。

离线呢?拿到整段信号后,因果性不再是障碍:可以做零相位、极陡的滤波,远超实时能力。但有限长度这个根本限制还在。理想 sinc 无限长,数据有限就得截断,于是出现过渡带和 Gibbs 振铃。本页"理想"档其实就是离线实现的(把 DFT 高频 bin 置零再 IFFT):在"混合出现"模式下信号正好落在整数 Hz 频格上,看着很干净;切到"依次出现"模式,被保留脉冲的边缘就会冒出振铃,这正是截断无限 sinc 的代价。

结论:离线 ≠ 能造出真正的砖墙。能逼近得很好,但拿不到数学意义上的理想。所以工程上仍用有限阶 IIR / FIR 去逼近,方法就是 §9.2 之后的全部内容。

21
时域:理想 sinc 无限长,截断只能留下中间 L 个抽头
频域:保留越多越接近砖墙,但有限长永远做不到

A true brick wall is impossible for any causal real-time system (infinite, non-causal sinc; Paley-Wiener). Offline you drop causality and can get zero-phase, very sharp filters, but finite data length still forces truncation of the infinite sinc, giving a transition band and Gibbs ringing. Offline ≠ a real brick wall; IIR/FIR still approximate it.

Q4: 上面“Ideal 理想”滤波器是用频率置零法(频率采样)近似实现的,它有没有等价的时域 The ideal filter above is approximately realized by zeroing DFT bins (frequency sampling). Does it have an equivalent time-domain h[n]?

有。在频域乘一个 0/1 掩膜 ,按卷积定理就等价于在时域做循环卷积 ,其中那条 就是掩膜的逆 DFT:。所以“Ideal 理想”滤波器虽然在频域就是直接把 bin 抹掉,但背后依然对应着一条真实的时域

为什么说“近似”?掩膜只在 个 DFT 频格上严格等于 0 或 1;频格之间(等价连续频响 ,也就是 Dirichlet 核的 DTFT)仍有起伏,过渡带宽约一个 bin。这就是教科书里的频率采样法

以低通为例(通过 ), 是标准的 Dirichlet 核(周期 sinc)

它是实序列偶对称(因此零相位)、长度为 N、非因果,中心值 。代入本页参数(,1 Hz/bin),低通 75 Hz 放行 151 个 bin,得

这条 Dirichlet 核,是把理想无限 周期化叠加得到的 ,当 时它就趋于上方 Q3 的那条 sinc。于是“Ideal 理想”滤波器相当于保留全部 N 个抽头),Q3 则只取中间 个;Q3 之所以有 Gibbs 振铃,正是这一刀截短的代价。

两点提醒:其一,这是循环卷积而非线性卷积,边界有环绕,所以无法直接搬到因果、实时系统;其二,代码只重建到 ,因此“高通”其实是带限掩膜,其 是两个 Dirichlet 核之差。

取小一些,N 个频率采样点、以及它们之间的起伏就都看得清了。拖动下面两个滑块,对照频域的"置零"和时域的 Dirichlet 核:

32
0.25
频域:N 个频率采样(掩膜 0/1)与等价连续频响,蓝线精确穿过每个采样点,点之间起伏
时域:等价 就是 Dirichlet 核,长度为 N、关于中心对称、零相位

Yes. Zeroing DFT bins equals circular convolution with h[n] = IDFT(mask). For an ideal low-pass it is the length-N Dirichlet kernel (periodic sinc) h[n] = (1/N)·sin(π(2Kc+1)n/N)/sin(πn/N): real, zero-phase, non-causal, full length N. It is the periodic version of Q3's infinite sinc, so the ideal setting keeps all N taps while Q3 keeps L≪N. Caveat: it is circular (not linear) convolution, so it cannot run in real time.

Q5: 同一类型下,IIR 和 FIR 的灰色 曲线形状不同,差别从哪来?Same type, but IIR and FIR |H| look different. Where does that come from?
  • IIR:分母 带来极点(反馈),用很低的阶数就能换到陡峭的滚降,代价是相位非线性、可能不稳定。本页可选 2 到 8 阶 Butterworth,高阶用多个二阶节(SOS)级联实现,设计框里每节的 就是反馈系数。
  • FIR:分母恒为 1,只有零点(前馈),靠加长 来变陡,所以过渡带较宽、还带纹波(截断 sinc 的结果);好处是天然线性相位、永远稳定。

这就是为什么后面要分两章:§9.2 IIR 设计(借模拟原型 + 双线性变换)和 §9.4 FIR 设计(窗函数法)。

IIR uses poles (feedback) for a sharp knee at low order but nonlinear phase; FIR uses only zeros (feedforward), needs length for sharpness, gets ripple, but is linear-phase and always stable.