1. GRAND解码技术概述
在现代通信系统中,信道解码技术是确保信息可靠传输的核心环节。GRAND(Guessing Random Additive Noise Decoding)作为一种新兴的解码范式,通过逆向思维解决解码问题——它不直接猜测发送的码字,而是系统地生成可能的噪声模式(称为错误模式,Error Patterns,EPs),并通过测试这些模式来恢复原始信息。
1.1 GRAND的核心思想
GRAND的工作流程可以概括为以下步骤:
- 接收端获取带有噪声的信号向量
- 根据信道特性计算每个比特的可靠性度量(如对数似然比LLR)
- 按照特定策略生成候选错误模式序列
- 依次测试每个错误模式,检查其是否能产生有效码字
- 第一个通过校验的错误模式即被视为解码结果
这种方法的独特优势在于其通用性——它不依赖于特定编码结构,理论上适用于任何线性分组码。对于短到中等长度的码字,GRAND展现出接近理论极限的解码性能。
1.2 GRAND的两种主要变体
根据处理信道软信息方式的不同,GRAND发展出两个主要分支:
SGRAND(Soft GRAND):
- 完全利用信道输出的软信息(精确的可靠性值)
- 按照错误模式的似然概率严格排序
- 保证最大似然(ML)解码最优性
- 缺点:EP生成和排序计算复杂度高,难以并行化
ORBGRAND(Ordered Reliability Bits GRAND):
- 仅使用信道可靠性的排序信息(无需精确值)
- 采用预定义的EP生成顺序
- 天然支持并行处理
- 缺点:牺牲了严格的ML最优性
这两种方法形成了有趣的互补关系:SGRAND追求最优性能但计算复杂,ORBGRAND效率高但性能稍逊。本文提出的EP树框架正是为了调和这对矛盾而生。
2. 错误模式树(EP Tree)的设计原理
2.1 EP树的结构定义
EP树是一种二进制树结构,其核心思想是将所有可能的错误模式(共2^N个,N为码长)组织成一个层次化的搜索空间。树的构建基于以下规则:
- 根节点代表全零向量(无错误的假设)
- 每个非零节点对应一个唯一的错误模式(二进制向量)
- 节点间的父子关系由信道可靠性排序决定:
- 设r=(r1,...,rN)是可靠性值ℓ的升序排列索引
- 节点的左子节点将当前最高可靠性错误位"移动"到下一个位置
- 右子节点保持当前错误位并添加下一个可靠性最低的位
这种结构确保了树中任意路径都对应一个错误模式生成序列,且子节点的错误模式总是比父节点包含更多(或等量)的低可靠性位翻转。
2.2 EP树的性质证明
EP树具有两个关键数学性质:
性质1(完备性): 树包含所有2^N个可能的错误模式,且每个模式出现且仅出现一次。
证明思路:
- 通过归纳法:对于N=1,树只有根节点和单子节点,显然成立
- 假设对于N=k成立,则对于N=k+1,每个节点的左右子操作都会产生唯一的新模式
- 由排列组合可知总节点数为2^{k+1},覆盖全部可能性
性质2(权重单调性): 对于任何节点,其软权重ζ(e) = Σ_{e_i=1}ℓ_i满足: ζ(父节点) ≤ ζ(子节点)
证明: 设父节点e^(P)的最高错误位为j*,则:
- 左子节点:ζ(e^L) = ζ(e^(P)) + ℓ_{j*+1} - ℓ_{j*} ≥ ζ(e^(P)) (因为ℓ_{j*} ≤ ℓ_{j*+1})
- 右子节点:ζ(e^R) = ζ(e^(P)) + ℓ_{j*+1} ≥ ζ(e^(P))
这两个性质保证了在EP树上执行的最佳优先搜索能够系统地覆盖所有可能的错误模式,且按照软权重的非递减顺序进行。
3. 并行化SGRAND算法实现
3.1 基本并行策略
传统的SGRAND是严格串行的——它必须逐个生成和测试错误模式以维持ML最优性。基于EP树,我们可以设计如下并行方案:
初始化阶段:
- 计算可靠性排序r
- 初始化候选集S0 = {根节点}
- 设置并行度参数{Pk}(第k轮处理的EP数量)
并行测试阶段:
- 从当前候选集Sk-1中提取Pk个最小ζ的EP
- 并行测试这些EP的有效性(是否产生合法码字)
- 对每个EP生成其子节点并更新候选集
最优性验证阶段:
- 当发现有效EP e*时,继续搜索直到确认没有更优解
- 终止条件:剩余候选EP的最小ζ > ζ(e*)
这种批处理方式打破了严格顺序约束,允许同时测试多个EP,同时通过后续验证保证全局最优性。
3.2 复杂度分析
考虑码长N、信息位K、最大测试次数T的设定,各实现的复杂度对比:
| 操作 | 串行SGRAND | 并行SGRAND |
|---|---|---|
| EP选择复杂度 | O(t log t) | O(Pk log |
| 单个ζ计算 | O(N) | O(1)* |
| 码字验证(平均) | O(N) | O(N-K) |
| 空间复杂度 | O(t) | O( |
*:通过树结构的递推关系优化
实际测试表明,在典型URLLC参数(N=128,K=64)下,并行实现可获得3-4倍的延迟降低,而硬件资源消耗仅增加约30%。
4. ORBGRAND的增强设计
4.1 ORBGRAND的局限性
标准ORBGRAND虽然并行效率高,但其性能损失主要来自:
- 仅使用可靠性排序,丢弃了量值信息
- 预定义的EP生成顺序可能不符合实际噪声统计
- 缺乏动态调整机制,难以适应信道变化
4.2 基于EP树的混合方案
我们提出一种两阶段混合算法:
阶段1:快速ORBGRAND
- 执行标准ORBGRAND并行解码
- 如果发现有效码字,记录当前最佳EP e_orb
阶段2:SGRAND精修
- 以e_orb为起点,在EP树上局部搜索
- 使用并行SGRAND验证附近区域
- 确保找到ML最优解
这种设计的关键在于证明了ORBGRAND的EP可以嵌入到EP树中,且其解通常位于ML解的邻近区域。实验显示,精修阶段平均只需额外测试10-15%的EP即可恢复ML性能。
5. 优化技术与实践细节
5.1 动态剪枝策略
在维护候选集Sk时,采用以下剪枝规则:
- 全局剪枝:发现有效EP e后,丢弃所有ζ(e)>ζ(e)的节点
- 局部剪枝:生成子节点时,跳过已知无效的子树
- 早期终止:当剩余候选的最小ζ超过当前最佳解的ζ时立即停止
这些策略可减少30-50%的EP测试次数,而对ML性能零影响。
5.2 硬件友好设计
为便于硬件实现,我们建议:
并行度选择:
- 每轮处理EP数Pk取2的幂次(如4,8,16)
- 根据当前候选集大小动态调整
内存管理:
- 使用双缓冲结构重叠EP生成和测试
- 对大型候选集采用分块存储
计算优化:
- 预计算并缓存常用校验向量H·h_i
- 使用SIMD指令并行计算多个EP的校验和
5.3 参数调优指南
实际部署时需要关注的参数:
最大测试次数T:
- 典型设置为2^(N-K)到2^(N-K+2)
- 可通过离线仿真确定BLER-complexity折中点
并行度Pk:
- 初始轮次取较小值(如P1=4)
- 随轮次增加逐步提升(Pk+1 = min(2Pk, |Sk|))
可靠性计算:
- 对高SNR场景可使用量化LLR(3-4bit)
- 低SNR时应保持全精度计算
6. 性能评估与比较
我们在AWGN信道下对(128,64)扩展BCH码进行了测试:
| 算法 | 平均测试次数 | 延迟(cycles) | BLER@3dB |
|---|---|---|---|
| 串行SGRAND | 412 | 1.0x | 2.1e-5 |
| 并行SGRAND | 438 | 0.25x | 2.1e-5 |
| ORBGRAND | 127 | 0.18x | 8.7e-5 |
| 增强ORBGRAND | 146 | 0.21x | 2.1e-5 |
关键发现:
- 并行SGRAND保持ML性能的同时获得3.96x加速
- 增强ORBGRAND仅增加15%测试次数即弥补性能差距
- 在URLLC目标BLER(<1e-5)下,传统ORBGRAND有显著差距
7. 实际部署考量
在自动驾驶、工业物联网等URLLC场景中应用时:
信道适应性:
- 实时监测信道条件,动态调整EP生成策略
- 高SNR时可降低并行度以节能
- 低SNR时增加测试深度保证可靠性
延迟约束处理:
- 设置超时机制,超时后返回当前最佳解
- 对关键数据包启用备用解码路径
- 实现解码器状态快照,支持中断恢复
硬件实现:
- 建议采用多核DSP或FPGA实现
- 典型资源占用:
- 并行度8时约需50K LUTs
- 片上缓存需求与码长N成正比
- 功耗优化:
- 时钟门控非活跃计算单元
- 采用近似计算处理低重要性路径
在开发过程中,我们遇到的一个典型问题是候选集的内存爆炸——当N较大时,维护完整EP树不现实。解决方案是采用动态深度优先搜索与有限宽度优先搜索的混合策略,将内存占用控制在O(N^2)级别。