尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

SCMA稀疏码多址接入全解析:从原理到MPA检测与工程实践

SCMA稀疏码多址接入全解析:从原理到MPA检测与工程实践 做无线通信物理层这些年从4G的OFDMA一路看到5G的极化码和波形方案再到6G的候选技术储备多址接入始终是绕不开的核心问题。SCMASparse Code Multiple Access稀疏码多址接入是这几年被反复提及的非正交多址方案名字听起来高深拆开看其实就三件事稀疏、码本、多用户叠加。这篇文章我想用最直接的话把SCMA讲清楚包括它是怎么从LDS-CDMA一路演进过来的、过载率150%到底怎么算、码本怎么生成、接收机MPA检测在跑什么、以及我实测中踩过的坑。无论你是刚接触物理层的新人还是想快速评估SCMA是否适合自己项目的老手这篇都能让你在短时间内建立完整的认知框架。先说清楚它解决了什么问题。传统正交多址比如LTE用的OFDMA用户之间在时频资源上是严格正交的一个资源块最多只能给一个用户用。用户数量一多资源就不够分。SCMA允许用户在同一个资源块上叠加传输靠码本区分彼此从而在相同资源下接入更多用户。这个思路在5G的mMTC场景、6G的星地融合通信里都有很强的应用价值。1. SCMA出现的理由正交多址的资源瓶颈1.1 正交多址的资源分配模式要理解SCMA先得明白传统正交多址是怎么工作的。OFDMA把时频资源划分成一个个资源块Resource Block每个用户分配互不重叠的资源块。这样做的好处是接收端不需要太复杂的检测算法用户间不会互相干扰每个资源块上解调自己的信号就行。坏处也明显——资源利用率的天花板就定死了。比如系统有4个资源块最多只能同时服务4个用户。第5个用户来了就得排队或者等前面的用户传输结束。在物联网场景里海量终端可能只传输很小的数据包比如传感器上报温度但每个终端都要占一块资源这就造成了极大的资源浪费。我见过不少做系统级仿真的人抱怨mMTC场景下接入用户数动不动要支持每平方公里百万级靠正交多址根本不可能完成。正交多址本质上是一人一坑的资源分配模式坑就那么多人多了只能排队。要突破这个瓶颈只能从多址方式本身下手。1.2 非正交多址的破局思路非正交多址NOMA的核心思想是允许用户在同一资源块上叠加传输用功率域或码域的差异来区分用户。这样资源分配从排他性占用变成共享性叠加理论上可以支持超额接入。NOMA家族里有两个主要分支。一是功率域NOMA在发送端给不同用户分配不同功率接收端用SIC串行干扰消除逐级解调。这个概念相对简单LTE-A的讨论中已经出现过但SIC对功率差敏感信道条件不好时误差传播会比较严重。二是码域NOMA代表方案包括SCMA、LDS-CDMA低密度扩频、MUSA多用户共享接入等。这些方案在发送端通过码本或扩频序列区分用户接收端用迭代检测算法分离用户信号。码域NOMA在过载能力、频谱效率方面通常优于功率域方案这也是SCMA被华为等公司重点推进的原因之一。华为早在4G时代就开始了SCMA的评估工作后续在5G标准讨论中也多次提出相关提案虽然5G最终没有把SCMA纳入标准但这项技术在6G研究中依然是热门候选。1.3 SCMA在NOMA家族中的位置说到SCMA和LDS-CDMA的区别很多人容易混淆。简单说LDS-CDMA是先做传统调制比如QPSK再用稀疏扩频序列做扩频SCMA则把调制和扩频合并成一步——直接让比特映射到高维稀疏复数码字上。这个合并是SCMA的关键改进它避免了LDS中扩频带来的成形增益损失。打个比方。LDS的做法是先做一份菜调制然后加很多水稀释扩频最后端上桌。SCMA则直接把食材比特做成一道浓缩汤每道汤都有自己的秘方码本上桌后味道依然浓郁。SCMA比LDS在相同频谱效率下有更好的性能原因就在这里。从系统角度看SCMA和功率域NOMA并不冲突甚至可以在一个系统里配合使用——某些用户组内用SCMA组间用功率区分。实际项目中做多址方案选型时需要综合考虑过载率需求、接收机复杂度、信道估计开销等因素。SCMA的强项是高过载场景代价是接收机复杂度高于正交多址这个trade-off要心里有数。2. 核心原理拆解从LDS到SCMA的演进逻辑2.1 稀疏扩频LDS-CDMA打下的基础LDS-CDMALow Density Signature-CDMA低密度扩频码分多址是SCMA的直接前身。它的思路是给每个用户分配一个低密度扩频序列所谓低密度就是指这个序列中的非零元素很少。传统CDMA中扩频序列通常在所有资源上都非零比如Walsh码。所有用户叠加后接收端要解调某个用户需要知道所有用户的扩频序列并做相关运算。当用户数很多时这个运算量会爆炸。LDS引入稀疏概念后每个用户只在少数几个资源块上有非零分量这相当于人为制造了一个稀疏的用户-资源映射关系接收端的检测复杂度随之大幅下降。这里有个很重要的知识点稀疏性不只为了省计算量更是为了让多用户检测算法比如MPA能利用因子图结构做消息传递。如果每个用户在所有资源块上都是非零的因子图会变成一个全连接图消息传递算法会退化成暴力穷举复杂度不可接受。可以这么理解稀疏性是在用微小的性能损失换取接收机复杂度的指数级下降。2.2 SCMA的两步走高维调制加稀疏扩频SCMA对LDS的改进可以描述为两步并一步。在LDS中数据的处理链路是比特映射到调制符号比如QPSK符号然后乘上稀疏扩频序列。SCMA改变了这个流程直接设计一组稀疏码本码本中的每个码字本身就是承载比特信息的K维复数向量。这里K是资源块的数量一个码字就是用户在K个资源块上的发送信号。由于采用稀疏结构每个码字只在其中的N个资源块上有非零值N远小于K。码字集合的大小由调制阶数决定比如M4的码本每个码字承载2比特信息对应4个不同的码字。这种设计带来的好处是多维调制天然具备星座成形增益。传统QAM调制映射的是一维或二维符号而SCMA的码字分布在更高维空间中相同能量下可以构造出更大的最小欧氏距离。反映在误码率曲线上就是同样的信噪比下SCMA的误码率更低。2.3 码本与资源块的对应关系SCMA系统通常用一个因子图来描述用户和资源块的关系。假设系统有J个用户、K个资源块因子图就包含J个变量节点用户和K个资源节点资源块。如果用户j在资源块k上有非零发送则两者之间有一条边。举个经典配置K4个资源块J6个用户每个码字的非零元素个数N2。这种情况下每个资源块上叠加的用户数d_f3。也就是说每个资源块上会有3个用户的信号叠加在一起接收机需要从混叠信号中分离出3个用户的数据。这个结构非常规律每个用户占用2个资源块每个资源块承载3个用户整个系统过载率150%。这种规律性不是巧合而是精心设计的。可以这样直观理解4个资源块相当于4条车道6个用户相当于6辆车每辆车只需要占用2条车道就能完成传输所以每条车道上会有3辆车同时通过彼此之间靠不同的码本区分。设计系统时N和K的比值决定了资源占用密度d_f决定了接收机检测的叠加用户数。d_f越大系统频谱效率越高但接收机复杂度也越高。实际工程中d_f一般控制在3到4之间比较合理再高的话MPA检测的复杂度会涨得很快。2.4 用例子说明6用户4资源的叠加过程这个例子值得展开一下。6个用户分别拥有自己的码本码本包含M4个码字每个码字是4维向量向量中有2个分量是非零的。发送时用户根据自己的比特选择码字然后在4个资源块上同时发送。用户1的码字在第1、2个资源块上非零用户2的码字在第1、3个资源块上非零用户3的码字在第1、4个资源块上非零以此类推。每个资源块上收到的信号是3个用户信号的和再加噪声。接收端知道所有用户的码本用MPA算法在因子图上迭代更新逐步逼近每个用户的最优解。我在实际仿真中用这个配置跑过链路级性能在AWGN信道下SCMA与OFDMA对比过载率150%还能维持可接受的误码率。这说明SCMA确实能用更少的资源承载更多的用户代价是接收端需要额外的处理能力。这个特性非常适合上行海量接入的场景——终端发射功率可以很小因为接收端基站侧有足够算力去做多用户检测。3. 过载率、码本设计与关键参数3.1 过载率怎么算150%是怎么来的过载率是SCMA最核心的系统参数定义是用户数J与资源块数K的比值用公式表示为λ (J / K) × 100%。以经典的6用户4资源块配置为例λ 6/4 150%。这表明系统承载的用户数比资源块数多了一半这就是过载的含义。作为对比OFDMA的过载率最高100%因为每个资源块只服务一个用户。过载率直接决定了系统能接入多少用户。在mMTC场景中终端数量庞大但每个终端的数据量很小提升过载率是增加系统容量的直接手段。SCMA通过码本设计和稀疏结构可以在过载率150%甚至200%的情况下保持可接受的检测性能。关于过载率的设计有个基本原则过载率越高系统容量越大但多用户干扰越强接收机检测难度越大。仿真时建议从150%起步先验证码本和检测算法是否正常工作再逐步提高过载率观察性能变化。需要注意的是过载率的提高并非无代价。用户数增加意味着每个资源块上的叠加用户数d_f增加MPA检测中每个资源节点的可能状态组合数会以指数速度增长。实际项目中需要综合评估过载率、误码率性能和接收机复杂度三者之间的关系。3.2 母码本生成流程码本设计是SCMA系统中技术含量最高的环节也是决定系统性能上限的关键。一个SCMA码本包含J个用户的码本每个用户的码本包含M个码字。这些码本不是随便生成的随机矩阵必须经过精心设计。典型的母码本生成流程分为几步。第一步从多维复星座开始。选一个基础星座比如QPSK或8PSK然后通过维度扩展和旋转构造高维星座。旋转的目的是增大不同码字之间的距离提升抗干扰能力。第二步对基础星座进行稀疏化处理。将高维星座映射到低维稀疏向量空间只保留N个非零维度。这里的核心是保证稀疏结构的一致性使所有用户遵循相同的稀疏模式但落在不同的维组合上。第三步通过相位扰动生成不同用户的码本。用户1用母码本用户2的码字在母码本基础上做相位旋转或维度置换用户3再做另一种变换。这样做的目的是保证用户间码字的互相关性尽可能小减少多用户检测时的互相干扰。我实际测试过不同的码本生成策略一个直观结论是码本设计的好坏直接决定了MPA检测能否收敛到正确结果。码本质量差时即使信噪比很高误码率也会有明显平台。这和LDPC码的校验矩阵设计不好导致纠错性能变差道理是相通的。3.3 设计准则为什么要看最小距离和成形增益SCMA码本设计的目标函数通常围绕两个关键指标展开最小欧氏距离和成形增益。最小欧氏距离决定了系统在高信噪比下的误码性能。不同用户的码字叠加后接收端需要通过距离来判断最可能的发送组合。如果最小距离过小噪声稍微大一点就会导致判决错误。设计码本时通常需要对所有可能的码字组合做距离谱分析尽量增大最小距离同时避免距离分布过于集中。成形增益是一个稍微抽象的概念。多维星座在高维空间中可以更好地逼近高斯分布的形状这种逼近带来的增益就是成形增益。相比传统二维QAM星座高维星座在相同平均功率下可以容纳更多的有效符号或者在相同符号数下降低平均功率需求。SCMA天然使用高维码字这个过程相当于同时完成了调制和编码的一部分功能。设计工具方面业界常用MATLAB结合优化工具箱做码本搜索。基本流程是初始化一组随机码本然后通过迭代优化比如梯度下降或粒子群算法最大化目标函数。这个过程计算量大通常需要离线完成。实际项目中我更推荐先用现成的公开码本做系统仿真验证等整体链路跑通了再针对特定场景优化码本。一上来就搞码本优化很容易陷进去出不来。4. 收发机实现与MPA检测4.1 发射机端做什么SCMA发射机的工作可以分为两个层面看待物理资源映射和比特到码字的映射。发射机的输入是每个用户的比特流经过信道编码后按每log2(M)比特一组分割。每组比特直接查表选取对应的码字然后把码字的非零分量映射到对应资源块上发送。整个发射机实现非常简洁没有传统的调制映射加扩频的级联结构也没有复杂的层映射过程。查表操作可以在硬件上用ROM实现时延很低。这对终端功耗控制很友好因为发送端复杂度远低于接收端。需要注意的一个细节是功率分配。虽然SCMA主要依靠码域区分用户但不同用户在不同资源块上的功率分配也会影响检测性能。一般来说各用户采用相同功率即可个别场景下可以做简单的功率偏置来进一步降低干扰。我在仿真中发现功率分配对SCMA性能的影响弱于码本设计所以工程上通常不做复杂的功率优化。4.2 因子图和MPA消息传递在稀疏图上怎么跑接收端的核心是多用户检测。SCMA使用MPAMessage Passing Algorithm消息传递算法在因子图上做迭代检测。MPA的本质是在图上做置信度传播近似计算每个用户码字的最大后验概率。具体来说算法在两类节点之间传递消息。资源节点收到来自叠加用户和噪声的观测信号根据码本计算每个用户每个可能码字的似然概率变量节点收集来自多个资源节点的概率信息归一化后反馈给资源节点。如此反复迭代直到消息趋于稳定最后对每个变量节点做硬判决。整个过程可以类比成一个多人在噪杂环境中确认信息的场景你是其中一桌的顾客用户服务员资源节点在不同桌之间传话你根据其他桌传过来的信息不断修正自己对当前问题的判断几轮之后信息逐渐清晰最终确定正确答案。MPA的巧妙之处在于利用了稀疏图结构每条消息的计算只涉及部分节点而不是全局搜索。MPA的复杂度由因子图结构决定。在6用户4资源、d_f3的配置下每个资源节点的状态组合数为M的3次方也就是M4时有64种组合需要计算。相比最优最大似然检测需要遍历所有J个用户的联合状态M的6次方即4096种组合MPA的复杂度下降了2个数量级。这是SCMA能实用化的最重要原因。4.3 复杂度控制与迭代设置MPA的迭代次数是复杂度与性能之间最直接的折中点。迭代次数太少消息没有充分传播误码率性能差迭代次数太多计算量白白浪费性能提升微乎其微。从我的实测经验看在6用户4资源的配置下迭代6次基本能达到收敛。5次以内性能有明显提升空间但超过8次后误码率几乎不再下降。所以工程上建议把迭代次数设为5到8之间具体数值根据信道条件和码本质量调整。除了迭代次数还有几种常见的复杂度优化手段。一是线性近似MPAMax-Log MPA把概率计算中的指数和对数运算简化为最大值运算损失一点性能换取硬件实现的大幅简化。二是基于信道可靠度提前终止迭代当所有变量节点的置信度都超过某个阈值时提前结束。三是并行化设计每个资源节点的计算相互独立在FPGA或GPU上可以高度并行化。硬件实现时还需要注意定点化问题。概率值在迭代过程中可能出现动态范围过大的情况需要做归一化处理防止数值溢出或下溢。我在FPGA上实现MPA时一开始直接用浮点仿真参数做定点转换结果性能掉了接近0.5dB后来改成在每次迭代后增加归一化步骤才恢复正常。这个细节很容易被忽略但在真正做产品时必须处理。5. 仿真验证与实战心得5.1 链路仿真搭建要点搭建SCMA链路仿真并不复杂但对细节要求很高。最小可行的仿真系统包括随机比特生成、用户分组、码本映射、信道叠加、加噪、MPA检测、解调和误码率统计。信道模型可以从AWGN信道开始再逐步扩展到衰落信道。我建议新手先跑通AWGN下的完整链路确认码本和MPA实现正确再切换到瑞利衰落信道。如果在AWGN下误码率就跟不上理论预期那问题大概率出在码本映射或者MPA实现上不要急着换复杂信道模型。衰落信道下需要注意信道估计的影响。SCMA接收端需要知道每个用户在每个资源块上的信道系数才能正确计算似然概率。实际系统中需要通过导频做信道估计导频开销和信道估计误差会直接影响SCMA性能。仿真时先假设理想的信道估计评估出性能上界再引入信道估计模块观察性能损失这样便于定位性能瓶颈。仿真中还有一个容易出错的地方是功率归一化。SCMA的用户信号在资源块上叠加每个资源块上的总功率可能高于单用户功率。如果不做功率归一化仿真结果会有明显的偏差。正确做法是在发送端对每个用户的码字功率归一化接收端根据实际叠加功率计算噪声方差。5.2 常见坑和排查误码平台、码本不收敛、信道估计先说误码平台。误码平台是指误码率曲线随着信噪比增加而趋于平缓不再下降的现象。SCMA中出现误码平台通常有三个原因码本设计不好导致部分码字距离太小MPA迭代次数不足导致检测结果没收敛或者接收端似然概率计算中存在数值问题。排查时先增加迭代次数排除迭代不足的因素再做码本距离谱分析确认最小距离是否达到合理水平。再说码本不收敛。这里的不收敛指MPA在迭代过程中消息振荡或发散。主要原因通常是码本中不同用户的码字之间相关性太高导致因子图上存在较强的环路干扰。稀疏因子图中不可避免地存在环路环长度越短消息传递越容易发散。解决思路是优化码本设计增加用户间码字的正交性或者在MPA中引入阻尼因子减缓消息更新的步长帮助算法稳定下来。信道估计误差对SCMA的影响比正交多址更明显。这是因为MPA的似然计算需要精确的信道系数做匹配滤波信道误差会直接污染概率值。实测经验是信道估计的归一化均方误差在5%以内时SCMA性能损失可控制在0.2dB以内超过10%后性能会显著恶化。对于高过载场景建议提高导频密度或者采用迭代信道估计与检测的方案才能保证实际系统性能。另外还有一点值得提SCMA链路仿真对随机种子很敏感。由于码本和信道的随机性单次仿真的误码率波动可能比较大。我一般的做法是每个信噪比点至少统计1000个误码样本或者保持至少100000个发送比特的统计量这样才能得到平滑可靠的性能曲线。5.3 性能对比和LDS、OFDMA放在一起看评估SCMA的实战性能最直观的方式是跟其他多址方案做对比仿真。我常用的对比对象是OFDMA正交基线和LDS-CDMA前代码域方案对比指标包括误码率、频谱效率和接收机复杂度。同等的频谱效率下SCMA相比LDS-CDMA在BER性能上约有2dB的增益这个增益主要来自二维调制到多维调制的映射优化。与OFDMA对比更复杂需要在相同的资源块数量下比较OFDMA在100%负载下性能很好但没有过载能力SCMA在150%负载下增加了一半用户接入性能损失通常在1到2dB以内。接收机复杂度上OFDMA的检测最简单每个资源块只需做单用户检测LDS-CDMA接收端也需要类似MPA的算法SCMA的MPA复杂度略高但换取的是更好的性能。实际选型时如果系统负载低于100%OFDMA仍然是性价比最高的方案只有当用户接入数明显超过资源数或者需要海量连接能力时SCMA的优势才真正体现出来。这里我做的对比表供参考方案过载能力接收机复杂度BER性能典型场景OFDMA无≤100%低最优eMBBLDS-CDMA支持约150%中一般早期mMTC研究SCMA支持150%-200%中高优于LDS海量连接、6G候选6. 从5G到6GSCMA能用在哪儿6.1 三大场景下的匹配度分析SCMA的核心优势是高过载能力这个特性决定了它的应用场景。在5G定义的三大场景中mMTC对SCMA的适配度最高因为海量终端接入正是SCMA的强项。传感器网络、智能电表、物流标签这类应用传输的数据量小、频次低但终端数量巨大用SCMA可以在有限的时频资源内接入更多终端减少调度开销。URLLC场景也值得关注。SCMA的免调度传输特性很关键终端可以在不需要基站动态调度的情况下直接发送数据通过码本标识终端身份。这缩短了接入时延对低时延高可靠通信有天然优势。uRLLC中SCMA需要解决的问题是可靠性这类场景对误码率要求非常高SCMA需要通过更精细的码本设计和更强的信道编码来保障。eMBB场景下SCMA的应用相对受限因为大流量场景要求极高的频谱效率而SCMA的频谱效率和多用户干扰之间存在trade-off。但这并不代表eMBB完全不需要SCMA在一些边缘频谱或异构网络中SCMA仍可作为补充手段。6.2 卫星通信、物联网和AI辅助方向卫星通信是SCMA一个很有潜力的应用方向。星地链路传播时延大地面基站那种快速反馈调度方式在卫星场景下很难实现。SCMA支持免调度接入终端盲发数据、靠码本区分用户这对高轨卫星通信来说很有吸引力。我看到的一些6G星地融合提案中SCMA类方案是候选中非常重要的一个分支。AI辅助的SCMA接收机也值得留意。传统MPA算法依赖精确的噪声方差估计和信道状态信息在复杂场景下性能受限。这几年有研究把深度学习引入SCMA检测用神经网络替代或辅助MPA。实测数据显示数据驱动的检测器在信道估计不完美时反而有更好的鲁棒性这对工程实践有启发意义。还有其他方向比如SCMA与大规模MIMO结合、SCMA与LDPC码联合迭代检测、SCMA在非授权频段的免调度应用等等。每个方向都有人在探索这说明SCMA作为一项底层多址技术它的价值并没有因为5G标准未采用而消失反而在6G的讨论中被持续关注和推进。我在实际项目中一个比较深的体会是SCMA并不适合所有场景它的价值在合适的场景下会被放大在不匹配的场景下则显得鸡肋。做技术选型时一定要先问自己三个问题系统需要多高的过载率接收机预算多少算力信道条件能否支撑可靠的信道估计这三个问题想清楚了SCMA适不适用心中自然有数。这套方法比单纯追新求热要实用得多。
返回列表