SVD预编码:介绍和推导
什么是SVD预编码?
SVD(Singular Value Decomposition, 奇异值分解)预编码是单用户MIMO(SU-MIMO) 或点对点MIMO通信系统中的最优线性预编码技术。
核心思想:一个复杂的MIMO信道矩阵 \(H\) 会使得发送的不同数据流之间产生干扰(符号间干扰,Inter-Symbol Interference)。SVD预编码的目标是将这个复杂的MIMO信道分解成多个并行的、互不干扰的独立子信道。这样,我们就可以在这些“干净”的子信道上独立地发送数据,从而避免干扰并达到信道的最大容量(香农容量)。
它通过在发射端(预编码)和接收端(信号处理)同时进行精巧的数学变换,将原始的信道矩阵 \(H\) “对角化”,使得整个系统等效于一组平行的简单信道。
系统模型
首先,我们建立一个标准的单用户MIMO系统模型:
- 发射端(Tx)有 \(N_t\) 根天线。
- 接收端(Rx)有 \(N_r\) 根天线。
- 信道矩阵为 \(H\),维度是 \(N_r \times N_t\)。
- 发射端要发送的符号向量为 \(s\),它是一个 \(d \times 1\) 的向量,其中 \(d\) 是数据流的数量 (\(d \le \min(N_t, N_r)\))。
- 发射端使用预编码矩阵 \(P\)(维度 \(N_t \times d\))对信号进行处理。
- 实际发射的信号为 \(x = Ps\)。
- 接收端收到的信号为 \(y = Hx + n = HPs + n\),其中 \(n\) 是噪声。
- 接收端使用信号处理矩阵 \(W\)(维度 \(d \times N_r\))来恢复信号。
- 最终恢复的信号为 \(\hat{s} = Wy = WHPs + Wn\)。
我们的目标是设计 \(P\) 和 \(W\),使得 \(\hat{s}\) 尽可能地接近原始信号 \(s\),最好能让整个系统 \(WHP\) 变成一个对角矩阵,从而消除数据流之间的干扰。
SVD预编码的数学推导
SVD预编码的全部魔力都源于对信道矩阵 \(H\) 的奇异值分解。
1. 对信道矩阵H进行SVD分解
根据线性代数,任何一个矩阵 \(H\) 都可以被分解为:
其中:
- \(U\) 是一个 \(N_r \times N_r\) 的酉矩阵 (\(U^H U = I\)),它的列向量称为左奇异向量。
- \(V\) 是一个 \(N_t \times N_t\) 的酉矩阵 (\(V^H V = I\)),它的列向量称为右奇异向量。
- \(\Sigma\) 是一个 \(N_r \times N_t\) 的对角矩阵,其对角线上的元素 \(\sigma_i\) 称为奇异值,并且非负。\(\Sigma\) 的形式为 \(\begin{bmatrix} \text{diag}(\sigma_1, \dots, \sigma_r) & \mathbf{0} \\ \mathbf{0} & \mathbf{0} \end{bmatrix}\),其中 \(r = \text{rank}(H)\) 是非零奇异值的个数。
- \(H\) 表示共轭转置。
这个分解告诉我们信道的内在结构:
- \(V\) 的列向量(右奇异向量)定义了一组发射端的最佳发射方向(相互正交的波束)。
- \(U\) 的列向量(左奇异向量)定义了一组接收端的最佳接收方向(相互正交)。
- \(\sigma_i\) (奇异值)代表了第 \(i\) 个发射/接收方向对上的信道增益。奇异值越大,表示这个子信道的质量越好。
2. 设计预编码和接收矩阵
SVD分解完美地给我们指明了方向。
- 在发射端:我们应该让我们的信号沿着 \(V\) 的方向发射出去。因此,我们选择预编码矩阵 \(P\) 为 \(V\)。
- 在接收端:我们应该沿着 \(U\) 的方向来接收信号。因此,我们选择接收处理矩阵 \(W\) 为 \(U^H\)。
这里我们假设发送的数据流数量 \(d\) 等于信道的秩 \(r\)。所以我们选择 \(V\) 的前 \(r\) 列作为 \(P\),选择 \(U\) 的前 \(r\) 列的共轭转置作为 \(W\)。为简化推导,我们暂时假设 \(P=V, W=U^H\)。
3. 推导等效信道
现在,我们将设计的 \(P=V\) 和 \(W=U^H\) 代入到最终接收信号的表达式中:
由于 \(U\) 和 \(V\) 都是酉矩阵,我们有 \(U^H U = I\) 和 \(V^H V = I\)(单位矩阵)。因此,上式可以简化:
其中 \(n' = U^H n\) 是经过旋转后的噪声,其统计特性(如功率)保持不变。
4. 分析结果
我们来看一下 \(\hat{s} = \Sigma s + n'\) 的具体形式:
写成标量形式就是:
推导结论:通过SVD预编码,我们成功地将一个相互耦合的MIMO信道 \(H\) 转化为了 \(r\) 个并行的、互不干扰的AWGN(加性高斯白噪声)子信道。第 \(i\) 个子信道的增益就是奇异值 \(\sigma_i\)。
与信道容量和功率分配的关系
SVD预编码之所以被称为“最优”,是因为它能够达到单用户MIMO信道的香农容量。
根据香农公式,总信道容量是所有并行子信道容量的总和:
其中:
- \(p_i\) 是分配给第 \(i\) 个数据流(子信道)的发射功率。
- \(|\sigma_i|^2\) 是第 \(i\) 个子信道的功率增益。
- \(\sigma_n^2\) 是噪声功率。
- 总发射功率受限:\(\sum_{i=1}^{r} p_i \le P_{\text{total}}\)。
为了最大化总容量 \(C\),需要使用注水(Water-filling)算法来优化分配各个 \(p_i\)。基本思想是:给信道质量好(\(\sigma_i\) 大)的子信道分配更多的功率;给信道质量差的子信道分配更少的功率;如果某个子信道质量差到一定程度,则不给它分配功率(即不使用该子信道传输数据)。
SVD预编码算法总结
- 信道估计:发射端需要通过反馈等方式获得准确的信道状态信息(CSI),即矩阵 \(H\)。
- SVD分解:对 \(H\) 进行奇异值分解,得到 \(U, \Sigma, V\)。
- 功率分配:根据奇异值 \(\{\sigma_i\}\) 和总功率限制 \(P_{\text{total}}\),使用注水算法计算出分配给每个子信道的最佳功率 \(\{p_i\}\)。
- 预编码:构建预编码矩阵 \(P = V \cdot \sqrt{P_{\text{diag}}}\),其中 \(P_{\text{diag}} = \text{diag}(p_1, p_2, \dots, p_r)\)。发射信号为 \(x=Ps\)。
- 接收处理:接收端使用 \(W = U^H\) 对接收信号 \(y\) 进行处理,恢复出信号 \(\hat{s}\)。
局限性
- 需要精确的CSIT:SVD预编码的性能极其依赖发射端获取的信道信息的准确性。在快速变化的移动通信环境中,获取实时精确的CSIT是一个巨大的挑战。
- 仅适用于单用户:它是一种点对点的技术,没有考虑多用户之间的干扰。对于多用户场景,需要使用如块对角化(BD)或脏纸编码(DPC)等更复杂的技术。
- 计算复杂度:对信道矩阵进行SVD分解需要一定的计算资源,尤其是在天线数量很多的情况下。

浙公网安备 33010602011771号