首页 > 技术 > 内容

如何采用FPGA自行设计一款LDPC编解码器呢

时间:2025-12-01  作者:Diven  阅读:0

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图进一步图形化表示,Tanner图是LDPC码最常见的图形表示。提供了代码的完整表示,并有助于描述解码算法。Tanner图是二分图,即有两种不相交的节点集。这两种变量节点(VND)和校验节点(CND)。VND表示码字bit,矩阵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×2的基图矩阵u和提升因子Z=3。从u到H的变换可以这样进行:


 

LDPC码通常由PC矩阵确定。本文给出了一个QC-LDPC码的PC矩阵,是一组相同大小的稀疏循环矩阵。循环矩阵是一个方阵,其中每一行是其上一行的循环移位,第一行是最后一行的循环移位。对于循环矩阵,每一列是左列向右的循环移位,第一列是最后一列的循环移位。循环矩阵的行重和列重是相同的。如果行/列权重等于1,那么循环矩阵也是一个置换矩阵。循环矩阵的第一行(或第一列)是其完整的特征,称为循环矩阵的生成器。对于一个在GF(2)域的m×m的循环矩阵A,如果秩为r=m,那么所有的行都是线性无关的。如果秩r

一个LDPC码通过PC矩阵H定义。对于每个码字v,可以表示为HvT=0。另一方面,一个非码字(损坏码字),将产生一个非零向量。在数学上,一个LDPC码是PC矩阵H的零空间。一个规则的LDPC块码(dv,dc)有VND度dv和CND度dc,度等于H的列(或行)重。PC矩阵表示一个线性方程组,其中每一行都可以由CND的线性组合表示。任何由H生成的行空间张成的向量集合都可以作为PC矩阵的行。一个节点的度是Tanner图中连接到边(线)的数量。

LDPC码的译码算法是独立发现的,有不同的名称。最常见的是BP算法、消息传递算法(MPA)和和积算法。在BP算法中,概率消息在变量和检查节点之间迭代交换,直到找到有效码字或超过最大迭代次数。LDPC码可以使用消息传递或二分Tanner图上的BP进行解码,CND和VND相互通信,在每次解码迭代中依次传递相关LLR的修正估计。Bit的可靠性度量被定义为:LLR(bi)=log(bi=0)-log(bi=1)。

其中,bi 代表接收码字的第i比特。如果LLR>0,意味着更有可能bi=0,当LLR<0,意味着更有可能bi=1。

举个例子,假设发射的码字(0,0,0,0,0,0,0,0,0,0,0),译码器接收到的码字为(0,0,0,0,1,0,0,0,0,0,0)。11bit有效码字c=(c0,c1..,c10),所有比特应该等于0(mod 2)。接收向量不满足此约束,表明接收码字出现了错误。进一步,假设解码器具有比特级可靠性度量,其形式为正确概率(接收值的置信度)为(0.9,0.8,0.86,0.7,0.55,1,1,0.8,0.98,0.68,0.99)。这些软信息中,比特c4可靠性最低,应翻转以带来符合代码约束的接收码字。使用LLR作为消息,与消息传递算法相比,硬件实现变得容易得多。通过简化消息传递算法中最复杂的CND更新过程,进一步降低了实现的复杂性。这种算法被称为最小和算法(min-sum algorithm)。

LDPC解码器可以使用串行、并行或部分并行架构来实现。LDPC解码器的性能取决于解码器的算法、架构、LLR的定点量化和最大译码迭代次数等因素。译码过程中使用的最大译码迭代次数决定了LDPC译码器的数据速率和延迟。在执行最大译码迭代次数之后,然后估计码字。为了节省解码器功耗和减少延迟,需要在每次迭代后验证码字,并在估计的码字正确时停止解码过程的解码器设计。如果在下次迭代开始时,估计码字奇偶校验得到满足,则译码过程停止。

LDPC码与常见的几种纠错码相比,其性能有较大优势,因而可满足5G高数据率、低延时和高可靠等应用需求。


 

LDPC码与其纠错码性能对比

上面介绍了LDPC码的基本原理,重点把握几个概念:

什么是变量节点?

什么是校验节点?

校验矩阵H与Tanner图之间的相互转换过程。

QC-LDPC码的基本特点是什么?

LLR的具体求解方法。

LDPC译码算法有哪些?译码算法各自的特点,以及硬件实现复杂度评估。

影响LDPC译码性能的几个关键因素是什么?

如何有效提升LDPC译码性能?(BLER、吞吐率)

对于LDPC码在DVB-S2、WLAN和5G NR中的具体应用,其码率和码块长度有所不同。特别是在5G NR中,将支持低至1/5、高至8/9的多种码率,在Sub-6GHz频段100M带宽下,下行需满足1~3Gbps、上行几百Mbps~Gbps的数据速率需求。而在毫米波频段,需要更高的吞吐率需求。

关于LDPC译码算法,可阅读前期文章《5G通信算法:LDPC译码算法详解》。

从通信系统角度看,除高速接口外,基带的信道编解码器和射频前端的AD/DA的设计,是最难的部分,然而这在很大程度上决定一款产品的竞争力。当然,各种滤波器、功放、MIMO估计与均衡器,也是影响性能的重要部件。
那么,我们该如何采用FPGA自行设计一款LDPC编解码器呢?在设计之前,我们需要基于某一标准或自定义LDPC码,完成相应的算法分析和资源评估,同时对其中的关键模块要有相应的实现方案。在具体设计实现时,RTL模块设计高内聚、低耦合,同时参数和控制逻辑应友好灵活,并以较少的资源实现整个功能,并尽可能提升时钟运行频率。
审核编辑:刘清

猜您喜欢


现代电子设备中,连接器扮演着非常重要的角色。CONN_30.8X12.5MM_TM是近年来备受关注的一款连接器,其独特的设计和卓越的性能使其在多种应用场景中表现...
2025-03-09 21:00:41
薄膜电阻作为电子元器件中的重要组成部分,应用于各种电子设备中。TOKEN(德键)作为国内知名的薄膜电阻品牌,很好的产品性能和稳定的品质,赢得了市场的认可。本文将...
2019-10-18 00:14:27
2017-01-31 00:00:00
触发二极管,又称为可控硅,是重要的半导体器件,应用于多个领域。在电力电子领域,触发二极管被用于整流、调速和功率控制,能够有效地调节电流和电压,确保设备的稳定运行...
2009-12-18 00:00:00
加热器作为重要的设备,应用于多个领域。在家庭中,电热水器和暖气设备是冬季取暖和热水供应的主要选择,提升了人们的生活舒适度。在工业领域,加热器用于金属加工、化工生...
2016-06-21 00:00:00
1 DDS概述1.1 DDS基本原理直接数字合成技术(Direet Digital Synthesis,简称DDS)是建立在采样定理基础上,首先对需要产生的...
2019-05-12 09:41:00
测距仪是高效、精确的测量工具,应用于建筑、工程、测绘等领域。其主要优势体现在以下几个方面:测距仪具有高精度的测量能力,能够快速获取距离数据,减少人工测量的误差。...
2020-08-04 00:00:00
当今数字化时代,双倍数据速率(DDR)电路设计被应用于计算机硬件和电子设备中,以满足不断增长的数据处理需求。DDR电路设计的出现,为系统性能的提升带来了革命性的...
2024-11-13 00:00:00
当今社会,住房不仅是人们生活的基本需求,更是反映一个国家经济发展、文化背景和人民生活水平的重要标志。随着城市化进程的加快,各类住房形式不断涌现,满足了不同人群的...
2025-04-26 19:00:03
描述在没有内存事务处理执行以及如果接收到内存请求重启时钟时,用户可通过编程 LPDDR2 控制器来停止 DRAM 时钟。当事务处理队列为空时,该控制器会适当...
2018-06-23 08:53:00