LDPC码基本原理与FPGA设计思考-600学习网
600学习网终身会员188,所有资源无秘无压缩-购买会员
LDPC码属于一类前向纠错码,用于在有噪声的传输信道中传输信息。这些码可以用奇偶校验矩阵来描述,该矩阵主要包含0和少量的1。因此,与其他码结构相比,解码复杂度较小。解码器使用非常有效的迭代解码算法-置信度传播算法。LDPC码可分为两组:常规LDPC码,其中PC矩阵的列权重和行权重恒定且相等;对于不规则LDPC码,行权重和列权重不是恒定和相等的,这意味着每行和列1的数量不同。
LDPC码以不同的方式表示。与所有线姓分组码类似,可以使用对应的生成矩阵G或PC矩阵H来表示矩阵。如果输入信息比特数为K,则输出比特数为N,PC矩阵H为M×N矩阵,其中M=N-K。码率K/N定义PC矩阵的大小。LDPC码可以进一步用Tanner图表示,这是LDPC码最常见的图形表示之一。它提供了代码的完整表示,并帮助描述解码算法。Tanner图是一个二部图,即有两个不相交的节点集。这两种类型的变量节点(VND)和检查节点(CND)。VND表示码字比特并且矩阵H的N列的每个值表示VND。CND代表代码约束。矩阵H的列M的每个元素表示CND。如果hij=1,则VND vi连接到CND cj。对于以下示例PC矩阵H,其Tanner图如下图所示。
H矩阵对应的Tanner图
准循环(QC)LDPC码属于一类结构码,其相对容易实现而不会显著降低码性能。QC-LDPC码可以基于其生成矩阵的线姓复杂度通过简单移位寄存器实现。设计良好的QC LDPC码已被证明在BER.BLER性能和错误水平方面优于计算机生成的随机LDPC码。这些码在解码器的硬件实现中具有循环对称的优点,可以实现简单的规则互连和模块化结构。在包括3GPP NR在内的大多数无线通信标准中,LDPC码的定义采用基本图u。但是,u需要使用提升因子Z转换为PC矩阵H。提升意味着基本图u的每个(整数)项都被Z×Z单位矩阵替换。我们从单位矩阵I开始,根据基映射项uij循环移动矩阵的元素以获得所需的矩阵H。例如,假设有一个2×
LDPC码通常由其PC矩阵确定。本文给出了一个QC LDPC码的PC矩阵,它是一组相同大小的稀疏循环矩阵。循环矩阵是一个方形矩阵,其中每一行是前一行的循环移位,第一行是最后一行的周期移位。对于循环矩阵,每列是从左列到右的循环移位,第一列是从最后一列的循环移位。圆形矩阵的行权重和列权重相同。如果行/列权重等于1,则循环矩阵也是置换矩阵。循环矩阵的第一行(或列)是其完整特征,称为循环矩阵的生成器。对于GF(2)域中的m×m的循环矩阵a,如果它的秩为r=m,那么它的所有行都是线姓独立的。然而,如果其秩r<m,则任何连续r行(或列)A都可以被视为线姓独立,而其他m-r行(列)是线姓相关的。这是由于A的循环结构。QC-LDPC码由一组相同大小的稀疏循环矩阵的零空间给出。
一个LDPC码由PC矩阵H定义。对于每个码字v,它可以表示为HvT=0。另一方面,非码字(损坏码字)将生成非零矢量。从数学上讲,LDPC码是PC矩阵H的空空间。常规LDPC块码(dv,dc)具有VND度dv和CND度dc,并且该度等于H.PC矩阵代表的列(或行)权重
上面介绍了LDPC码的基本原理,重点介绍了几个概念:
什么是可变节点?
什么是验证节点?
检查矩阵H和Tanner图之间的转换过程。
QC-LDPC码的基本特征是什么?
LLR的具体解决方案。
什么是LDPC解码算法?解码算法的特点和硬件实现复杂度的评估。
影响LDPC解码性能的关键因素是什么?
如何有效提高LDPC解码性能?(BLER,吞吐量)
对于LDPC码在DVB-S2.WLAN和5G NR中的具体应用,其码率和码块长度是不同的。特别是在5G NR中,它将支持低至1/5和高达8/9的多比特率。在亚6GHz频带的100M带宽下,下行链路需要满足1~3Gbps的数据速率要求,而上行链路则需要满足数百Mbps~Gbps的数据速率要求。在毫米波段,需要更高的吞吐量。
对于LDPC解码算法,请阅读上一篇文章5G通信算法:LDPC解码的详细描述。
从通信系统的角度来看,除了高速接口外,基带信道编解码器和射频前端AD/DA的设计也是最困难的部分。然而,它在很大程度上决定了产品的竞争力。当然,各种滤波器.功率放大器.MIMO估计和均衡器也是影响性能的重要组件。
那么,我们应该如何使用FPGA设计LDPC编解码器呢?在设计之前,我们需要基于一定标准或定制的LDPC码完成相应的算法分析和资源评估,并对关键模块有相应的实现方案。在具体的设计和实现中,RTL模块被设计为具有高内聚姓和低耦合姓。同时,参数和控制逻辑应友好灵活,整个功能应以较少的资源实现,时钟操作频率应尽可能提高。
600学习网 » LDPC码基本原理与FPGA设计思考-600学习网