WIFI标准中的 Beamforming matrix的压缩回传原理
WIFI 协议中的 beamforming,需要回传 beamforming matrix,实际上就是回传信道系数矩阵 SVD 分解后的 V,当然,传的是 V 中 一部分而不是全部,后面我们再做详细解释。
这个回传,有一种 compressed (压缩) 的方式,就是对 回传的向量做压缩,减少回传的数据量。
(录制的视频:https://www.bilibili.com/video/BV1xP411777k/)
WIFI 协议中的公式看起来很复杂,下面这个公式,是回传后,接收方重建 beamforming matrix 的公式:
这个公式看起来很复杂,我们今天来分解一下看看。
我们以 beamforming matrix 是一个 4x2 的矩阵为例:
我们知道, SVD 分解后得到的 V 矩阵,其列向量是相互正交的,且都是单位向量,即其模长为 1.
上面的 V 可以理解为是 三维空间中的两个正交向量,但是,不在坐标轴上。我们可以通过旋转,让其与两个坐标轴重合。V 矩阵一般是一个复数矩阵,我们要使用的旋转的方法,是基于实数矩阵的,所以,要先把 V 矩阵变成实数矩阵,然后再旋转。
1) 对每一列做一个相位调整,使得每一列的最后一个元素是实数。这个调整的相位,不用回传,因为相当于在发射方,对每个发射天线做统一的相位调整,不影响正确接收。
2) 对第一列的前三行的元素,计算出其相位(记为 ) 然后,对两列的前三行,分别做对应相位的调整,结果是第一列的前三个元素也变成实数了. 这个计算的过程,相当于乘以了如下的矩阵的共轭版本, 这个矩阵就是公式中的
3) 计算旋转的角度(记为 ),把第一列第二行的元素变成 0
乘以这个矩阵,下面这个矩阵就是公式中的
4) 计算旋转的角度(记为 ),把第一列第三行的元素变成 0
乘以这个矩阵,下面这个矩阵就是公式中的
5) 计算旋转的角度(记为 ),把第一列第四行的元素变成 0
乘以这个矩阵,下面这个矩阵就是公式中的
6) 至此,第一列中,只有第一行的元素不为 0 ,应该是 1;第二列中的第一行的元素应该是 0 (因为正交的原因,在那个坐标轴的上的投影为 0 ). 第二列的第四行还是实数,但是,第二行和第三行的元素,还不能确保一定是实数。
7) 对第二列的第二行和第三行计算对应的相位(记为 ,然后对两列的第二行和第三行做相位调整,因为第一列的第二行和第三行都是 0, 因此,调整后,第二列的第二行和第三行也是 实数。
这个计算的过程,相当于乘以了如下的矩阵的共轭版本, 这个矩阵就是公式中的
8) 计算旋转的角度(记为 ),把第二列第三行的元素变成 0
乘以这个矩阵,下面这个矩阵就是公式中的
9) 计算旋转的角度(记为 ),把第二列第四行的元素变成 0
乘以这个矩阵,下面这个矩阵就是公式中的
10) 至此,第二列的第三行和第四行也是 0, 且第二行元素不为 0,应该是 1.
最后,接收方可以根据这 和
相位,重建 beamforming matrix V:
其中 T 表示转置,其实就是相位的反方向旋转,例如:
一个向量左乘这个矩阵,就相当于对这个向量顺时针旋转 角度。
如果要顺时针旋转 角度,也就是逆时针旋转
角度,把这个代入上面的矩阵中:
则逆时针旋转$ \psi_{41}$ 角度,就是对向量左乘 $G_{41}^T$.
**附录**:
旋转角度的计算:
将 这个坐标轴的坐标变成 0 ,也就是把这个向量旋转到垂直于 “不包括这个
坐标轴的超平面 ”