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

1.8 矩阵分解应用

核心问题: 如何用矩阵分解方法解决信号处理问题?

在线 Notebook

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


矩阵分解基础

奇异值分解(Singular Value Decomposition, SVD)

定义: 任何矩阵都可以分解为三个矩阵的乘积。

A=UΣVH

其中:

  • Um×m 酉矩阵(左奇异向量)
  • Σm×n 对角矩阵(奇异值)
  • VHn×n 酉矩阵的共轭转置(右奇异向量)

奇异值: σ1σ2σr>0

秩: rank(A)=r(非零奇异值的个数)

特征值分解(Eigenvalue Decomposition, EVD)

定义: 对于方阵 A,存在特征向量和特征值。

A=QΛQ1

其中:

  • Q:特征向量矩阵
  • Λ:特征值对角矩阵

对于Hermitian矩阵: A=AH

A=QΛQH

其中 Q 是酉矩阵。

QR分解

定义: 矩阵分解为正交矩阵和上三角矩阵的乘积。

A=QR

其中:

  • Qm×n 正交矩阵
  • Rn×n 上三角矩阵

应用: 数值稳定的最小二乘求解。


信号处理中的矩阵表示

数据矩阵

问题: 如何用矩阵表示信号?

方法1:向量表示

x=[x[0],x[1],,x[N1]]T

方法2:Hankel矩阵

H=[x[0]x[1]x[M1]x[1]x[2]x[M]x[NM]x[NM+1]x[N1]]

用途: 将一维信号转换为二维矩阵,便于矩阵分解。

协方差矩阵

定义: 信号的二阶统计特性。

R=E[xxH]

样本协方差矩阵:

R^=1Nn=0N1x[n]xH[n]

性质:

  • Hermitian矩阵:R=RH
  • 半正定:所有特征值 0
  • 特征值反映信号的功率分布

子空间方法

信号子空间和噪声子空间

问题: 给定观测 y=s+w,如何分离信号和噪声?

方法: 对协方差矩阵进行EVD。

R=QsΛsQsH+QwΛwQwH

其中:

  • Qs:信号子空间(对应大特征值)
  • Qw:噪声子空间(对应小特征值)

关键性质: 信号子空间和噪声子空间正交。

QsHQw=0

MUSIC算法(Multiple Signal Classification)

问题: 估计多个信号的频率。

观测模型:

y[n]=k=1KAkej2πfkn+w[n]

MUSIC算法步骤:

  1. 构造数据矩阵

    X=[x[0],x[1],,x[NM]]

    其中 x[n]=[y[n],y[n+1],,y[n+M1]]T

  2. 计算协方差矩阵

    R=1NM+1XXH
  3. EVD分解

    R=QsΛsQsH+QwΛwQwH
  4. MUSIC谱

    PMUSIC(f)=1QwHa(f)2

    其中 a(f)=[1,ej2πf,,ej2πf(M1)]T 是导向向量

  5. 峰值检测 找到 PMUSIC(f)K 个最大峰值

优点:

  • 高分辨率:能分离接近的频率
  • 在模型匹配和高SNR等条件下,性能可接近CRB

Matrix Decomposition

代码文件: code/ch01_dsp/music_algorithm.py
运行方式: python code/ch01_dsp/music_algorithm.py

图1.9:矩阵分解在信号子空间分析中的示意。通过分解协方差矩阵,可以把主要信号结构与噪声成分区分开。

缺点:

  • 需要知道信号个数 K
  • 计算复杂度较高

ESPRIT算法(Estimation of Signal Parameters via Rotational Invariance Techniques)

思想: 利用信号的旋转不变性。

优点:

  • 不需要知道导向向量
  • 计算复杂度低
  • 性能好

应用: 频率估计、到达角估计


主成分分析(Principal Component Analysis, PCA)

原理

问题: 如何从高维数据中提取主要特征?

方法: 找到方差最大的方向。

步骤:

  1. 中心化数据

    Xc=XX¯
  2. 计算协方差矩阵

    C=1NXcTXc
  3. EVD分解

    C=QΛQT
  4. 选择主成分 选择特征值最大的 K 个特征向量

  5. 降维

    Y=XcQ[:,1:K]

在信号处理中的应用

1. 信号去噪

思想: 信号集中在少数几个主成分,噪声分散在所有主成分。

