MIMO 系统的 SVD 预编码浅析
MIMO 系统中,如果发射天线多于接收天线,那么我们不能做到每根发射天线都发射一个有效数据,例如 三发两收的情况,我们不能同时发送三个数据出去。在前面几篇文章和视频中有做详细介绍。
录制的视频:https://www.bilibili.com/video/BV17e4y1h7jY/
这篇文章的目的,是如何安排在三个发射天线上发送的数据?使得两根接收天线能接收到两个有效数据?当然,这个可以很自然地扩展到更多的发射天线,前提是接收天线数量少于发送天线数量。
对本篇文章的理解,需要简单的线性代数的知识,包括矩阵乘法,正交向量,奇异值分解(SVD),线性空间。看本篇文章不需要看前面的几篇文章,当然,先看看前面几篇文章,会有更深的理解。
主要以三发两收为例进行讲解,因为三维空间和二维空间是我们容易想象和理解的空间。
系统的示意图如下:

在下面这个文章中,我们讨论了估计发送数据的方法:
前面文章中提到的发送数据的方式,看起来很怪异,结构化不是很好,第一时刻发送三个新数据,第二时刻只发送一个新数据,看起来不是很均匀地发送有效数据。那我们能否做到在每个时刻都是发送两个新数据呢?但是,有三根发射天线,那怎么发的,这两个新数据通过哪个或者哪些天线发呢?
这就是我们今天要讲的,通过 SVD 分解,来做 x1 和 x2 的线性组合。
从这里开始,我们对有效数据的发送,引入新的记号,即我们要发送的有效数据 记为 c1 和 c2,通过三根天线打出去的信号数据,记为 x1,x2 和 x3.
信道的系数矩阵,我们记为:
则接收到的数据,我们记为 y1, y2, 暂时先不考虑噪声的干扰,则:
即:
线性代数的基本知识告诉我们,信道系数矩阵 W 可以做 奇异值分解(SVD - Singular Value Decomposition):
其中 U 是 2x2 的酉矩阵(单位正交的复数矩阵,行向量间两两正交,列向量间两两正交,列向量的模长为 1),V 是 3x3 的酉矩阵,S 是 2x3 的实数对角矩阵,且只有对角线上的元素才可能不为 0 ,且大于等于 0.
酉矩阵(或者对应实数情况下的单位正交矩阵,后面就都用酉矩阵来说明)的几何意义,是对向量的刚性旋转,不改变向量的长度,只是改变向量的方向。 则 矩阵,可以认为是一个旋转矩阵。
我们来看上面公式 (1) 中:
对于酉矩阵(或单位正交矩阵),作用在一个向量上,就是对向量做了旋转,由于 , 所以, V 和
互为逆旋转。
三发两收中,V 是一个 3x3 的矩阵,所以,可以理解为在三维空间中对一个向量 X 做旋转。
假如发送的有效数据是 c1 和 c2,我们构造一个向量:
令:
X = VC
相当于对 C 做了一个旋转,那么对 X 再做一个 V 的逆旋转,即乘以 ,我们就又可以得到 C:
至此,我们可以看到,信道系数矩阵做了 SVD 分解之后,本来是 一步作用在接收向量 X上的,但是,我们可以视为分三步按顺序先后作用在 X上

作用完 VH 之后,我们已经得到了 C,但是,后面两步的效果,需要在接收端做一次逆左右,即

这是从数学公式的推导上,我们可以得到这个过程。
我们从空间几何的角度,再重新理解一下上面的过程。

我们把
这是一个二维空间中的向量,我们把这个二维空间作为一个平面,再增加一维,构成三维空间,新增加的一维与当前这个二维空间平面正交,则在三维空间中,坐标为:
我们用 V 来在三维空间中做一个旋转,得到 X.
也可以这样理解,以三维空间中 两个向量构成的平面,用这两个向量的线性组合,生成一个新的三维空间中的向量 X,
而 作用在 X 上,相当于把
两个向量构成的平面 旋转到两个轴构成的平面上,让第三个轴的坐标 为 0. 本来,到这里我们已经拿到了原始的数据。但是, H 中后面两个部分,相当于在这个二维平面上对 二维向量做了拉伸和旋转的动作,所以, 我们还要做一下逆拉伸和逆旋转的动作,只是这次的逆旋转是用
。
令
则
由于 C 中第三个坐标为 0,
所以
由于 S 的第三列为 0,所以
所以
这就是我们接收的数据,因此
如果我们对
不使用 ,而是使用其它的一个基(由另外两个单位正交向量构成的一个基),那会怎么样?假如我们用
则再往下乘的时候,会丢弃掉 , 会丢失有用信息;另外,
和
会相互影响,就不容分离开。
举个例子:
Y1= [ 5.00000000e-01, -6.00000000e+00, 0]
Y2= [ 0.99004132, -0.04847483]
Y = [-0.49681329, 0.85773434]
C1= [ 0.99004132, -0.04847483]
C2 = [ 0.5, -6. , 0. ]
可以看到, 信号 X 在通过信道的第一个阶段 () 后,已经变成 Y1,其中第三个轴的坐标为 0,表明这个 Y1 在另外两个轴构成的平面上。再经过拉伸和旋转,变成了接收天线拿到的数据 Y.
Y 在二维平面上,经过逆旋转 ()和逆拉伸( 乘以 V 的伪逆矩阵),得到三维空间中的坐标 C2,但是,第三轴坐标是 0. 删除第三个坐标,我们拿到的就是发送的数据 CC = C.
==============================谢谢您阅读到这里=======================
说点题外话,塑料垃圾流到海洋和河流中,很多动物误食塑料后活活饿死,所以,还请把塑料垃圾妥善丢到垃圾桶内,当然,最好减少塑料的使用。
