⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议。
Skip to content

扩展:线性系统理论

在线 Notebook

对应的交互式版本可在 Google Colab 打开,统一使用方式见 第0章说明

难度: 高级
前置知识: 线性代数、微积分、信号处理基础(第1章)


为什么需要理解线性系统

在信号处理和控制中:

  • 系统稳定性决定了滤波器是否可用
  • 频率响应决定了系统对不同频率的处理
  • 状态空间表示是现代控制理论的基础
  • RNN 和 LSTM 可以看作非线性动态系统

线性时不变系统(LTI)

定义

线性系统:满足叠加原理

T(ax1(t)+bx2(t))=aT(x1(t))+bT(x2(t))

时不变系统:系统特性不随时间变化

y(tτ)=T(x(tτ))

系统的表示

差分方程(离散时间):

y[n]=k=0Mbkx[nk]k=1Naky[nk]

微分方程(连续时间):

k=0Nakdky(t)dtk=k=0Mbkdkx(t)dtk

冲激响应和卷积

冲激响应

定义:系统对单位冲激的响应

h[n]=T(δ[n])

其中 δ[n] 是 Kronecker delta 函数。

系统的输出

对于 LTI 系统,任意输入的输出可以表示为:

y[n]=k=x[k]h[nk]=x[n]h[n]

直观理解:输出是输入与冲激响应的卷积。

因果性

因果系统:输出只依赖于当前和过去的输入

h[n]=0,n<0

频率响应

频率响应函数

定义:系统对复指数输入 ejωn 的响应

H(ejω)=n=h[n]ejωn

性质:

  • 幅度响应:|H(ejω)|
  • 相位响应:H(ejω)

频率响应与冲激响应的关系

H(ejω)=DTFT(h[n])

应用:通过频率响应设计滤波器。


系统稳定性

BIBO 稳定性

定义:有界输入产生有界输出

|x[n]|<|y[n]|<

稳定性条件

充要条件:冲激响应绝对可和

n=|h[n]|<

极点和零点

传递函数:

H(z)=B(z)A(z)=k=0Mbkzk1+k=1Nakzk

稳定性条件:所有极点在单位圆内

|pi|<1

状态空间表示

状态空间模型

离散时间:

x[n+1]=Ax[n]+Bu[n]y[n]=Cx[n]+Du[n]

连续时间:

x˙(t)=Ax(t)+Bu(t)y(t)=Cx(t)+Du(t)

其中:

  • x:状态向量
  • u:输入向量
  • y:输出向量
  • A,B,C,D:系统矩阵

从差分方程到状态空间

例子y[n]=0.5y[n1]+x[n]

状态空间表示:

x[n+1]=[0.5]x[n]+[1]u[n]y[n]=[1]x[n]

传递函数与状态空间的关系

H(z)=C(zIA)1B+D

系统的可控性和可观测性

可控性

定义:能否通过输入将系统从任意初始状态转移到任意目标状态。

可控性矩阵:

C=[B,AB,A2B,,An1B]

条件rank(C)=n(状态维数)

可观测性

定义:能否从输出推断出系统的初始状态。

可观测性矩阵:

O=[CCACA2CAn1]

条件rank(O)=n


系统的特征值和稳定性

特征值与稳定性

离散时间系统稳定当且仅当:

|λi|<1,i

其中 λiA 的特征值。

连续时间系统稳定当且仅当:

Re(λi)<0,i

特征值与系统响应

特征值决定了系统的动态特性:

  • 实特征值:指数衰减或增长
  • 复特征值对:振荡衰减或增长

从线性系统到反馈控制

线性系统理论不仅用于分析信号和滤波器,也可以作为理解反馈控制的入口。本节只保留和后续 LLM 系统设计有关的直觉,不展开完整控制论课程。控制系统关心的不只是“输入经过系统后输出什么”,还关心“能否根据输出误差调整输入,让系统接近目标状态”。

开环与闭环

开环系统只按预设输入运行,不根据输出结果修正行为:

text
目标 → 控制器 → 系统 → 输出

闭环系统会把输出反馈回来,与目标比较后继续调整:

text
目标 → 控制器 → 系统 → 输出
 ↑                    ↓
 └────── 误差反馈 ←────┘

闭环控制的核心是误差:

e[n]=r[n]y[n]

