电路笔记(信号):一阶低通RC滤波器 & 一阶线性微分方程推导 & 拉普拉斯域表达(传递函数、频率响应)分析

发布于:2025-06-20 ⋅ 阅读:(18) ⋅ 点赞:(0)

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=CdtdVout
    • 电阻电流: i R = V in − V out R i_R = \frac{V_{\text{in}} - V_{\text{out}}}{R} iR=RVinVout
  • 因为串联, 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} CdtdVout=RVinVout

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=

  • 代入 s = j ω s = j\omega s= 就描述了系统对频率为 ω \omega ω正弦输入的稳态响应

H ( j ω ) = 1 1 + j ω τ H(j\omega) = \frac{1}{1 + j\omega \tau} H()=1+τ1

幅频特性:

∣ H ( j ω ) ∣ = 1 1 + ( ω τ ) 2 |H(j\omega)| = \frac{1}{\sqrt{1 + (\omega \tau)^2}} H()=1+(ωτ)2 1

相位特性:

arg ⁡ H ( j ω ) = − tan ⁡ − 1 ( ω τ ) \arg H(j\omega) = -\tan^{-1}(\omega \tau) argH()=tan1(ωτ)

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()

网站公告

今日签到

点亮在社区的每一天
去签到