传感器信号进了放大电路,下一步就该处理噪声和干扰了——这就轮到滤波器。这篇讲最简单也最常用的一阶 RC 滤波:低通(滤高频噪声)和高通(滤直流偏置),以及核心公式截止频率 fc = 1/(2πRC)。
文中的频率响应用 Python 数值仿真验证(7 项 PASS),不是纸面推导。
一、为什么需要滤波
上篇《运算放大器入门》讲到 ADC 前置 = 放大 + 缓冲。但真实世界还有两个麻烦:
- 高频噪声:电源纹波、电磁干扰、电机火花——叠加在信号上,ADC 采样后变成乱跳的数据
- 直流偏置:传感器输出可能带一个稳定的直流分量(比如 1.65V 中点电压),我们只关心交流变化部分
滤波器就是"频率的选择器":让想要的频率通过,把不想要的滤掉。最简单的实现,一个电阻 + 一个电容就够了。
二、RC 低通:滤高频噪声
低通电路:R 串联、C 并联到地。电容的频率特性是关键——频率越高,容抗越小:
- 低频时:电容容抗很大(几乎开路),信号从 R 流过正常输出
- 高频时:电容容抗很小(几乎短路),高频被旁路到地,输出几乎为零
三、RC 高通:滤直流偏置
高通电路:C 串联、R 并联到地。反过来:
- 低频/直流时:电容容抗极大(断路),直流被挡住
- 高频时:电容容抗极小(短路),信号从 C 流过正常输出
常用场景:音频信号隔直(去直流偏置)、心电/肌电信号去掉皮肤接触的直流漂移。
四、核心公式:截止频率
两个电路共用一个公式——截止频率:
fc = 1 / (2πRC)- fc 处增益 = −3.01 dB(信号衰减到 0.707 倍)
- 高于/低于 fc:按 −20 dB/十倍频程 滚降(一阶滤波器的特征)
- 选 R、C 就是选 fc:R=1kΩ、C=100nF → fc ≈ 1591 Hz
直觉理解:fc 是"信号的转折点"。低通里,低于 fc 的信号基本无损通过,高于 fc 的按 -20dB/十倍频程衰减;高通相反。
五、仿真验证(Python 实跑)
用复数传递函数直接计算频率响应(低通 H = 1/(1+jωRC),高通 H = jωRC/(1+jωRC)):
python
import cmath, math
def rc_lowpass(f, R, C):
w = 2 * math.pi * f
return 1 / (1 + 1j * w * R * C) # 低通传递函数
def rc_highpass(f, R, C):
w = 2 * math.pi * f
return (1j * w * R * C) / (1 + 1j * w * R * C) # 高通传递函数
def db(h):
return 20 * math.log10(abs(h))
R, C = 1e3, 100e-9
fc = 1 / (2 * math.pi * R * C) # ≈ 1591.5 Hz实跑结果(7 PASS 0 FAIL):
PASS 低通 @fc 增益: -3.010 dB(理论 -3.010)
PASS 高通 @fc 增益: -3.010 dB
PASS 低通 @0.1fc: -0.043 dB(基本全通)
PASS 低通 @10fc: -20.043 dB(十倍频程衰减)
PASS 高通 @0.1fc: -20.043 dB
PASS 高通 @10fc: -0.043 dB
PASS 低通 @DC: 0.000 dB(直流通过)
高通 @接近DC: -144.0 dB(直流被阻断)再看实际滤噪效果(R=1kΩ、C=100nF):
低通 @ 50Hz(工频): -0.00 dB 通过
低通 @1000Hz(信号): -1.45 dB 基本通过
低通 @10000Hz(噪声): -16.07 dB 大幅衰减一个 1k + 100nF 的低通,就能把 10kHz 噪声压掉 16dB,50Hz 工频完全不受影响——这就是 ADC 前置抗混叠滤波的雏形。
六、ADC 前置:放大 + 滤波 + 缓冲
完整链路(衔接运放篇):
传感器(mV 级) → 同相放大(×10~×100) → RC 低通(滤噪声) → 电压跟随器(缓冲) → ADC- 同相放大器:把小信号放大到 ADC 满量程
- RC 低通:截止频率选在"有用信号最高频"和"采样频率"之间(奈奎斯特:fc < fs/2),滤掉高频噪声和混叠成分
- 电压跟随器:隔离 ADC 采样电容对 RC 滤波器的"拖累"(电容放电会拉低滤波输出)
小结
- RC 一阶滤波:一个 R + 一个 C,就能低通或高通
- fc = 1/(2πRC) 是选型的唯一公式:fc 处 -3dB,之后 -20dB/十倍频程
- 低通滤高频噪声(ADC 前置抗混叠),高通滤直流偏置(音频隔直)
- Python 仿真 7 PASS 验证:fc 处 -3.01dB、十倍频程滚降、高通阻断直流
- 完整 ADC 前置 = 放大 → RC 低通 → 缓冲 → ADC
滤波器再往上:二阶/高阶(更陡的滚降)、有源滤波(运放 + RC)、带通/带阻——都是在这个基础上叠加。硬件链路往下走就是《数字电路》(滤波后干净的模拟信号,下一步要变成 0/1)和《嵌入式》(STM32 的 ADC 采样)。
