LDPC编码技术解析
立即解锁
发布时间: 2025-08-27 01:50:28 阅读量: 6 订阅数: 19 


5G NR技术详解与展望
# LDPC 编码技术解析
## 1. LDPC 解码器复杂度与基础矩阵特性
当基础矩阵中有更多元素为“0”时,LDPC 解码器的复杂度会降低,因为此时无需进行循环移位。对于基础矩阵的任意列,若每列的第一个非 1 元素为“0”,在更新前两列时就能得到原始顺序的系统位。不过,考虑到 LDPC 码的性能和实现复杂度,最终未采用将每列第一个非 1 元素固定为“0”的方案。
## 2. 基础图的打孔方法
打孔一个或几个系统节点能显著提高 LDPC 码的阈值。为提升性能,被打孔的节点应与图的其余部分连接良好。选择打孔的系统节点数量时,需权衡误块率(BLER)性能(即降低阈值)和因添加打孔系统节点导致处理更长码字所需的额外解码器硬件。
系统位对应列权重较大的变量节点不传输,可进一步提升准循环 LDPC(QC - LDPC)码的性能。基础图打孔有以下四种候选方案:
- 不考虑固定打孔。
- 打孔前 Z 个系统位。
- 打孔前 2Z 个系统位。
- 打孔最后 2Z 个系统位。
基于评估性能和矩阵结构设计考虑,为确保校验节点通过与前几个变量节点的全连接实现软信息的流畅传输,系统位矩阵最左列的列权重设计得很大。最终,NR 决定一开始打孔前 2Z 个系统位。
## 3. 提升大小
对于每个基本图,可通过相应的基本矩阵,根据提升值 Z 将每个元素替换为对应的 Z×Z 循环移位矩阵,得到特定的奇偶校验矩阵。通过改变提升大小可支持不同的块大小。提升值还会通过内置并行性影响编码器/解码器的吞吐量和延迟,进而影响 LDPC 的性能和实现。一般来说,较大的移位大小会降低延迟,但也可通过并行处理多个校验/变量节点或使用多个独立解码器等技术进一步降低延迟,因此并非必须支持非常大的移位大小。
NR 考虑从候选集{256, 512, 1024, B320, B384}中选择最大提升值。其中,较大的 Z 值(如 Zmax = 1024)可能导致奇偶校验矩阵(PCM)的行数/列数非常小,从而影响性能。综合考虑吞吐量、延迟、性能和灵活性,NR 最终同意使用 Zmax = 384。
为支持 LDPC 码的灵活块大小,需设计多个提升大小。在选择提升大小的粒度时,不同公司有不同建议:
- 一些公司提议粒度为 1(即 Zmin:1:Zmax)。
- 另一些公司从实现和资源利用角度出发,不建议连续的提升大小,而是建议在最小值和最大值之间以不同粒度提取提升大小,如{1: 1: 8, 8: 1: 16, 16: 2: 32, 32:4:64, 64:8:128, 128:16:256, 256:32:512},提升大小的粒度为 2L(L ≥ 0)。对于较大范围的提升大小,支持的提升大小粒度为 2L(L ≥ 3)。
对于 LDPC 码,若并行性是 2 的幂,例如可使用 Banyan 网络高效实现移位网络。对于分层解码器,当解码器并行性小于 Z 时,提升大小 Z 应等于解码器并行性的整数倍。若 Z 等于 2j(j 为正整数)的素数整数倍,可为并行性选择提供更多正整数因子。最终,NR 确定提升值的格式为 Z = a×2j,其中 a = {2, 3, 5, 7, 9, 11, 13, 15},j = {0, 1, 2, 3, 4, 5, 6, 7}。2j 的值尽可能用 Banyan 网络设计,引入因子 a 可减少填充位的数量。
为实现误块率性能和硬件面积效率的良好权衡,关键是减少解码器必须处理的提升大小 Z 的数量。不同公司提出了以下解决方案:
- 一些公司提议对提升大小进行聚类或分组设计,每组由彼此接近的提升大小组成,使用相同的偏移系数设计。
- 一些公司建议根据 a 的不同值进行分组。在每组中,基于组内最大提升大小 Za,max 设计移位系数,以获得每组的相应移位系数表。组内其他提升大小 Z 的移位系数根据 Pm,n a;Z = Pm,n a modZ 获得,其中 Pa m,n 表示组移位系数表中的(m, n)移位系数。
- 一些公司提议构建基本偏移系数表,不同的提升大小可通过该表的模运算或整除运算得出。
考虑到 BLER 性能和实现,NR 根据 a 的不同值构建了总共八个偏移系数表(iLS = {0, 1, 2, 3, 4, 5, 6, 7})。每个偏移系数表支持的提升大小值如下表所示:
| iLS | 提升大小值 Z |
| --- | --- |
| 0 | {2, 4, 8, 16, 32, 64, 128, 256} (a = 2) |
| 1 | {3, 6, 12, 24, 48, 96, 192, 384} (a = 3) |
| 2 | {5, 10, 20, 40, 80, 160, 320} (a = 5) |
| 3 | {7, 14, 28, 56, 112, 224} (a = 7) |
| 4 | {9, 18, 36, 72, 144, 288} (a = 9) |
| 5 | {11, 22, 44, 88, 176, 352} (a = 11) |
| 6 | {13, 26, 52, 104, 208} (a = 13) |
| 7 | {15, 30, 60, 120, 240} (a = 15) |
在每个偏移系数表中,对应提升大小 Z 的偏移系数根据 Pm,n a;Z = Pm,n a modZ 计算。
## 4. 码块分割和码块循环冗余校验(CRC)附加
### 4.1 最大码块大小
信道编码器输入的最大码块大小 Kmax 是重要的设计参数,影响码块分割和解码器的实现复杂度。LTE 中 Turbo 码的最大码块大小为 6144 位,当码块大小大于 6144 位时进行分割。同样,NR LDPC 码也需定义最大码块大小以进行码块分割。对于 LDPC 码的最大码块大小,不同公司提出了以下设计方案:
- Kmax = 12288 位(即一个 IP 数据包中的位数)。
- 从硬件实现角度看,选择 Kmax = 2n 更合理,建议使用 Kmax = 8192。
- 对于 LDPC 解码器,最大码块大小 Kmax 越大,内存消耗越高。因此建议 LDPC 码的最大码块大小与 LTE Turbo 码相似(即 6144 ≤ Kmax ≤ 8192)。
选择最大码块大小主要考虑性能和实现复杂度。一些公司发现 8K 和 12K 码块大小的性能差异可忽略不计。由于 LDPC 解码器的内存和更新逻辑数量与最大码块大小成正比,最大 12K 码块大小的 LDPC 解码器实现复杂度比最大 8K 码块大小增加 50%。结合基础图设计,NR 最终同意 LDPC 的最大块大小为 Kmax = 84
0
0
复制全文
相关推荐










