1. 从电路到代码:RC滤波的本质理解
第一次在示波器上看到RC电路对信号的影响时,那种直观感受至今难忘——原本清晰的方波通过电阻电容后,尖锐的边角变得圆润,高频分量像被一只无形的手抚平。这种看似简单的物理现象,正是数字信号处理中滤波算法的灵感来源。
RC滤波器的核心在于电阻(R)和电容(C)的协同作用。当信号通过串联的电阻时,电容会根据信号频率表现出不同的"性格":对高频信号它是低阻抗的短路路径,对低频信号则变成高阻抗的断路状态。这种频率选择性造就了两种基本滤波形态:
- 低通滤波:电容并联在输出端(图1a),高频成分被分流到地,只允许低频通过
- 高通滤波:电容串联在信号路径中(图1b),阻断直流和低频,只放过高频
实际应用中常遇到一个误区:认为RC滤波只适用于模拟电路。其实在数字域,我们通过差分方程可以完美复现这种特性,这正是软件滤波的实现基础。
2. 一阶RC滤波的数学建模
2.1 连续时间域的微分方程
在模拟电路中,RC低通滤波器的行为可以用微分方程描述:
code复制τ·dy(t)/dt + y(t) = x(t)
其中τ=RC是时间常数,x(t)为输入信号,y(t)为输出信号。这个方程的解揭示了滤波器的核心特性——输出总是"追赶"输入,但存在延迟。
通过拉普拉斯变换,我们得到传递函数:
code复制H(s) = 1 / (τs + 1) // 低通
H(s) = τs / (τs + 1) // 高通
2.2 离散化实现的关键步骤
在数字系统中处理连续信号需要三个关键转换:
-
双线性变换:将s域传递函数转换为z域
code复制s ≈ (2/T)·(1-z⁻¹)/(1+z⁻¹)其中T为采样周期
-
差分方程推导:
低通滤波器的离散形式:code复制y[n] = α·x[n] + (1-α)·y[n-1]其中α = T/(τ + T)
-
稳定性验证:
极点位置在z=1-α处,当0<α<1时系统稳定
3. 参数选择的工程实践
3.1 截止频率的计算艺术
理论截止频率公式简单:
code复制fc = 1/(2πRC)
但实际工程中需要考虑:
