LDPC 码编码器原理
LDPC 码的编码通常非常复杂,其复杂度与码长的平方成正比,因为稀疏的奇偶校验矩阵 H 一般都对应着一个密集的生成矩阵 G。但深入研究 DVB-S2 标准中LDPC 码的码字构造方法,得知 DVB-S2 采用的 LDPC 码实际上是 e IRA 码,它的优点是直接用校验矩阵编码,具有线性编码复杂度,且适合于高码率。H 矩阵包含两部分如形式:H=[H1 H2],1TH 是一个稀疏的矩阵,标准中给出了1TH 矩阵中 1的详细位置。H2是一个满秩的下三角矩阵,即为一个简单的累加器。
通过对 DVB-S2 标准中 LDPC 码的 Tanner 图的分析,其编码可以通过两步来
实现。首先,BCH 码的编码输出 d 乘以稀疏矩阵1TH ,生成中间结果 p′ 完成信息
位的重复编码,再通过置换矩阵完成位置置换实现了对校验位的贡献。接下来,对中间结果进行微分编码得到奇偶校验位.最后,奇偶校验位和信息位组成系统码的码字 c=[d p]。需要指出的是,对于每一种码长和码率,标准都规定了特定的稀疏矩阵1TH ,并在对应的附表中列出了 H1的地址。 由以上分析可得到 DVB-S2 中 e IRA 码所采用的编码器的结构如图 3-3 所示,
其中 1/(1+D)环节是以它为传递函数的微分编码器。由此可见,DVB-S2 中 e IRA 码
所采用的编码器结构简单,且具有较低的编码复杂度。
编码器参数动态设S是整个编码器的控制信号,通过向数字锁相环和 LDPC 码编码器发送动态信息参数控制它们的工作。数字锁相环是
编码器的输出时钟产生设备,通过接收编码器参数动态设S模块送出的动态信息
参数 pll_para 和晶振产生的时钟 clk,产生输出时钟 clk_out,作为编码器的码字输
出时钟。LDPC 码编码器则完成被选定的码长和码率 LDPC 码的编码工作。
设计LDPC码通用编码器的主要目的是,为了适应多码率多调制制式的要求,能够灵活地根据当前需要选择编码器码字的码率,生成相应码率的码字。因此编码器由三个模块组成:编码器参数动态设S模块、LDPC码编码器模块(码长和码率固定)和FPGA控制的PLL (数字锁相环)部分。
LDPC码编码器采用充分并行和流水线技术,根据自上而下的设计思路,首先确定整个模块的输入和输出,每个时钟的输入为送入编码器的信息位和参数设S模块送入的动态信息参数,输出为编码器生成的码字。对于输入的信号,首先送入到控制子模块,产生LDPC码编码器的各子模块的控制信号,控制信号通过控制校验位地址产生子模块和校验位生成子模块完成信息位的并行处理,将生成的校验位传输给输出子模块。输出子模块通过识别控制子模块送入的控制信号,将码字连续输出。
LDPC译码是一个迭代过程,每次迭代中庞大的数据处理量、存储量和互联要求对译码器实现是一个巨大的挑战,因此为实现这些码的出色性能,要求对硬件实现进行认真规划。重点研究译码算法中采用的不同的量化比特数和迭代次数对译码性能的影响,利用优化算法极大地简化了面向低实现复杂度的高层次设计。
LDPC的译码算法采用乘性修正最小和(NSMA).该算法的优点是实现简单.性能接近于最佳的和积算法(SuBfProductAlgorithm. SPA),相比于SPA算法,该算法的最大特点是无需信噪比估计。
好的信道编码使得编码后的码字序列具有较强的纠错能力,为有效的抗信道噪声提供了可能。译码则是将这种可能转化为现实的过程,译码算法的优劣决定了能否最大程度的发挥码本身具备的这种纠错潜力。尤其是在长码的条件下,译码算法的复杂度决定了工程实现的可行性。LDPC 码得以迅速发展的原因不仅在于其优异的性能,还在于其校验矩阵是稀疏的,且可实现完全的并行操作,适合硬件实现,具有高速译码的潜力。校验矩阵稀疏性的另一个好处是,在码长较长时,相距很远的信息比特可能参与同一校验,使得连续的突发差错对译码的影响不大,因此码本身就具有抗突发差错的特性,从而无需在编码段引入交织器,没有因交织器的存在而带来的编码时延。
但现有的 LDPC 码译码算法还存在着复杂度高或者译码性能较差的问题,针对上述问题,本章设计了一种基于低复杂度的译码算法,该方法能够有效降低LDPC 码译码的复杂度,同时译码性能损失较小。
常见硬判决译码算法及其存在的缺点如下:
1. 比特翻转算法(BF):这种算法只有模二的加法和比较大小的运算,因此译码速度较快。但是译码性能较差,因为每次迭代译码选择更新变量节点的最大节点进行翻转,若同时有好几个这种节点,就可能使迭代进入一个循环,不能正确译码。
2. 加权的比特翻转算法(WBF):这种算法要比特翻转算法增加运算量,因为它需要更多的加法和比较大小的运算,所以相对比特翻转算法具有较好的译码性能。但由于 WBF 算法翻转最大的那个变量节点,所以每次迭代译码的过程中,要翻转的变量节点通常只有一个,收敛速度就变的较慢,而且迭代也会进入循环状态,导致不能正确译码。 与硬判决算法相比,软判决译码算法则不需要每次迭代译码时选择更新变量节点的最大节点进行翻转,而是在每一轮迭代中,对码字中各个比特关于接收码字和信道参数的后验概率进行估算,整个迭代过程是由校验矩阵决定的二分图上进行的消息传递。因此,软判决译码在性能上远优于硬判决译码,已成为信道编码领域研究的热点。