1. GRAND与GCD解码算法概述
在5G/6G超可靠低时延通信(URLLC)场景中,短码解码技术面临严峻挑战。传统解码算法如Viterbi或BCJR虽然性能优异,但其复杂度随码长指数增长,难以满足短码场景的实时性要求。GRAND(Guessing Random Additive Noise Decoding)和GCD(Guessing Codeword Decoding)作为两种创新的通用解码框架,通过"猜测-验证"机制实现了接近最大似然(ML)的性能,同时保持可接受的复杂度。
GRAND的核心思想是直接猜测信道引入的噪声模式。算法按照噪声模式的似然度降序生成候选,通过简单的奇偶校验验证其有效性。这种方法的优势在于:
- 完全通用:不依赖特定码结构
- 并行友好:每个猜测可独立验证
- 早期终止:首个有效候选即为ML解
GCD则采用相反的思路:猜测信息位并重新编码生成候选码字。其关键特点包括:
- 部分搜索:仅对k位信息位进行猜测
- 保证有效:通过系统编码确保所有候选都是合法码字
- 动态停止:基于软权重比较提前终止搜索
实际工程中,GRAND更适合高码率(r>0.7)场景,而GCD在低码率(r<0.3)时优势明显。对于中等码率,有序统计解码(OSD)可能是更平衡的选择。
2. 算法实现细节与核心原理
2.1 GRAND实现架构
GRAND的标准实现包含三个关键模块:
-
模式生成器 :按软权重升序产生噪声模式
- 软权重计算:Γ_S(e)=Σ|λ_i|·e_i
- 树状枚举:基于LLR构建翻转模式树(FPT)
- ORB优化:用整数排名近似软权重,提升硬件效率
-
校验模块 :
def parity_check(e, H, syndrome): return (np.dot(e, H.T) % 2) == syndrome -
终止控制器 :
- 基础版:首个通过校验的模式
- 增强版:结合CRC等附加校验
2.2 GCD实现架构
GCD的典型实现流程:
-
系统化处理 :
- 通过高斯消元将H转化为[P|I]形式
- 对应划分接收向量为信息段和校验段
-
模式生成 :
function e_I = generate_patterns(LLRs, k) [~, idx] = sort(LLRs(1:k), 'descend'); for w = 0:k for subset = nchoosek(idx, w)' e_I = zeros(1,k); e_I(subset) = 1; yield e_I; end end end -
重编码验证 :
- e_P = s - e_I·P^T
- 候选码字v = z ⊕ (e_I,e_P)
2.3 ML最优性证明
定理1 :当模式按软权重升序生成时,GRAND和GCD都具有ML最优性。
证明要点:
- 定义码字似然PY|X(y|x)∝exp(-Γ_S(e))
- GRAND首个有效候选满足: ∀j<i, e_jH^T ≠ s e_iH^T = s ⇒ Γ_S(e_i)最小
- GCD通过保持当前最优候选的软权重不大于后续候选的预估权重保证最优性
3. 复杂度分析与优化技术
3.1 查询次数建模
GRAND的平均查询次数可用鞍点近似: E[L_GRAND] ≈ 2^{n-k}·ε_RCU
GCD的查询次数上界: E[L_GCD] ≤ Σ_{w=0}^k C(k,w)·P(Γ_S(e_I)≤γ)
其中ε_RCU为随机编码联合界,γ为信道相关阈值。
3.2 硬件优化策略
GRAND专用架构 :
-
ORBGRAND的整数调度器
- 采用优先级队列管理模式生成
- 40nm CMOS实现0.76pJ/bit能效
-
并行校验引擎
- 128位SIMD实现10Gbps吞吐
GCD加速技术 :
-
部分约束预筛选
module precheck( input [127:0] e_I, output valid ); assign valid = ^(e_I & 8'h55); // 示例约束 endmodule -
重编码流水线
- 采用Brent-Kung加法树减少延迟
3.3 混合解码方案
实际系统可采用自适应架构:
| 码率范围 | 首选算法 | 备选方案 |
|---|---|---|
| r > 0.7 | GRAND | OSD(阶数1) |
| 0.3 ≤ r ≤ 0.7 | OSD(阶数2) | GCD |
| r < 0.3 | GCD | SCL-Polar |
4. 性能比较与实测数据
4.1 解码成功率对比
在AWGN信道下对(128,106)码的测试结果:
| SNR(dB) | GRAND FER | GCD FER | ML界 |
|---|---|---|---|
| 5.0 | 3.2e-4 | 6.7e-4 | 2.8e-4 |
| 6.0 | 1.1e-5 | 2.4e-5 | 9.8e-6 |
| 7.0 | 2.3e-7 | 5.1e-7 | 1.9e-7 |
4.2 实时性能指标
在Xilinx UltraScale+ FPGA上的实现结果:
| 指标 | GRAND | GCD |
|---|---|---|
| 时钟频率(MHz) | 450 | 380 |
| 吞吐量(Gbps) | 6.8 | 5.2 |
| 查找表用量(K) | 78 | 112 |
| 功耗(W) | 3.2 | 4.1 |
5. 工程实践建议
-
LLR量化策略 :
- GRAND建议4-5bit均匀量化
- GCD可采用非线性量化(高SNR区更密)
-
早期终止优化 :
// GCD动态停止条件示例 if(current_best.weight < e_I.weight + tau) { break; // tau为(17)式计算的门限 } -
故障恢复机制 :
- 设置超时阈值(如1μs)
- 备选方案:切换至低复杂度算法如SCL
-
测试验证方法 :
- 黄金参考:采用全搜索ML解码器
-
压力测试:重点考察以下场景:
- 最低工作SNR点
- 突发错误模式
- 时钟抖动边界条件
在实际部署中发现,采用ORBGRAND-AI改进的GCD算法能将(128,64)码的解码延迟降低40%,同时保持FER性能损失小于0.2dB。这种技术迁移正是GRAND与GCD协同发展的典型案例。

351


被折叠的 条评论
为什么被折叠?



