目录
RC 低通滤波器电路
最常见的一阶低通滤波器是 RC 电路,如下所示:
Vin ────[ R ]────┬──── Vout
│
=== C
│
GND
一阶线性微分方程推导
根据电路的基尔霍夫定律(KCL)和电容的电压-电流关系:
- 电容电流: i C = C ⋅ d V out d t i_C = C \cdot \frac{dV_{\text{out}}}{dt} iC=C⋅dtdVout
- 电阻电流: i R = V in − V out R i_R = \frac{V_{\text{in}} - V_{\text{out}}}{R} iR=RVin−Vout
因为串联, i C = i R i_C = i_R iC=iR,所以:
C ⋅ d V out d t = V in − V out R C \cdot \frac{dV_{\text{out}}}{dt} = \frac{V_{\text{in}} - V_{\text{out}}}{R} C⋅dtdVout=RVin−Vout
- 整理为标准一阶微分方程y’+p(x)y=q(x)形式:
d V out d t + 1 R C V out = 1 R C V in \frac{dV_{\text{out}}}{dt} + \frac{1}{RC} V_{\text{out}} = \frac{1}{RC} V_{\text{in}} dtdVout+RC1Vout=RC1Vin
- 记 τ = R C \tau = RC τ=RC,即:
τ ⋅ d y ( t ) d t + y ( t ) = x ( t ) \tau \cdot \frac{dy(t)}{dt} + y(t) = x(t) τ⋅dtdy(t)+y(t)=x(t)
其中:
- y ( t ) = V out y(t) = V_{\text{out}} y(t)=Vout:滤波器输出;
- x ( t ) = V in x(t) = V_{\text{in}} x(t)=Vin:滤波器输入;
- τ = R C \tau = RC τ=RC:时间常数,单位为秒,𝜏表示系统响应变化的快慢程度。
- 注:对于一阶系统(例如 RC 电路、热传导、液位控制、机械阻尼、速度响应等),系统对一个阶跃输入信号(如电压从 0 变为 1V)的响应,在经过时间 𝜏 后,输出达到最终稳态值的约 63.2%。表示系统输出 y ( t ) y(t) y(t) 跟随输入 x ( t ) x(t) x(t),但有惯性,不能瞬间响应。 τ \tau τ 越小 → 响应快, τ \tau τ 越大 → 响应慢,更平滑。
拉普拉斯域表达(传递函数)
τ ⋅ d y ( t ) d t + y ( t ) = x ( t ) \tau \cdot \frac{dy(t)}{dt} + y(t) = x(t) τ⋅dtdy(t)+y(t)=x(t)
- 对其两边做拉普拉斯变换,假设 初始值为零(零初始条件),即 y ( 0 ) = 0 y(0) = 0 y(0)=0,得到:
τ ⋅ L { d y ( t ) d t } + L { y ( t ) } = L { x ( t ) } \tau \cdot \mathcal{L} \left\{ \frac{dy(t)}{dt} \right\} + \mathcal{L}\{y(t)\} = \mathcal{L}\{x(t)\} τ⋅L{dtdy(t)}+L{y(t)}=L{x(t)}
- 利用 一阶导数的拉普拉斯变换 公式:
τ ( s Y ( s ) − y ( 0 ) ) + Y ( s ) = X ( s ) \tau (sY(s) - y(0)) + Y(s) = X(s) τ(sY(s)−y(0))+Y(s)=X(s)
- 假设 y ( 0 ) = 0 y(0) = 0 y(0)=0 :
τ s Y ( s ) + Y ( s ) = X ( s ) \tau s Y(s) + Y(s) = X(s) τsY(s)+Y(s)=X(s)
- 提取 Y ( s ) Y(s) Y(s):
Y ( s ) ( τ s + 1 ) = X ( s ) Y(s)(\tau s + 1) = X(s) Y(s)(τs+1)=X(s)
传递函数 H ( s ) H(s) H(s)
H ( s ) = Y ( s ) X ( s ) = 1 τ s + 1 \boxed{H(s) = \frac{Y(s)}{X(s)} = \frac{1}{\tau s + 1}} H(s)=X(s)Y(s)=τs+11
- 或者换成 RC 表达:
H ( s ) = 1 R C s + 1 \boxed{H(s) = \frac{1}{RC s + 1}} H(s)=RCs+11
频率响应(令 s = j ω s = j\omega s=jω)
- 代入 s = j ω s = j\omega s=jω 就描述了系统对频率为 ω \omega ω 的正弦输入的稳态响应
H ( j ω ) = 1 1 + j ω τ H(j\omega) = \frac{1}{1 + j\omega \tau} H(jω)=1+jωτ1
幅频特性:
∣ H ( j ω ) ∣ = 1 1 + ( ω τ ) 2 |H(j\omega)| = \frac{1}{\sqrt{1 + (\omega \tau)^2}} ∣H(jω)∣=1+(ωτ)21
相位特性:
arg H ( j ω ) = − tan − 1 ( ω τ ) \arg H(j\omega) = -\tan^{-1}(\omega \tau) argH(jω)=−tan−1(ωτ)
Bode 图(线性系统频率响应)
注:在电路笔记(信号):数字滤波电路的拉普拉斯变换与零极点分析(增益=零点距/极点距,相位=零点角-极点角)的用零极点图分析电路中提供了一个RC高通的Bode图估计示例。
注:绘制代码如下
import numpy as np
import matplotlib.pyplot as plt
# 参数设置
tau = 0.05 # 时间常数 (s)
w = np.logspace(0, 4, 500) # 频率向量 (rad/s)
mag = 20 * np.log10(1 / np.sqrt(1 + (w * tau)**2)) # 幅度响应
phase = -np.degrees(np.arctan(w * tau)) # 相位响应
# 截止频率
wc = 1 / tau
fc = wc / (2 * np.pi)
# 绘图
plt.figure(figsize=(10, 6))
# 幅度图
plt.subplot(2, 1, 1)
plt.semilogx(w, mag)
plt.axvline(wc, color='red', linestyle='--', label=f'Cutoff @ {fc:.1f} Hz')
plt.title('Bode Plot of 1st-Order Low-Pass Filter')
plt.ylabel('Magnitude (dB)')
plt.grid(True, which='both')
plt.legend()
# 相位图
plt.subplot(2, 1, 2)
plt.semilogx(w, phase)
plt.axvline(wc, color='red', linestyle='--')
plt.xlabel('Frequency (rad/s)')
plt.ylabel('Phase (degrees)')
plt.grid(True, which='both')
plt.tight_layout()
plt.show()