技术领域
本发明涉及一种基于DVB-S2标准的LDPC译码器实现方法,属于电子通信领域。
背景技术
基于DVB-S2标准的LDPC码有更大的接入速率、更高的频谱效率、更强的纠错能力,更高的数据传输速率,更高的数据吞吐量。在现有的DVB-S2实现方案中,由于DVB-S2标准的LDPC码码长较长,校验矩阵规模宏大,在高吞吐率要求下,迭代过程中矩阵的调度与存储非常复杂,大量的RAM在读写过程中的冲突不容易避免。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提出了一种基于DVB-S2标准的LDPC译码器实现方法,可以降低实现的复杂度,易于存储与调度迭代过程中的软信息,避免大量的RAM在读写过程中的冲突,同时不会影响译码性能,思路清晰,原理清楚,容易实现。
本发明的技术方案是:对于DVB-S2标准的LDPC码,将校验矩阵H划分为H1与H2两个部分,H1为信息位部分,H2为校验位部分,将H矩阵行变化之后,再将H2进行列变换,这样整个H矩阵都变换为QC矩阵,同时将校验位软信息进行同样的列变化。
具体的,本发明提出的一种基于DVB-S2标准的LDPC译码器实现方法,步骤如下:
(1)将校验矩阵H变换为QC矩阵;
(2)对接收到的译码软信息的校验位部分列变换;
(3)对软信息采用最小和算法进行译码,从而实现基于DVB-S2标准的LDPC译码器。
进一步的,所述步骤(1)将校验矩阵H变换为QC矩阵,具体包括如下步骤:
(1.1)将H矩阵分为两个部分[H1 H2],其中H1为信息位部分,H2为校验位部分,即H1的列宽与信息位长相同,H2的列宽与校验位长相同;将H矩阵划分为m*n的子矩阵,每个子矩阵都为360*360;
(1.2)行变换:将校验矩阵H行变化为:0,q,2q,…359q,1,q+1,2q+1,…,359q+1,…,其中q是与码率、码长相关的参数;
(1.3)列变换:将校验位部分H2的列变化为:
0,q,2q,…,359q,1,q+1,2q+1,…,359q+1。
进一步的,参数q的具体取值如下:
。
进一步的,所述步骤(2)对接收到的译码软信息的校验位部分列变换,具体为:列变换为0,q,2q,…,359q,1,q+1,2q+1,…,359q+1。
进一步的,所述步骤(3)对软信息采用最小和算法进行译码,具体为:
(3.1)初始化:将软信息作为变量节点传给校验节点的初始消息;
(3.2)并行计算校验节点CNPU与变量节点VNPU,计算得到的结果进行存储;
(3.3)重复步骤(3.2)中的并行计算,直到达到设定的迭代次数为止;
(3.4)判决输出:对所有变量节点计算硬判决后输出。
进一步的,所述步骤(3.1)初始化,将软信息作为变量节点传给校验节点的初始消息,具体为:
计算信道传递给变量节点的初始概率似然比消息L(p
L
其中,L(q
进一步的,所述步骤(3.2)并行计算校验节点CNPU与变量节点VNPU,具体为:
计算校验节点CNPU时,对所有的校验节点j和其相邻的变量节点i∈R(j),第l次迭代时,计算变量节点传给校验节点的消息:
其中,α为修正因子,R(j)\i表示除i外与校验节点j相连的变量节点的集合,
对所有的变量节点i和其相邻的校验节点j∈C(i),第l次迭代时,计算校验节点传给变量节点的消息:
其中,C
进一步的,步骤(3.2)计算结果进行存储时,通过两组RAM存储译码过程中的迭代信息,即第一组RAM和第二组RAM,在迭代过程中,计算校验节点CNPU时,从第二组RAM读取数据,计算完毕之后存入第一组RAM中;计算变量节点VNPU时,从第一组RAM读取数据,计算完毕之后存入第二组RAM中,VNPU与CNPU同时计算。
进一步的,步骤(3.4)判决输出的实现方式如下:
对所有变量节点计算硬判决消息:
若L
其中,C
本发明相对于现有技术具有如下优点:
本发明中对校验矩阵H与译码软信息变换之后,H矩阵成为QC矩阵。在译码过程中,由于每个子矩阵皆为循环矩阵,非零的子矩阵中每行或者每列有1~n个‘1’。在迭代过程中,每一个非零的子矩阵都要占用1~n个RAM用来存储迭代过程中软信息,对于循环矩阵,读写RAM时地址是连续的,易于存储与调度,可以避免大量的RAM在读写过程中的冲突。实现过程简单,并且不会影响译码性能。
附图说明
图1为本发明中最小和算法方法流程图;
图2为DVB-S2标准下码长为64800、码率为0.5的LDPC码校验矩阵变换之前的H1矩阵示意图;
图3为变换之前的H2矩阵示意图;
图4为行变换之后的H1矩阵示意图;
图5为行变换之后的H2矩阵示意图;
图6为列变换之后的H2矩阵示意图。
具体实施方式
下面结合附图和具体实施例对本发明作详细介绍。
本发明的具体步骤如下:
(1)对校验矩阵H进行以下操作变换为QC矩阵:
(1.1)将H矩阵分为两个部分[H1 H2],其中H1为信息位部分,H2为校验位部分,即H1的列宽与信息位长相同,H2的列宽与校验位长相同;将H矩阵划分为m*n的子矩阵,每个子矩阵都为360*360;
(1.2)行变换:将校验矩阵H行变化为:0,q,2q,…359q,1,q+1,2q+1,…,359q+1,…,其中q是与码率与码长相关的参数,如下表所示;
(1.3)列变换:将H2的列变化为:0,q,2q,…,359q,1,q+1,2q+1,…,359q+1,q值与(1.2)相同。
(2)对接收到的译码软信息进行以下操作:
(2.1)对软信息的校验部分进行列变换,变换方法与(1.3)一致,这样软信息与校验矩阵位置上对应。
具体为:列变换为0,q,2q,…,359q,1,q+1,2q+1,…,359q+1。
(3)对软信息采用最小和算法进行译码,从而实现基于DVB-S2标准的LDPC译码器,具体如图1所示:
(3.1)初始化。计算信道传递给变量节点的初始概率似然比消息L(p
L
L(q
(3.2)并行计算校验节点(CNPU)与变量节点(VNPU)。计算校验节点CNPU时,对所有的校验节点j和其相邻的变量节点i∈R(j),第l次迭代时,计算变量节点传给校验节点的消息:
其中,α为修正因子,R(j)\i表示除i外与校验节点j相连的变量节点的集合,
对所有的变量节点i和其相邻的校验节点j∈C(i),第l次迭代时,计算校验节点传给变量节点的消息:
C
计算结果进行存储时,通过两组RAM存储译码过程中的迭代信息,即第一组RAM和第二组RAM,在迭代过程中,计算校验节点CNPU时,从第二组RAM读取数据,计算完毕之后存入第一组RAM中;计算变量节点VNPU时,从第一组RAM读取数据,计算完毕之后存入第二组RAM中,VNPU与CNPU同时计算。
(3.3)重复(3.2)iter_max次,迭代结束。
(3.4)对所有变量节点计算硬判决消息:
若L
其中,C
实施例:
设码长N=64800,码率0.5。
(1)对校验矩阵H进行以下操作变换为QC矩阵:
(1.1)将H矩阵(32400*64800)分为两个部分[H1 H2],H1为左边32400*32400,H2为右边32400*32400,图2为H1矩阵,图3为H2矩阵。
将母矩阵H划分为90*180个子矩阵,每个子矩阵大小为360*360,图2~图6中的方格子即为子矩阵划分。
(1.2)行变换:将校验矩阵H行变化为:0,q,2q,…359q,1,q+1,2q+1,…,359q+1,…,其中q=90。行变换之后H1矩阵为图4,H2矩阵为图5。
(1.3)列变换:将H2的列变化为:0,q,2q,…,359q,1,q+1,2q+1,…,359q+1,列变换之后的H2矩阵为图6。图3与图6不一样,变换之后的H2矩阵(图6)为双对角线矩阵,每个子矩阵中每行或者每列只有1个非零值,这与变换之前的(图3)不一致,变换之前每个子矩阵中每行或者每列有2个非零值。
(2)对接收到的译码软信息进行以下操作:
(2.1)将软信息的校验部分列变换,译码器接收到的软信息长度为64800,前32400为信息位,后32400为校验位。变换方法与(1.3)一致,这样软信息与校验矩阵位置上对应。
(3)采用最小和算法进行译码,迭代次数iter_max选取32。
本发明对校验矩阵与接收软信息的变换是等价变换,不会对性能造成任何影响。本发明的方法通过等价变换将H矩阵变换为QC矩阵,降低实现的复杂度,可以避免大量的RAM在读写过程中的冲突。
本发明未详细说明部分属本领域技术人员公知技术。
机译: 用小型转轮玩基于转轮的游戏的电子设备本发明是一种体现具有多个转轮和多个迷你转轮的基于转轮的游戏的设备。迷你卷筒替代多个卷筒中的一个或多个,或者可以替换卷筒的一个或多个符号承载位置。多个迷你转盘的附加功能可以通过用覆盖所有基于迷你转盘的结果的支付线组替换与转盘或转盘位置相关联的标准支付线来实现更大数量的符号组合和获胜结果。
机译: 一种实现可编程LDPC解码器系统的方法
机译: 通信控制设备和控制通信控制设备的方法,用于基于表示三种类型的非标准通信中的每一种是否可能的非标准通信信息来确定是否可以进行非标准通信