这篇先不要被公式吓住。主线其实只有一条:
SVD/EVD 是在找矩阵背后的“主方向”和“强弱程度”。
特征值算法是在高效地把这些主方向算出来。如果把它放到无线通信里理解,会更直观:信道矩阵经过分解后,我们能看出有几个强空间通道、每个通道有多强、发端怎么预编码、收端怎么合并,以及哪些方向可以用来压制干扰。
一句话总览
EVD:研究方阵自身的特征方向。
SVD:研究任意矩阵的输入方向、输出方向和方向增益。
Lanczos / QR / 幂法:都是为了更高效地求特征值或奇异值。在 MIMO 场景里,可以把它理解成:
信道矩阵 H 经过分解后,可以看出有几个强空间通道、每个通道有多强,以及如何做预编码和接收合并。SVD 是什么
SVD,全称 Singular Value Decomposition,奇异值分解。
对任意矩阵 A,都可以分解为:
A = UΣV^H其中:
U:左奇异矩阵,描述输出空间方向
Σ:奇异值矩阵,描述每个方向上的增益
V:右奇异矩阵,描述输入空间方向
V^H:V 的共轭转置如果是实数矩阵,也可以写成:
A = UΣV^T真正要记住的是这句话:
SVD = 输入方向 V -> 增益 Σ -> 输出方向 USVD 的无线通信直觉
假设信道模型是:
y = Hx + n如果对 H 做 SVD:
H = UΣV^H那么可以这样使用:
发端用 V 做预编码
收端用 U^H 做接收合并经过这样的处理,信道可以被“对角化”为若干条互不干扰的空间子信道:
y' = Σx' + n'这就是 MIMO SVD 的核心价值。
奇异值越大,说明这条空间通道越强。奇异值接近 0,说明这条通道很弱,甚至不可用。
秩 rank 和空间流
如果一个信道矩阵 H 的 rank = 2,说明:
这个信道最多支持 2 条独立空间流。例如一个 4x8 矩阵 rank = 2。如果 A 表示无线信道矩阵,可以理解为:
发射端有 8 维空间
接收端有 4 维空间
rank = 2 表示真正有效的独立传输通道只有 2 条所以它最多适合发 2 流。强行发 3 流、4 流,后面的流也没有有效独立空间支撑,容易互相干扰,吞吐收益也会很差。
U、Σ、V 分别代表什么
对于:
A = UΣV^H可以这样理解:
| 矩阵 | 含义 | 无线直觉 |
|---|---|---|
| V | 输入空间的正交基 | 发端预编码方向 |
| Σ | 每个方向的增益 | 每条空间通道强弱 |
| U | 输出空间的正交基 | 收端接收方向 |
例如:
σ1 = 10
σ2 = 1
σ3 = 0
σ4 = 0这说明:
第 1 条空间通道很强
第 2 条空间通道较弱
第 3、4 条基本不可用Reduced SVD 是什么
完整 SVD 会包含所有空间方向,包括很多无效的零奇异值方向。
如果矩阵 rank = r,只保留非零奇异值对应的部分:
A = U_r Σ_r V_r^H这就是 Reduced SVD。
它的意义是:
只保留真正有用的 r 个信号方向。好处包括:
计算量更小
存储更少
表达更紧凑
可以用于压缩、降噪、低秩近似EVD 是什么
EVD,全称 Eigenvalue Decomposition,特征值分解。
对方阵 A,如果可以对角化,则:
A = XΛX^{-1}其中:
Λ:特征值组成的对角矩阵
X:特征向量组成的矩阵特征向量满足:
Av = λv这句话非常重要。它的意思是:
矩阵 A 作用在某些特殊方向 v 上,只改变长度,不改变方向。这些特殊方向就是特征向量,长度缩放倍数就是特征值 λ。
EVD 的直觉
假设:
Av = 3v说明矩阵 A 作用在方向 v 上时:
方向不变
长度变成 3 倍如果:
Av = 0.5v说明:
方向不变
长度缩小到 0.5 倍如果特征值很大,说明这个方向被矩阵强烈放大。如果特征值接近 0,说明这个方向被矩阵严重压缩。
SVD 和 EVD 的核心区别
| 对比项 | SVD | EVD |
|---|---|---|
| 适用矩阵 | 任意矩阵,包括非方阵 | 主要用于方阵 |
| 分解形式 | A = UΣV^H | A = XΛX^ |
| 方向 | 输入方向和输出方向可以不同 | 同一组特征方向 |
| 数值稳定性 | 通常更稳定 | 对矩阵条件有要求 |
| 奇异值 / 特征值 | 奇异值非负 | 特征值可正、负、复数 |
| 应用 | 低秩近似、MIMO、压缩、最小二乘 | 动态系统、谱分析、对称矩阵分析 |
一句话:
SVD 更通用;EVD 更专注于方阵自身的特征方向。SVD 和 EVD 的联系
SVD 可以通过 EVD 来理解。
对任意矩阵 A:
A^H A是 Hermitian 矩阵。
它的特征值分解可以写成:
A^H A = VΛV^H而奇异值满足:
σ_i = sqrt(λ_i)也就是说:
A 的奇异值 = A^H A 的特征值开平方右奇异向量 V 来自 A^H A 的特征向量。类似地:
AA^H = UΛU^H左奇异向量 U 来自 AA^H 的特征向量。
为什么 Hermitian 矩阵很重要
Hermitian 矩阵满足:
A = A^H实数情况下就是对称矩阵:
A = A^THermitian 矩阵有非常好的性质:
特征值都是实数
不同特征值对应的特征向量正交
可以被酉矩阵对角化也就是:
A = QΛQ^H其中 Q 是酉矩阵。这也是很多算法喜欢把问题转成 Hermitian 矩阵的原因。
特征值和迹、行列式、秩的关系
这些关系需要记住,但不必死背。先理解它们有什么用。
迹 trace
trace(A) = 所有特征值之和也就是:
tr(A) = λ1 + λ2 + ... + λn行列式 determinant
det(A) = 所有特征值之积也就是:
det(A) = λ1 × λ2 × ... × λn秩 rank
非零特征值数量和秩有关。如果 A 是 Hermitian 矩阵,通常可以理解为:
非零特征值个数 = rank(A)如果:
det(A) = 0说明至少有一个特征值为 0,矩阵奇异,不可逆。
应用示例:无线信道矩阵
假设信道矩阵 A 的 rank = 2。
这意味着:
信道只有 2 个有效空间自由度。所以:
最大支持 2 个独立信号流。如果 SVD 得到:
σ1 = 10
σ2 = 1
σ3 = 0
σ4 = 0那么可以理解为:
第 1 流很强
第 2 流较弱
第 3、第 4 流没有有效通道实际 Rank 选择时,就要考虑:
发 1 流:稳,强通道
发 2 流:吞吐可能更高
发 3/4 流:基本没意义这和 Rank 选择、等功率、等 SNR、水填充等问题都能连起来。
零空间为什么可以用于干扰抑制
有些材料里会出现类似这句话:
当有干扰用户在 N(V^H) 上发射信号时,由于 AV0 = 0,可以在发射端消除用户间干扰。这里可以拆开理解。
SVD 中,V 可以分成两部分:
V = [V_signal, V_null]其中:
V_signal:对应非零奇异值的方向,也就是有效信号空间
V_null:对应零奇异值的方向,也就是零空间如果某个向量 x 位于 A 的零空间:
Ax = 0说明:
这个方向经过信道 A 后,在接收端完全看不见。所以,如果把干扰信号设计到这个零空间方向上:
A x_interference = 0那么它就不会影响目标接收端。
这就是所谓:
在发射端利用零空间进行干扰抑制。通信里类似概念包括:
零迫预编码
Null-space beamforming
干扰对齐
MU-MIMO 用户间干扰消除一句话:
把不想让对方看到的信号,打到对方信道的零空间里。图像压缩里的 SVD
如果 A 是图像矩阵,SVD 可以写成:
A = σ1 u1v1^T + σ2 u2v2^T + ... + σr urvr^T每一项都是一个秩 1 分量。
奇异值越大,代表这一项携带的信息越多。低秩压缩就是只保留前 k 个最大奇异值:
A_k = σ1 u1v1^T + ... + σk ukvk^T如果奇异值衰减很快,说明数据冗余大,用少量奇异值就能恢复主要信息。
图像压缩数字理解
假设一个 4x8 矩阵,原始存储量:
4 × 8 = 32 个数如果 rank = 2,用 reduced SVD 存:
U_r:4×2 = 8
Σ_r:2 个奇异值 = 2
V_r:8×2 = 16
总共 = 26严格算压缩率:
1 - 26/32 = 18.75%如果材料里写:
1 - (4*2 + 8*2)/(4*8) = 25%它其实忽略了 Σ 中 2 个奇异值的存储量。如果把奇异值也算进去,压缩率不是 25%,而是 18.75%。
如果只保留 1 个奇异值:
U:4×1 = 4
Σ:1
V:8×1 = 8
总共 = 13
压缩率 = 1 - 13/32 = 59.375%如果忽略 Σ,则是:
1 - (4 + 8)/32 = 62.5%所以 62.5% 也是忽略奇异值存储的简化算法。学习材料里的简化结论可以接受,但自己复盘时要知道它省略了什么。
经典特征值算法总览
常见算法包括:
幂法 / 反幂法 / 瑞利商迭代
QR 迭代
Jacobi 迭代
Lanczos 算法
随机 SVD先建立一张地图:
| 算法 | 主要用途 | 适合矩阵 | 核心特点 |
|---|---|---|---|
| 幂法 | 最大特征值 | 一般矩阵 | 简单,只求最大 |
| 反幂法 | 最小或指定附近特征值 | 一般矩阵 | 需要解线性方程 |
| 瑞利商迭代 | 高精度特征值 | 对称 / Hermitian 较好 | 收敛快 |
| QR 迭代 | 全部特征值 | 中小规模矩阵 | 稳定经典 |
| Jacobi | 对称矩阵特征值 | 对称矩阵 | 用旋转消非对角元 |
| Lanczos | 少量极值特征值 | 大规模稀疏 Hermitian | 高效 |
| 随机 SVD | 近似低秩 SVD | 大规模矩阵 | 快速近似 |
幂法
幂法用来求矩阵最大模特征值及其特征向量。
核心迭代:
x_{k+1} = A x_k
然后归一化为什么有效?如果初始向量可以展开成多个特征向量的组合:
x0 = c1v1 + c2v2 + ... + cnvn不断乘 A 后:
A^k x0 = c1λ1^k v1 + c2λ2^k v2 + ...如果:
|λ1| > |λ2| > ...那么 λ1^k 会越来越占主导,最后方向就会趋近于最大特征值对应的特征向量。
一句话:
反复乘 A,最大特征值方向会被放大出来。反幂法
幂法找最大特征值,反幂法找最小特征值。
因为:
A 的特征值是 λ_i
A^{-1} 的特征值是 1/λ_i所以 A 的最小特征值,对应 A^ 的最大特征值。
反幂法就是对 A^ 做幂法。实际计算时通常不直接求 A^,而是每次解:
Ay = x然后归一化 y。
瑞利商迭代
瑞利商是:
ρ(x) = x^H A x / x^H x它可以看成当前向量 x 对特征值的估计。
瑞利商迭代会动态调整 shift,通常收敛很快,尤其对 Hermitian 矩阵更友好。
先记住这个层次:
幂法:简单但慢
反幂法:找小特征值或指定附近特征值
瑞利商迭代:更精细更快,但每步更贵QR 迭代
QR 迭代用于求矩阵的全部特征值。
基本步骤:
A_k = Q_k R_k
A_{k+1} = R_k Q_k不断迭代后,A_k 会逐渐趋近于上三角矩阵。上三角矩阵的对角线元素就是特征值。
直觉上:
QR 迭代不断做相似变换,把矩阵逐渐“挤压”成接近三角形,特征值留在对角线上。适合:
中小规模矩阵
需要全部特征值
数值稳定性要求高Jacobi 迭代
Jacobi 特征值算法通过一系列旋转,把对称矩阵的非对角元素逐步消掉。
适合:
实对称矩阵
Hermitian 矩阵的变体它的目标是把 A 变成近似对角矩阵:
A -> D对角线就是特征值。
直觉上:
每次选择一个最大的非对角元素,用旋转把它消掉。优点是概念清楚、对称矩阵效果好;缺点是大规模问题效率不如现代算法。
Lanczos 算法
标准拼写是 Lanczos。
Lanczos 算法用于大规模稀疏 Hermitian / 对称矩阵,快速求少量重要特征值。例如:
最大几个特征值
最小几个特征值
低秩近似Lanczos 的核心思想
它不会直接对大矩阵 A 做完整 EVD,而是构造一个低维 Krylov 子空间:
K_m(A, q) = span{q, Aq, A^2q, ..., A^{m-1}q}然后把大矩阵 A 投影到这个低维子空间里,得到一个小的三对角矩阵 T。再求 T 的特征值,近似 A 的部分特征值。
一句话:
把大矩阵的问题压缩成小矩阵的问题。为什么 Lanczos 高效
因为它只需要矩阵-向量乘:
Aq不需要显式分解整个 A。
对于大规模稀疏矩阵:
Aq 很便宜
完整 EVD 很贵所以 Lanczos 非常适合:
大规模稀疏矩阵
只关心前几个特征值
只关心低秩结构Lanczos 和通信的关系
在无线系统里,Lanczos 可能用于:
大规模 MIMO 信道矩阵的主特征方向估计
协方差矩阵主子空间估计
波束方向估计
低秩近似
干扰子空间估计如果有一个很大的协方差矩阵 R:
R = E[hh^H]只想知道最大的几个特征方向,用完整 EVD 太贵,Lanczos 就有价值。
随机 SVD
随机 SVD 用随机投影快速找到矩阵的主要低秩子空间。
适合:
矩阵很大
只需要近似前 k 个奇异值和奇异向量
奇异值衰减较快核心直觉:
用随机向量去探测矩阵的主要能量方向。一般流程:
1. 随机生成矩阵 Ω
2. 计算 Y = AΩ
3. 对 Y 做正交化,得到 Q
4. 用 Q^H A 得到小矩阵 B
5. 对 B 做 SVD
6. 映射回原空间一句话:
先随机抓住 A 的主要列空间,再在小空间里做 SVD。不同分解算法怎么选
| 需求 | 推荐方法 |
|---|---|
| 任意矩阵,想做低秩分析 | SVD |
| 方阵,想看自身特征方向 | EVD |
| Hermitian 矩阵,求全部特征值 | QR / Jacobi |
| 大规模稀疏,只求少量特征值 | Lanczos |
| 大规模矩阵,只求近似低秩 SVD | 随机 SVD |
| 只求最大特征值 | 幂法 |
| 求最小或指定附近特征值 | 反幂法 / shift-invert |
| 通信信道 Rank 分析 | SVD |
| 协方差主方向分析 | EVD / Lanczos |
SVD/EVD 在无线里的重点应用
MIMO Rank 判断
奇异值个数和大小决定:
最多支持几流
每条流强弱
是否值得开高 Rank预编码
右奇异向量 V 可以作为发端预编码方向。
接收合并
左奇异向量 U 可以作为接收端合并方向。
干扰抑制
零空间可以用于:
把干扰投到目标用户看不见的方向压缩和降噪
保留大奇异值,舍弃小奇异值:
压缩冗余
去除噪声
保留主要结构真正要掌握的三句话
SVD 看的是:一个矩阵把输入空间的哪些方向变成输出空间的哪些方向,以及放大了多少。EVD 看的是:一个方阵自身有哪些方向经过变换后方向不变,只是长度缩放。Lanczos 看的是:大规模矩阵不用全分解,只在低维子空间里近似求重要特征值。自测问题
Q1:SVD 为什么比 EVD 更通用?
因为任意矩阵都存在 SVD,而 EVD 主要要求矩阵是方阵且满足可对角化条件。
Q2:奇异值和特征值有什么关系?
A 的奇异值等于 A^H A 或 AA^H 的特征值开平方。
Q3:rank = 2 的信道矩阵意味着什么?
最多只有 2 个独立有效空间通道,最大适合发送 2 个独立空间流。
Q4:为什么可以用零空间消干扰?
如果干扰信号位于目标信道的零空间,则经过目标信道后为 0,目标接收端看不到该干扰。
Q5:为什么图像可以用 SVD 压缩?
因为图像矩阵往往有冗余,主要信息集中在较大的奇异值上,保留前几个奇异值就能近似恢复。
Q6:Lanczos 适合什么场景?
大规模稀疏 Hermitian / 对称矩阵,只需要少量重要特征值或特征向量。
一句话总结
SVD/EVD 是理解矩阵“主方向、主能量、有效维度”的工具。
SVD 更通用,适合任意矩阵和 MIMO 信道分析;
EVD 更适合方阵、协方差矩阵和谱分析;
Lanczos、QR、Jacobi、幂法等算法则是不同规模、不同矩阵结构下求特征值的计算手段。下一步最值得做的是:拿一个简单的 2x2 矩阵,手算一次特征值;再用 Python 对一个 2x2 或 3x2 矩阵做一次 SVD。概念会很快落到实处。