上一回我们说到了变化莫测的MIMO信道,并且留下了一个美好的假设:“如果在发送数据之前,我们能够提前获得信道信息,是不是能对发送策略有指导作用,并且有效的帮助我们提升通信系统的性能呢?”本回内容,我们就来回答这些问题。
还记得上回开篇在介绍“相关性”时举得例子么?这里简单的回顾一下:假设有一车货物要从A地运到B地,有3条路可以选择,分别经过城市X,Y,Z。在出发前我们听到天气预报说X市会有大雨,于是我们选择绕道走Z市,从而避开了受天气影响的X市和Y市。这里,正是因为我们听到了天气预报,才能选出最佳的出行路线,所以“天气预报信息”为我们的出行提供了非常有效的帮助。在无线通信系统中,“信道状态信息(ChannelCondition Information,CSI)”就相当于这个例子中的“天气信息”,那么如果我们能够在发送端掌握到及时、准确的“信道状态信息”,是不是就能“避开”那些信道条件不好的传播路径,从而提升通信系统的性能?
答案当然是肯定的。不过,发送端获得“信道状态信息”后,究竟能为MIMO通信系统带来多少好处,我们还是得从数学的角度进行分析,谁让数学是通信的基础呢。首先我们可以想象一下,我们心目中最佳的信道矩阵,或者叫传输矩阵,应该具有什么样的结构?拿2x2MIMO 系统举例来说,它的传输矩阵具有以下形式(忽略噪声的影响):
我们可以很快看出,最佳的传输矩阵H,应该具有的形式是:
当传输矩阵拥有这种“对角阵”的形式时,X1和X2和它进行矩阵相乘后,得到的仍然是X1和X2,就好像X1和X2各自通过了一条“透明”的子信道到达接收端,两者之间也没有任何干扰。
然而“理想很丰满,现实很骨感”,要是现实中的通信系统都能拥有如此完美的传输过程,恐怕一大半的MIMO研究人员都可以下岗了。我们知道,现实中的传输矩阵,里面的各个元素都是按一定的概率统计规律随机变化的,根本找不到半点“对角阵”的影子。但是“对角阵”的形式实在是太好了,即使眼下无法直接获得,我们依然希望能够有一种方法能够将现实的传输矩阵“转化”成对角阵的形式--SVD分解(矩阵的奇异值分解,SingularValue Decomposition)就提供了完美的解决办法。
通过对传输矩阵H进行SVD分解,我们可以得到三个矩阵:左酉阵U,对角矩阵S(对角阵S中的元素s1,s2就是H矩阵的奇异值)和右酉阵V。现在,我们期望的对角阵S已经出现了,但它的左右两边又多出了两个酉阵U和V,怎么办?没关系,“酉阵”同学有一个很好的性质,它只要与自己的共轭转置相乘,就可以把自己化简掉(其实是得到了一个单位阵()。
如果我们在信号经过信道之前,首先对信号进行“预处理”,给它们乘以V的共轭转置矩阵,再让它们经过信道,右酉阵V就被化简掉了,相当于发送信号直接与对角阵S相乘!接收端的处理类似,我们对接收信号矩阵左乘酉阵U的共轭转置,就可以消掉它。这时我们惊喜的发现,拥有“对角阵”形式的传输方程又回来了,这正是我们期待的效果!
慢着慢着,我们来回顾一下刚才是如何重新获得“对角阵”形式的传输矩阵的?没错,正是因为在信号发送之前,给它们乘以了右酉阵V的共轭转置矩阵。所以,我们可以提炼出发送端拥有信道矩阵的第一个好处:如果发送端拥有了H的信息,就可以对它进行SVD分解,从而得到右酉阵V,利用它,可以将传输过程转化成我们期望的“对角阵”形式。
闲话1:
在现实的MIMO通信系统中,运用信道信息对发送信号进行“预处理”的发送方式也非常重要。比如LTE协议中的“线性预编码技术(LinerPrecoding)”或者802.11n中也有的“波束成形技术(Beamforming)”,其背后的原理和思想,都与我们上述的分析一致,只不过有多种实现方法,这也与信道信息的获取方式有很大关系,一会儿我们再介绍。
好了,信道信息除了可以用来对发送信号进行“预处理”,指导发送策略以外,从中还能获得什么对我们有用的信息呢?这次,我们要从 “对角阵S”身上寻找答案。
对不同的信道矩阵H进行SVD分解,可以得到不同的“对角阵S”,这听上去是一句废话;但是,这些不同的“对角阵S”,却能反映出信道H的很多信息。所以,我们不妨直接拿出几个实际的H矩阵,对它们进行SVD分解,看看分解出的这些“对角阵”中,究竟还隐藏着哪些秘密。我们依旧选择2x2MIMO信道作为研究对象,为了便于对照,我们选择3个“极端”的信道矩阵作为分析的例子:最优矩阵(单位阵);随机矩阵和最差矩阵(全1阵)。注:这里列举的信道只为说明其自身矩阵特性,并没有进行归一化等处理。
最优传输矩阵的特性,刚才我们已经分析过了,这里为什么要把全一矩阵定义成“最差信道”呢?原因也很简单,信道矩阵H中的所有元素都一样,不就说明所有传输路径的增益都相同么,换句话说,所有路径都经历了完全相同的衰落过程,在上一回“犹抱琵琶半遮面--MIMO信道中隐藏的秘密”中,我们分析过,如果4条传输路径完全相同,可以把它们看成是同一条路径,2x2MIMO系统将退化成SISO系统,这当然是我们最不愿意看到的结果。
现在我们分别对这三个信道矩阵进行SVD分解,得到的对角阵如下图:
(1)对角阵中,奇异值个数的意义:我们可以清晰看到,“最优信道”和“随机信道”分解出的对角阵S1和S2都有两个非零元素,即信道H的奇异值。而“最差信道”分解出的对角阵S3中只有1个奇异值,这代表什么呢?我们来深入的研究下这种情况:现在,如果在发送端同时发出两个信号X1和X2,实际上只有一个信号能够通过子信道,另一个却“消失”了,这就说明这种信道只能保证一个信号的收发,换句话说,它的“自由度”只有1。
且慢,你在第一回“鱼与熊掌能否兼得--浅谈分集与复用的权衡”中不是说过,2x2MIMO系统能够写出两个传输方程,所以支持的“自由度”应该是2么?没错,不过让我们先来看看,“最差信道”写出的两个传输方程是什么样的。仍旧假设发送端发出信号X1和X2,在与全一矩阵相乘后,我们得到了两个完全一样的传输方程,这不就相当于只有一个方程么!我们也不可能从一个方程中解出两个准确的X1和X2,所以,尽管2x2 MIMO支持的最大“自由度”是2,“最差信道”能提供的“自由度”只有1。看来,奇异值的个数,直接反应了信道所支持的“自由度”数目。
我们当然要更进一步追问,究竟是什么原因造成了“自由度”的退化?罪魁祸首当然是“相关性”。刚才我们已经分析了,“最差信道”中,所有元素都相同,就意味着4条传输路径完全相同,MIMO系统将退化成SISO系统,而SISO系统能提供的“自由度”可不就是1么。“相关性”还真是个难缠的家伙。(如何才能降低信号间的相关性?可以回顾上一回“犹抱琵琶半遮面--MIMO信道中隐藏的秘密”)
现在我们来总结一下 “对角阵S”中,奇异值个数的含义:在对一个信道矩阵进行SVD分解后,得到的“对角阵”中,奇异值(非零元素)的个数就代表该信道能支持的 “自由度”数目----更专业一点的说法是,奇异值的个数,就是该信道矩阵的秩(Rank)。
闲话2:
在现实的MIMO通信系统中,发送端如果能够知道信道矩阵的秩,对发送策略的选择也是大有益处的:当信道质量好的时候,我们会更多的发挥“自由度”的优势,使用更多的空间流数(自由度)进行传输,以提高通信的速率;但是当信道变差以后,就无法再支持多个空间流了,信道秩的指示(RankIndication,RI)可以帮助我们选择合适的空间流数进行传输,以提高通信效率。
(2)对角阵中,奇异值大小的意义:从图中我们也能清晰看到,尽管“最优信道”和“随机信道”分解后得到的对角阵中,都有两个奇异值,但这两个奇异值的大小分布却不相同。那么,奇异值间的大小分布又有什么意义呢?简单的说,奇异值的大小,衡量的是信道所支持的“自由度”的“健康状况”,数值越趋近0,说明该自由度越接近“退化”的边缘。比如在“最优信道”中,两个奇异值大小相同,意味着信道对两个自由度的支持都很好,没有任何差别,这当然也是我们最想看到的情况;而在“随机信道”中就不同了,一个数值特别大,一个特别小,换句话说,这个信道支持1个自由度绰绰有余,想支持2个,效果就没有那么好了。所以,在许多经典的MIMO教科书中,都能看到这样一个参数:ConditionNumber(条件数),它定义为“对角阵S”中,最大奇异值比上最小奇异值的结果,现在我们对它应该有了更好的理解:这个比值(条件数)越接近1,说明信道中各个平行子信道(自由度)的传输条件都很好,很平均;比值越大,说明各个子信道的传输条件好的好,差的差。
那么在现实中,如果我们能够知道奇异值的个数和大小,不就能够知道哪些子信道的传输条件好,哪些传输条件不好了么?我们当然希望发送策略可以多多利用条件好的子信道,尽量少用或不用条件差的子信道。这就像突围战中,一定要找到敌人最薄弱的环节,集中优势兵力,一举击破。在实际的MIMO通信系统中,总的发送功率有限,与其把功率浪费在条件差的信道上,不如通过调整发送功率,给条件好的子信道多分配一些功率,给条件差的子信道少分或不分配功率,来实现上述思想。
这个过程就像给一个杯子中加水,如果杯中的杂物很多,能加入的水就少;若杯中空无一物,能容的水就多。我们不妨把各个子信道的信道条件比作杂物,条件越差,意味着杂物越多,能分配的功率就越少。当我们把总量一定的水(功率)倒入这些杯中,可以清晰的看到一条注水线,水的深度就是给这些子信道分配的功率了。这便是大名鼎鼎的“注水算法(water-filling)”!
好了,说了那么多,相信大家也看累了。现在我们可以回顾并总结一下,发送端获得信道信息后,能够带来的好处:
(1)使用右酉阵V,可以对发送信号进行“预处理”,将传输过程转化成具有“平行子信道”的对角阵形式;
(2)有了信道矩阵秩的信息(奇异值的个数),可以灵活的调整空间流数(自由度),从而提高通信系统效率;
(3)知道了奇异值的个数和大小后,可以使用“注水算法”分配发送功率,提升系统容量。
本回中,我们用了很大的篇幅来介绍“信道信息的应用”,最后,我们就来简单的看一下发送端有哪些方法来获得这些有用的信道信息的,并结束全文。
发送端获取信道信息的方式与通信系统所采用的双工方式有很大关系。在一个时分复用(TimeDivision Duplexing,TDD)系统中,顾名思义,这样的通信系统是通过时间来区分上下行数据的,所以,所有数据共享相同的频率资源。这就相当于有一条很窄的路,每次只能允许一辆汽车通过,来往的车辆都通过时间调度,这个时刻你过,下个时刻轮到我。
这种情况下,下行车辆如果想知道“路况信息”,直接问问上行开过来的车辆就行了。在TDD的通信系统中,信道信息获取的方式也类似:只需要对上行数据中的参考信号进行信道估计,就可以得到下行的信道信息(实际运用中,通常还需要“校准”这一步,以消除上下行射频(RF)间的误差)。
我国自主制定的3G通信协议TD-SCDMA,和“4G”演进版本的TDD-LTE协议,都属于这种双工方式,所以比较容易在发送端得到信道的信息,因此,那些强烈依赖信道信息的技术,如智能天线,波束成形等,都是这些协议中的“亮点”。
而在FDD(FrequencyDivision Duplexing)系统中,上下行数据使用不同的频段进行传输,相当于各自独享一条单行线路。这样一来,两条线路上的“状况”可能大相径庭,就像你问一个刚从西藏乘飞机回来的同学说:“进藏公路好不好走?”,他肯定也一头雾水。所以,在FDD系统中,建立有效的反馈链路,就显得十分重要了。
闲话3:对于反馈过程来说,它的内容不能过大,否则会影响正常的上行数据传输。但是信道信息哪里是省油的灯,完整且准确的信道信息的数据量庞大,将占用大量的上行资源。因此第一步要做的,就是要减少反馈开销。我们可以把一些计算放到接收方来做,比如SVD分解,这样只需要反馈信道信息的一些指示,和右酉阵V的信息就够了。怎么,还嫌反馈量大,那我们对V进行压缩,量化,再进行反馈好了。其实,802.11n及802.11ac中的波束成形技术就是这么做的,它通过Givens矩阵旋转,把V转化成只和角度有关的参数,并只反馈这些角度的量化值,以达到减少反馈量的目的。不过它们是典型的时分系统,需要在上行时隙中进行反馈。不行,反馈量还是有点大,还有没有别的办法呢?有!我们可以利用右酉阵V的“矩阵特性”,设计专门的码本(Codebook),这就像给“各式各样的V”进行了编号,每次只用向发送方反馈一个编号索引(Index),发送方就知道对应的矩阵是哪个了。LTE中“基于码本的预编码技术”就是采用的这种方式,反馈指示就叫“预编码矩阵指示”(Precoding Matrix Indication,PMI)。