方法:

  • 对信号进行PCA
  • 保留主要的主成分
  • 丢弃小的主成分(主要是噪声)
  • 重构信号

2. 特征提取

应用: 从复杂信号中提取关键特征。

例子:

  • 语音识别:从语谱图提取主要特征
  • 人脸识别:从人脸图像提取特征脸(eigenfaces)
  • 心电图分析:提取心跳的主要特征

在深度学习出现之前,PCA、SVD 以及基于滤波器组的手工特征(如 MFCC、HOG、SIFT)是信号与图像处理的主流特征提取方式。它们的核心思想是:用少数几个方向或基函数来紧凑地表示信号的主要结构,同时丢弃噪声和冗余。理解这些方法有助于理解为什么后续章节中的表示学习如此有效,详见 第3章深度学习基础

Feature Extraction Comparison

图1.8b:传统特征提取与深度学习特征的对比。上行:PCA 主成分,通过统计方差最大化方向手工提取;中行:CNN 学到的 Gabor 类滤波器,通过任务驱动自动优化;下行:PCA 各主成分解释的方差比例,少数主成分即可覆盖大部分信息。

代码文件: code/ch01_dsp/feature_extraction_comparison.py
运行方式: python code/ch01_dsp/feature_extraction_comparison.py

3. 数据压缩

思想: 用少数主成分表示原始数据。

压缩率:

压缩率=KD×100%

其中 K 是保留的主成分数,D 是原始维数。


低秩近似和去噪

低秩近似

问题: 用低秩矩阵近似原始矩阵。

方法: 使用SVD的截断版本。

Ar=i=1rσiuiviH

其中 r<rank(A)

性质:

  • 最小化Frobenius范数误差
  • 保留最重要的信息

信号去噪

观测模型:

Y=S+W

其中 S 是低秩信号,W 是噪声。

去噪方法:

  1. SVD分解

    Y=UΣVH
  2. 阈值处理

    σ^i={σiif σi>τ0otherwise
  3. 重构

    S^=UΣ^VH

优点:

  • 简单有效
  • 保留信号结构

实际应用

1. 频率估计

应用MUSIC算法:

  • 高分辨率频率估计
  • 多信号分离
  • 在模型匹配和高SNR等条件下,性能可接近CRB

Matrix Decomposition Performance

代码文件: code/ch01_dsp/music_algorithm.py
运行方式: python code/ch01_dsp/music_algorithm.py

图1.10:矩阵分解方法的性能对比示意。子空间方法通常在分辨率和抗噪声能力上优于简单谱估计。

例子: 功率系统中的谐波检测

2. 到达角估计(Direction of Arrival, DOA)

问题: 用阵列天线估计信号的到达方向。

方法:

  • MUSIC:高分辨率
  • ESPRIT:低复杂度
  • 子空间方法

应用: 雷达、声纳、无线通信

3. 信号去噪

应用PCA或SVD:

  • 去除背景噪声
  • 保留信号特征
  • 改进信噪比

例子:

  • 医学图像去噪
  • 地震数据处理
  • 语音增强

4. 数据压缩

应用PCA:

  • 降低存储空间
  • 加快处理速度
  • 保留关键信息

例子:

  • 图像压缩
  • 视频压缩
  • 传感器数据压缩

5. 故障诊断

应用子空间方法:

  • 检测异常
  • 识别故障类型
  • 预测故障

例子:

  • 轴承故障诊断
  • 电机故障检测
  • 结构健康监测

本节小结

矩阵分解是信号处理的强大工具:

  • 基本分解:SVD、EVD、QR分解
  • 子空间方法:MUSIC、ESPRIT
  • 特征提取:PCA
  • 去噪和压缩:低秩近似
  • 实际应用:频率估计、DOA估计、去噪、压缩、故障诊断

这些方法在现代信号处理和机器学习中广泛应用。


与后续章节的联系

矩阵分解把高维结构拆成更容易分析的部分,这一思想会在后续章节持续出现:

  1. 低秩近似

    • 对应于压缩表示、去噪和参数效率
  2. PCA / SVD

    • 对应于从数据中提取主方向和主结构
  3. 子空间方法

    • 对应于从多个潜在方向中分离关键信息
  4. QR / 正交化

    • 对应于数值稳定性和特征解耦

这些概念和第 2 章优化、第 3 章表示学习、第 4 章 Transformer 结构都有关联,但这里保留为数学底座即可。


下一章: 第2章:优化与机器学习

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