MIMO分集与复用:原理、权衡与工程实践
先说一下我为什么要写这篇东西。干通信这行尤其是做物理层算法、系统仿真或者基站/终端协议栈的朋友应该都有过一段绕弯子的经历刚接触MIMO的时候满脑子都是分集、复用、波束赋形这几个词课本翻了一遍又一遍好像都认识但一碰到实际问题就打架——这个场景到底是用分集还是复用为什么MIMO天线越多吞吐率没有线性涨分集增益和复用增益到底能不能同时拿到我当年做外场测试时也被这个问题折磨过后来在实验室里把概念一个个捋清楚了才发现背后道理其实很朴素。这篇文章就把我当时捋通的思路完完整整写出来MIMO、分集、复用到底是什么关系几种常用分集技术的原理和适用场景以及实际项目里怎么做选择。适合刚入门MIMO的通信学生、刚接手无线链路开发的工程师也适合想把手头项目里玄学掉速问题搞清楚的老兵。1. 先搞清楚一个关键问题MIMO到底是个啥1.1 从名字说起MIMO的多进多出多在哪MIMO的全称是Multiple-Input Multiple-Output翻译过来就是多输入多输出。说白了就是通信链路的发射端和接收端都配置了多根天线。但你要注意一个容易忽略的细节MIMO这个名字只说了天线数量多它没有规定这些天线到底拿来干什么用。同样是两根发射天线、两根接收天线的系统我们一般写成2x2 MIMO你可以把它用来发两路不同的数据提高速率也可以用来发同一份数据的多个副本提高可靠性还可以用来把能量集中到某个方向提高覆盖。这三种用法就是MIMO三种典型的工作模式。很多人一上来就纠结MIMO和分集是什么关系其实关系很简单分集是MIMO的一种工作方式复用是另一种工作方式MIMO是承载它们的物理框架。打个比方可能更好理解。MIMO就像一家快递公司同时配了好几辆货车。你可以让所有货车送同一批重要文件分集保证至少有一辆能送到也可以让每辆货车装不同的货物走不同路线复用让总运输量更大还可以让所有货车排成队列去占领同一条主干道波束赋形保证这条路不被堵。货车还是那几辆货车但调度方式不同最终的效果完全不同。MIMO系统里的调度就是基带算法和传输模式在起作用。1.2 MIMO不是一项技术而是一套框架我在跟项目组新人聊天时经常强调一个观点MIMO不是单一的一项技术它是一整套利用多天线这个物理资源做文章的框架。为什么这么说因为MIMO涉及的底层能力其实是同一件事——空间维度。有了多根天线系统就有了额外的空间自由度。怎么用好这些自由度才是MIMO研究的核心。用空间自由度来换可靠性就是分集Diversity。用空间自由度来换传输速率就是复用Multiplexing。用空间自由度来换覆盖距离或信噪比就是波束赋形Beamforming。这三者不是互相排斥的但它们争抢的是同一份资源——空间维度。天线数量是有限的空间自由度也是有限的你在一个系统里能同时拿到多少分集增益和复用增益本质上是个分蛋糕的问题。这个认识特别重要因为很多实际系统的性能问题最后都能追溯到蛋糕分法不对。1.3 MIMO三种工作模式的分工既然MIMO有分集、复用、波束赋形三种模式我先把各自管什么说清楚。分集模式发射端发送同一信息的多个独立副本接收端通过合并这些副本降低信号衰落到检测门限以下的概率。它的核心指标是误码率、误包率。典型代表是Alamouti空时分组码。复用模式发射端把不同的数据流分别从不同天线发出去接收端通过信号处理算法把这些流分离出来。它的核心指标是吞吐率、频谱效率。典型代表是空间复用比如V-BLAST架构。波束赋形发射端根据信道方向信息对多根天线上的信号进行相位和幅度加权让电磁波在空间中形成指向性的波束。它的核心指标是信噪比、覆盖范围。典型代表是LTE里的TM8、5G NR里的模拟/数字混合波束赋形。有一点需要强调实际系统里的传输模式往往不是纯的某一种而是混合的。比如LTE的TM3开环空间复用会配合大时延循环延迟分集CDD既拿复用增益又拿分集增益5G NR里的预编码表面看是波束赋形实际上也隐含着空间复用和分集的权衡。所以理解MIMO这三种模式的关系是读懂所有空口技术的基石。2. 分集和复用一对相爱相杀的兄弟2.1 分集同一份数据多副本换可靠性先把分集说透。无线信道最让人头疼的问题是什么衰落。信号在空中传输时会因为多径、障碍物遮挡、移动带来的多普勒效应导致幅度出现几毫秒甚至几微秒量级的剧烈起伏。有时候信号瞬间掉到噪声底以下这时候无论你怎么加大发射功率接收端照样解不出数据。分集技术的思路很直接既然一条路不可靠那就多找几条互相独立的路让同一份数据走不同的路到达接收端。只要这些路不是同时处于深度衰落接收端总能把几份残血副本合并出一个可靠结果。这里的关键词是互相独立。如果两条路完全一样——比如天天线挨得太近、信道强相关——它们同时衰落的概率就很高分集效果几乎为零。分集增益的大小本质上取决于各条支路衰落的不相关程度。在无线通信教科书里分集增益通常被定义为误码率曲线在log-log坐标下的斜率。举例来说单条瑞利衰落信道中误码率随信噪比增加下降得比较慢而两条独立支路经过合并后误码率下降速度快得多误码率曲线更陡。这个斜率变陡的部分就是分集增益。直观来说分集并不直接提升平均信噪比它降低的是信号差到没法用的概率。2.2 复用多份不同数据同时发换速率复用的思路跟分集正好相反。分集是一条数据多条路复用是多条数据多条路。在一个2x2 MIMO系统里如果信道的散射足够丰富接收端的两个天线收到的其实是两路独立衰落信号的叠加。理论上接收端可以通过信道估计拿到完整的信道矩阵2x2的复数矩阵然后像解二元一次方程组一样把两路本来混在一起的数据流分离出来。这样一来你用一个信道带宽同时传了两路数据频谱效率翻倍。复用增益的数学表达也很漂亮。在一个理想的独立同分布瑞利衰落信道中Nt发Nr收的MIMO系统信道容量随min(Nt, Nr)线性增长。也就是说天线数越多、可并行数据流越多信道容量的天花板越高。这就是为什么5G NR把MIMO层数做到8层甚至更多——每一层就相当于一条并行的数据公路。但复用有一个致命的软肋它对信道条件非常敏感。如果发射端和接收端之间是纯视距LOS场景多径很少信道矩阵的秩接近1这时候不管你配多少根天线实际能同时传的数据流也只有一层。这种情况下的复用增益基本为零硬做空间复用性能反而会崩。2.3 分集增益和复用增益的此消彼长有些读者可能会想我既要高可靠性又要高速度行不行答案是可以折中但没办法同时拿满。这里有个非常经典的理论结果分集-复用权衡Diversity-Multiplexing Tradeoff, DMT由Zheng和Tse在2003年提出。对于一个Nt×Nr的MIMO系统在理想信道下最多能同时获得的分集增益d和复用增益r满足d(r) (Nt - r)(Nr - r)公式看着简单里面全是信息。拿常见的2x2系统举例追求目标复用增益r最大可得分集增益d只要可靠性04要一层复用11要两层满复用20你看这个表格就明白了什么都不求就求可靠分集增益能拿到4非要双流跑满那分集增益就是0链路稍有波动就掉速或掉包只跑一层流但还有一点分集余量那性能居中。这就是相爱相杀的本质——MIMO的空间自由度就这么多你往一边放得多另一边就得缩。实际系统里的自适应传输模式切换本质上就是在沿着这条权衡曲线找合适的运行点。3. 常用分集技术盘点时间、频率、空间各有各的玩法3.1 时间分集靠等一等换来的增益时间分集是原理最简单的一种分集方式。它的做法是在间隔足够大的多个时间点上发送同一份数据接收端利用多次接收到的信号来恢复原始信息。这里的核心参数是间隔足够大。多大的间隔算大这要引入相干时间Coherence Time的概念。相干时间近似等于多普勒频移的倒数它反映了信道冲激响应在时间上保持近似不变的时间长度。如果你两次发送的间隔大于相干时间那这两次经历的衰落就可以认为是相互独立的反之如果间隔小于相干时间信道根本没变你发两次等于白发第二次收到的衰落状态和第一次完全一样分集增益为零。时间分集的典型应用场景是移动通信中的交织加信道编码。比如LTE和5G NR里数据比特在调制之前会经过一个交织器把连续比特打散到不同的时间位置上。这样即使信道在一段时间内发生深度衰落损失的只是一些分散的比特通过信道解码就能恢复出来。另外自动重传请求ARQ/HARQ本质上也是一种时间分集——第一次传输失败了重传一次只要两次之间的信道发生了变化重传就有更高的成功概率。时间分集最大的问题在于它牺牲的是时延。如果信道变化很慢比如人在室内静止不动相干时间很长你想要获取时间分集就得等很久这在实时业务里根本等不起。所以实际系统里时间分集通常是配合其他分集方式一起用的很少单独靠它。3.2 频率分集换频段也是换命运频率分集的思路跟时间分集类似只是把不同时间换成了不同频率。无线信道有一个特性叫频率选择性不同频率的信号在传播过程中经历的衰落是不一样的。如果两个频率之间的间隔足够大大于相干带宽它们的衰落相关性就很低。相干带宽的粗略估计是最大多径时延扩展的倒数多径越严重相干带宽越窄同样频率间隔下的分集效果越好。频率分集的典型应用可以从两个层面看一是扩频系统。直接序列扩频DSSS把窄带信号扩展到一个很宽的频带上窄带干扰或频率选择性衰落只会破坏一部分频谱分量接收端通过解扩处理可以把分散的能量重新收集起来这个过程本质上是获取了宽带范围内的频率分集。二是OFDM系统。OFDM把宽带信道划分成许多窄带子载波如果把同一份数据映射到间隔较远的多个子载波上就能获得频率分集增益。LTE和5G NR里有一种发射分集方案叫SFBC空频分组码就是把Alamouti编码在频域上实现——两个相邻子载波上放同一份数据的正交编码版本。这相当于把空间分集和频率分集结合了起来。频率分集的好处是不占用额外的时间也不占用额外的天线但它消耗的是频谱资源。你把同样的数据放到多个子载波上那些子载波本来可以传新数据现在只能传副本频谱效率自然就降下来了。所以频率分集和复用之间也存在类似的权衡。3.3 空间分集分集家族里的核心主角空间分集是跟MIMO绑定最紧密的分集技术也是我实际项目里用得最多的一种。空间分集的基本原理是在发射端或接收端配置多根天线利用天线位置不同带来的信道不相关性获得相互独立的衰落路径。根据天线的位置空间分集又被分为接收分集SIMO和发射分集MISO/MIMO。接收分集比较好理解。基站侧或终端侧用多根天线接收同一个信号每根天线经历的衰落不同接收端用合并算法把多路信号合起来。工程上最常见的接收分集是上行链路——终端单天线发射基站多天线接收然后做最大比合并。这是所有蜂窝系统都能稳定工作的基石。发射分集稍微复杂一点因为发射端在发送时不知道信道状态除非有反馈所以不能简单地对齐相位直接合并。经典的解决方案就是Alamouti空时分组码两根发射天线在两个符号时间内发送一个2x2的正交编码矩阵。我在这里给一个直观的编码结构天线1在t时刻发送: s1 天线1在tT时刻发送: -s2* 天线2在t时刻发送: s2 天线2在tT时刻发送: s1*接收端只需要做一个简单的线性处理就能把s1和s2完整分离出来同时获得满分集增益。这个方案的厉害之处在于它不需要发射端知道任何信道信息接收端的解码复杂度极低即便只有一根接收天线也能获得2阶发射分集。所以Alamouti编码成了从WiFi到LTE再到5G NR都在用的经典方案。3.4 极化分集和角度分集昂贵空间之外的替代方案空间分集虽然效果好但它对天线间距有硬性要求。通常两根天线之间至少要隔开半个波长以2.4GHz为例半波长约6厘米才能保证信道衰落基本不相关。在很多终端设备、路由器和小型基站上根本没有这么大的空间。这时候极化分集就派上用场了。极化分集的核心是利用垂直极化和水平极化两种电磁波在传播过程中的衰落不相关性把两根天线做成不同极化方式然后塞进同一个物理位置。这样做的好处是天线间距几乎可以是零体积非常紧凑代价是如果信道中的去极化效应不明显比如空旷的视距环境两个极化通道之间的相关性会升高分集增益下降。另外发射功率要被平分到两个极化方向上可能会带来最多3dB的功率损失。角度分集则利用了另一个维度的独立性信号从不同角度到达接收端时可能经历完全不同的散射环境。实现上接收端可以用多个方向性天线朝向不同方向每个天线接收来自不同角度簇的信号再合并起来。这种方式多用于宏站或室内分布系统因为那里信号角度扩展比较大不同方向的天线能捕获到差异明显的信号副本。在实际项目里极化分集往往是空间分集的平替当设备尺寸实在放不下多根天线时换用双极化天线几乎是唯一选择。这个决策在WiFi AP和手机终端里尤其常见。4. 分集信号的合并技术分完之后怎么合4.1 选择合并SC最朴素也最省事分集系统拿到多路信号副本之后并不是简单地把信号加起来就行——因为各路的相位和幅度不一样直接相加可能互相抵消。合并方式直接决定分集增益能发挥多少。选择合并Selection Combining, SC是最简单的合并方式接收端在所有分集支路里挑信噪比最高的那条直接用它解调其他支路全部丢掉。SC的最大优点是实现简单算法基本不需要知道信道的相位信息只需要估计每路信号的信噪比或者接收功率。它的缺点也明显——只用了最好的那一份其他支路里包含的信息全被浪费了。理论上SC能获得的分集增益是所有合并方案里最低的但它胜在计算量小、鲁棒性好。在一些资源受限的物联网终端里如果接收端实在没有能力做复杂的信道估计SC仍然是不错的选择。4.2 最大比合并MRC理论最优的线性合并最大比合并Maximal Ratio Combining, MRC是所有线性合并方案里的天花板。MRC的原理说起来也不复杂对每条支路的信号先做相位补偿让所有支路的信号相位对齐然后按信噪比进行幅度加权——信噪比高的支路权重大信噪比低的支路权重小。最后的输出等于各路加权后的信号之和。这样做的好处是输出信噪比等于各路支路信噪比之和。比如你两个支路的信噪比分别是10和6那合并后的等效信噪比就是16。在瑞利衰落条件下MRC能把分集阶数完整地发挥出来误码率曲线斜率最陡分集增益最理想。我每次给新人讲MRC都会说一句话MRC是把好路用好把差路用起来它不像SC那样浪费也不像EGC那样对差路一视同仁。当然MRC的前提是你得准确估计出每条支路的信道相位和幅度。在相干接收系统里这通过导频或参考信号就能做到所以LTE和5G基站上行接收里MRC是一个很常见的默认算法。4.3 等增益合并EGC折中方案等增益合并Equal Gain Combining, EGC站在SC和MRC之间它跟MRC一样要对各路信号做相位补偿但是幅度加权系数全部设为相等的常数。EGC的工程意义在于有些场景下精确估计各路信噪比是比较费劲的或者信噪比估计结果不稳定这时候干脆不给幅度加权大家一视同仁。EGC的性能理论上介于SC和MRC之间但实际差距不会特别大尤其在支路数不多2到4路时。我个人的经验是EGC多见于模拟电路实现或者对成本敏感的接收机里因为省掉了变增益放大器或精确的幅度估计模块。数字基带做得比较完整的系统通常直接上MRC。4.4 三种合并方式的横向对比合并方式是否需要相位补偿是否需要幅度加权相对复杂度分集增益典型场景选择合并SC否否最低较低低成本终端、盲检等增益合并EGC是否中中模拟前端、中低端接收机最大比合并MRC是是较高最高基站上行接收、高性能系统这里有一个容易被忽略的坑上面说的分集增益都是理论值前提条件是各支路噪声独立且等功率。如果某条支路存在强干扰MRC按信噪比加权反而会把干扰也放大进来。这时可以考虑用干扰抑制合并IRC它本质上是把噪声和干扰的协方差矩阵一起考虑进去的广义MRC在实际蜂窝系统里比单纯MRC更常见。5. MIMO里分集和复用的落地实现5.1 从Alamouti到空间复用两种典型方案的对比前文已经提到Alamouti空时分组码和空间复用V-BLAST架构是分集和复用各自阵营的代表方案。这里把它们放在一起做一个正面对比方便读者直接感受两者的差异。先看发射端Alamouti方案两根天线发的是同一份数据的编码版本占用的资源是两个时隙、两根天线但实际上只传了两个符号速率是1符号/时隙空间复用方案两根天线各自发送独立的数据流同样是两个时隙、两根天线它传了四个符号速率是2符号/时隙直接翻倍。再看接收端Alamouti的解码非常简单把两根接收天线上收到的信号做线性合并就能得到原始符号的估计空间复用的解码要复杂得多因为两根发射天线的数据混叠在接收信号里接收端要用迫零ZF、最小均方误差MMSE或者最大似然ML检测才能把两路信号分开。ML性能最好但复杂度随调制阶数和天线数指数暴涨工程上基本都用次优的MMSE。用一个表来概括对比项Alamouti空时分组码空间复用V-BLAST发射数据同一数据编码后多天线发多路独立数据流频谱效率低速率1高速率2及以上接收算法复杂度低线性合并中高ZF/MMSE/ML是否需要发射端信道信息不需要不需要开环适用信道条件低SNR、信道条件差高SNR、散射丰富、信道秩高我从项目实践中得到的体会是如果信道条件不好、用户又处于小区边缘老老实实用Alamouti如果信道质量好、散射环境丰富再用空间复用。系统自身会根据信道质量指示CQI和秩指示RI来做切换。5.2 实际系统怎么选看SNR更看信道条件很多人以为系统会自动选最优模式其实这个选择背后有一套挺实际的门限判断。首要判断条件是信噪比SNR。空间复用对SNR的需求比较高因为多流数据分离的过程会放大噪声。在我的外场测试经验中2x2空间复用一般要SNR在15dB以上才比1流分集有明显优势SNR低于10dB时老老实实用发射分集反而吞吐更稳。5G NR里的调度器也是类似逻辑——CQI高、RI为2或更高时才调度多流传输。第二个判断条件是信道矩阵的质量条件数。信道矩阵的条件数描述了信道对多流分离的友好程度。条件数接近1说明各流之间正交性好适合复用条件数很大说明信道矩阵接近秩亏空间复用的两个流会严重互扰这时候复用吞吐率可能比单流还低。实际工程里我们一般用信道相关性或者特征值分解后的奇异值来判断基带芯片里的TM选择逻辑就内置了这层判断。第三个判断条件是移动速度。高速移动下信道变化太快闭环反馈跟不上用开环方案更稳妥。这也解释了为什么LTE在高铁场景下经常切换到TM3开环空间复用配合时延分集而不是TM4闭环空间复用。5.3 自适应切换鱼和熊掌的兼得之道既然分集和复用各有优势实际系统当然不会固定用某一种模式。现代通信系统普遍支持传输模式的自适应切换。在LTE里这个机制已经非常成熟。基站根据终端上报的RI秩指示、PMI预编码矩阵指示和CQI信道质量指示动态调整传输模式。SNR低、信道秩不足时RI上报为1系统走发射分集SNR高、信道条件好时RI上报为2或更高系统切到空间复用。整个切换过程对用户透明终端的感受就是网速和稳定性会随着位置变化自动调整。到了5G NR自适应粒度更细了。NR支持传输层的动态切换调度器可以针对每个资源块组选择不同的层数和预编码矩阵。再加上CSI-RS的精细测量和上报机制基站对信道状态的感知能力比LTE高了一个量级。我自己做协议栈开发时最关注的几个参数就是RI、PMI和CQI。RI直接决定了系统跑在分集路线上还是复用路线上PMI决定了波束对齐的好坏CQI决定了调制编码方案的选择。这三个参数看似简单实际上串联起了信道测量-反馈-调度-传输的完整闭环。6. 实际项目中踩过的坑和一点经验6.1 分集效果不理想的三个常见原因先说一个我在实验室和现场都反复遇到过的现象配置了分集方案但误码率曲线并没有比单天线好多少分集增益小得可怜。这种情况大概率是以下三个原因之一。第一个原因是天线相关性过高。做过一次室内测试两根天线间距只有八分之一波长结果分集增益几乎为零。后来把天线换成双极化方式增益立刻出来了。天线间距不够、极化方向不合适、天线周围金属环境导致辐射方向图畸变都会破坏支路独立性。当你发现分集增益明显低于理论值时先检查天线布局。第二个原因是信道本身的相关时间或相关带宽远大于资源间隔。比如在低速室内场景你用时间分集或频率分集可能等半天信道都没变或者两个频点经历的是几乎相同的衰落。这说明你选错了分集维度换空间分集或者干脆用重传调度可能更实际。第三个原因是合并算法实现有bug。MRC需要精确的相位对齐如果信道估计不准相位补偿就失真合并后不但没增强反而可能相互抵消。这类问题在外场测试时表现得很隐蔽——场地SNR高时看不太出来SNR低时误码率曲线就异常。检查手段通常是先换成SC如果性能没有明显下降那多半是MRC的信道估计链路出了问题。6.2 排查MIMO速率问题的实操路径做MIMO系统测试时配置没问题但速率上不去是最让人头大的问题。我自己的排查顺序一般是这样第一步先看RI。如果RI一直是1那说明系统认为信道条件不够好所以没有启用空间复用。这时候先别怀疑基站配置先看SNR和信道秩。RI为1但SNR很高大概率是天线相关性太高或者散射不够丰富。第二步看CQI和调制方式。如果CQI很高但吞吐率上不去那可能是MCS选择了较高的调制阶数但实际SNR波动导致误块率高HARQ重传消耗了大量资源。这种情况在信道快变场景特别常见。第三步看实际的资源分配和层数。5G NR里即使RI为2调度器也可能因为资源碎片化而只调度单层。用路测软件的物理层日志把每子帧的层数、RB数、MCS拉出来看往往比闷头调参数高效得多。这三步走下来大部分速率异常问题都能定位到具体环节。6.3 一些个人体会最后聊点实际的。这几年做无线通信系统我对MIMO、分集和复用的理解可以浓缩成一句话本质上权衡的是空间自由度的分配而不是哪个技术更高级。分集不低级复用也不高级。在低信噪比、信道条件恶劣的边缘地区分集能保命在高信噪比、多径丰富的热点区域复用能榨干信道容量。一个成熟的系统会在两者之间找到一个动态平衡点。再有就是别迷信理论最大增益。天线相关性、互耦效应、信道估计误差、反馈时延每一项都会吃掉一部分理论增益。工程设计里真正重要的能力是在第一次外场测试看到性能掉链子时能快速判断出是信道的问题、天线的问题还是算法的问题。这篇东西如果能帮你建立这么一个判断框架那就算值了。