其中 r[n] 是目标,y[n] 是输出,e[n] 是当前偏差。控制器根据误差产生控制输入:

u[n]=K(e[n])

最简单的比例控制可以写成:

u[n]=kpe[n]

比例增益 kp 太小,系统响应慢;太大,系统可能振荡甚至不稳定。这就是为什么稳定性分析是控制系统的核心。

反馈的价值和代价

反馈的价值:

  • 能修正扰动和模型误差
  • 能适应环境变化
  • 能把目标、观测和行动连接成闭环

反馈的代价:

  • 会引入延迟
  • 可能放大噪声
  • 控制增益不合适时会造成震荡
  • 系统必须满足稳定性和可观测性要求

与 Agent 的连接

第 6 章 Agent 的 ReAct 模式可以看作一种离散反馈闭环:

text
Observe → Reason → Act → Observe → ...

它和传统控制系统不是同一个数学对象,但共享同一个工程思想:系统不能只生成一次动作,还要根据反馈修正后续行动。区别在于,Agent 的反馈来自工具调用、外部 API 或用户环境,噪声更大,延迟更高,错误也更难形式化建模。

因此,反馈控制在本教程中的作用不是替代 LLM 应用设计,而是提供一个辅助判断框架:只要系统会根据外部反馈持续调整行为,就需要考虑稳定性、延迟、噪声、可观测性和失败回退。


滤波器设计

IIR 滤波器

无限脉冲响应:冲激响应无限长

优势:

  • 用较少的系数实现陡峭的频率响应
  • 计算量小

劣势:

  • 可能不稳定
  • 相位响应非线性

FIR 滤波器

有限脉冲响应:冲激响应有限长

优势:

  • 总是稳定的
  • 可以设计线性相位

劣势:

  • 需要更多系数
  • 计算量大

滤波器设计方法

  1. 模拟滤波器设计(Butterworth、Chebyshev)
  2. 双线性变换:将模拟滤波器转换为数字滤波器
  3. 窗函数法:设计 FIR 滤波器
  4. 最优设计:Remez 算法

系统识别

参数估计

问题:给定输入输出数据,估计系统参数。

最小二乘法:

θ^=argminθn=1N(y[n]y^[n|θ])2

递归最小二乘(RLS)

优势:

  • 在线学习
  • 适应时变系统

算法:

θ^[n]=θ^[n1]+K[n](y[n]y^[n])

其中 K[n] 是 Kalman 增益。


与深度学习的连接

RNN 作为动态系统

RNN 的隐状态更新:

h[n]=σ(Whh[n1]+Wxx[n])

类似于非线性状态空间模型:

x[n+1]=f(Ax[n]+Bu[n])

LSTM 和门控机制

遗忘门、输入门、输出门可以看作系统的可控性和可观测性机制。

梯度消失问题

根本原因:RNN 的特征值小于 1,导致梯度指数衰减。

解决方案

  • 残差连接(类似于系统的稳定性)
  • 门控机制(类似于系统的可控性)

实践建议

系统分析步骤

  1. 获取系统模型:差分方程或状态空间
  2. 计算冲激响应:理解系统的时域特性
  3. 计算频率响应:理解系统的频域特性
  4. 检查稳定性:极点位置或特征值
  5. 设计控制器(如需要),并检查反馈是否稳定

Python 实现

python
import numpy as np
from scipy import signal

# 定义系统:H(z) = 1 / (1 - 0.5*z^-1)
b = [1]
a = [1, -0.5]

# 计算冲激响应
h = signal.impulse((b, a, 1))[1]

# 计算频率响应
w, H = signal.freqz(b, a)

# 检查稳定性
poles = np.roots(a)
print(f"极点:{poles}")
print(f"稳定:{np.all(np.abs(poles) < 1)}")

关键要点

  1. LTI 系统可以用冲激响应或频率响应完全描述
  2. 稳定性由极点位置决定
  3. 状态空间表示是现代控制理论的基础
  4. 可控性和可观测性决定了系统的可设计性
  5. 反馈控制把目标、观测和行动连接成闭环,但必须考虑稳定性、延迟和噪声
  6. RNN 可以看作非线性动态系统

进一步阅读

  • Oppenheim & Schafer, "Discrete-Time Signal Processing"
  • Kailath, "Linear Systems"
  • Ljung, "System Identification: Theory for the User"

本教程采用 CC BY-NC-SA 4.0 许可协议