![一种最小和算法校验节点模块及更新方法与流程](https://img.xjishu.com/img/zl/2022/11/1/hjl6zoywo.jpg)
1.本发明涉及无线通信和数字信号处理领域,具体涉及差错控制编码设计中的一种最小和译码算法校验节点更新优化的方法。
背景技术:2.和积译码算法(sum-product algorithm,spa)是一种基于置信度传播的迭代译码算法(iterative decoding algorithm based on belief propagation,idbp),通过贝叶斯准则获得近似最大后验概率译码,该算法对于ldpc译码特别有效。
3.令ldpc码的校验矩阵为h,定义下列符号:
4.表示与第i个变量节点有关联的校验节点的集合,实际上也是h中第i列中1的位置的集合。
5.表示h中第i列中除去位置j的所有1元素的位置集合。
6.表示第j个校验节点有关联的变量节点的集合,实际上也是h中第j行中1的位置的集合。
7.表示h中第j行中除去位置i的所有1元素的位置集合。
8.定义对数似然比(llr):
[0009][0010]
其中c为外信息节点,g为变量节点,h为校验节点,q为合节点。那么ldpc码的和积算法译码过程如下:
[0011]
(1)初始化:根据上述定义,初始化变为:
[0012]
l(g
ij
)=l(ci)=2yi/σ2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0013]
(2)迭代消息传递和更新:
[0014]
第一步(校验节点更新):对每个校验节点,计算
[0015][0016]
在式(2)中有大量的浮点数连乘,为简化上述运算,将l(g
ij
)改写为两个数组的乘积l(g
ij
)=α
ij
β
ij
,其中
[0017]
α
ij
=sign(l(g
ij
)),β
ij
=|l(g
ij
)|
[0018]
则
[0019]
[0020]
其中
[0021][0022]
第二步(变量节点更新):对每个变量节点,计算
[0023][0024]
根据上式计算合节点
[0025][0026]
第三步(判决):对有
[0027][0028]
(3)译码尝试:
[0029]
如果在这个过程中有或者已经迭代的次数达到了我们提前在系统中设定的最大值,译码结束迭代停止;否则跳回到步骤(2)。
[0030]
和积算法中存在着大量的概率乘法、双曲正切函数和它的反函数运算,计算复杂度偏高,其硬件fpga实现非常困难。因此,实现中一般采用和积算法的简化形式最小和算法(min-sum algorithm,msa)。
[0031]
考虑式(2)、(3)、(4)的校验节点更新规则,并注意到f(x)具有的性质f-1
=f,有
[0032][0033]
那么
[0034][0035]
这样,式(3)可以由代替,就得到了最小和算法。
[0036]
虽然现有的译码方法对于ldpc具有较好的效能,但传统的实现方法仍存在如下缺陷:
[0037]
1.在对n个校验节点更新寻找第j行的最小元素时,传统方法是先比较第j行前两个元素,得到一个较小的元素再与第三个元素比较得到一个较小的元素,再与第四个元素比较,以此类推遍历所有第j行的元素,得到第j行的最小元素,在实现时共需n-1个时钟。而当h中第j行中1元素较多时,采用这种方法会带来较大的时延,导致译码器的吞吐量降低。
[0038]
2.在得到最小元素后,还需要寻找第j行除去最小元素后剩余集合中的最小元素,
即次小元素,将次小元素值更新到最小元素的位置。传统方法是在去除第j行的最小元素后,再进行一次上述寻找最小值的遍历过程,在实现时共需n-2个时钟;而当h中第j行中1元素较多时,采用这种方法会进一步增加译码时延,导致译码器的吞吐量进一步降低。
技术实现要素:[0039]
为了克服现有技术的不足,本发明提供一种最小和算法校验节点模块及更新方法,采用二叉比较的方法,优化寻找最小元素的过程,同时融入寻找次小元素的过程,通过一次遍历即可完成最小元素和次小元素的搜寻。相比于将传统最小和算法中的校验节点更新过程,本发明可以有效的降低译码时延,提高译码器的吞吐量。
[0040]
本发明解决其技术问题所采用的技术方案是:
[0041]
一种最小和算法校验节点模块,包括变量节点存储模块、节点符号计算模块、最小值及次小值搜索模块和校验节点更新与输出模块;
[0042]
变量节点存储模块计算接收并存储本次计算需要的变量节点软信息,将其中的绝对值传递给最小值及次小值搜索模块,将符号传递给节点符号计算模块;
[0043]
节点符号计算模块计算本次校验节点更新的每个节点的符号信息,将计算得到的符号信息传递给校验节点更新与输出模块;
[0044]
最小值及次小值搜索模块寻找本次校验节点更新中的最小值minβ和次小值subminβ,并得到最小值的位置信息,将得到的结果输出给校验节点更新与输出模块;
[0045]
校验节点更新与输出模块进行本次校验节点更新,具体为将最小值位置节点更新为次小值subminβ,其余节点更新为最小值minβ,并更新每个校验节点的符号信息,将计算的软信息结果输出至后续译码步骤。
[0046]
本发明还提供一种最小和算法校验节点模块的更新方法,具体步骤为:
[0047]
(1)初始数据存储;
[0048]
变量节点存储模块接收本次需要计算的变量节点信息l(g),将所有符号信息α发送到节点符号计算模块,将所有信息的绝对值β发送到最小值及次小值搜索模块;
[0049]
(2)更新符号信息;
[0050]
在节点符号计算模块中,通过公式计算每个校验节点更新后的符号信息并将结果传递到校验节点更新与输出模块;
[0051]
(3)搜索最小值及次小值;
[0052]
在最小值及次小值搜索模块中,寻找本次校验节点更新中的最小值minβ和次小值subminβ,并得到最小值的位置信息,进行信息更新后,将最小值minβ及其位置信息、次小值subminβ传递到校验节点更新与输出模块;
[0053]
(4)校验节点更新与输出;
[0054]
更新每个校验节点的符号信息,将最小值位置的节点信息更新为次小值subminβ,其余节点得信息更新为最小值minβ,完成本次更新并输出。
[0055]
所述信息更新的步骤如下:
[0056]
a.令校验方程的元素个数为n,即本次更新需要在n个元素β1,β2,...βn中搜索最小值和次小值;
[0057]
b.将n个元素按顺序每两个分为一组,即(β1,β2),(β3,β4),
……
,共有n/2组,如果元素个数为奇数,则最后一组为一个元素;
[0058]
c.采用二叉比较法,得到每组元素中的较小值和较大值,保存每个较小值的位置信息;下一轮比较将每组元素的较小值继续按每两个元素一组得到较小值和较大值,保存每个较小值的位置信息,同时将上轮比较得到的较大值按每两个元素一组得到较小值;重复比较步骤次,将得到一个最小值minβ、最小值的位置信息以及一个次小值subminβ;
[0059]
d.将最小值minβ及其位置信息、次小值subminβ传递到校验节点更新与输出模块。
[0060]
本发明的有益效果在于基于二叉比较的方法对最小和算法校验节点更新算法进行优化,相比于传统最小和算法中的校验节点更新算法,本发明可以有效的降低译码时延,提高译码器的吞吐量,从而为ldpc码在高速通信系统中的应用奠定了基础。
附图说明
[0061]
图1为本发明最小和算法校验节点更新模块结构图。
[0062]
图2为本发明采用(4064,3048)ldpc码最小和算法校验节点更新模块的搜索最小值及次小值过程图。
具体实施方式
[0063]
下面结合附图和实施例对本发明进一步说明。
[0064]
本发明解决其技术问题所采用的技术方案及步骤包括:
[0065]
1.本发明采用的最小和算法校验节点更新模块包括以下部分:
[0066]
(1)变量节点存储模块,负责计算接收并存储本次计算需要的变量节点软信息;
[0067]
(2)节点符号计算模块,负责计算本次校验节点更新的每个节点的符号值;
[0068]
(3)最小值及次小值搜索模块,负责寻找本次校验节点更新中的最小值minβ和次小值subminβ,并得到最小值的位置信息,将得到的结果输出给校验节点更新与输出模块;
[0069]
(4)校验节点更新与输出模块,负责进行本次校验节点更新,并将计算结果输出至后续译码步骤;
[0070]
2.本发明采用的最小和算法校验节点更新模块的更新优化的工作流程包括以下步骤:
[0071]
(1)初始数据存储。变量节点存储模块接收本次需要计算的变量节点信息l(g),将所有符号信息α发送到节点符号计算模块,将所有信息的绝对值β发到最小值及次小值搜索模块;
[0072]
(2)更新符号信息。在节点符号计算模块中计算公式(3)中的前半部分得到每个校验节点更新后的符号
[0073]
(3)搜索最小值及次小值。在最小值及次小值搜索模块中寻找本次校验节点更新
中的最小值minβ和次小值subminβ,并得到最小值的位置信息,具体步骤如下:
[0074]
a.令校验方程的元素个数为n,即本次更新需要在n个元素β
1,2,
…
,n
中搜索最小值和次小值;
[0075]
b.将n个元素按顺序每两个分为一组,即(β1,β2),(β3,β4),
……
,共有n/2组,如果元素个数为奇数,则最后一组为一个元素;
[0076]
c.采用二叉比较法,得到每组元素中的较小值和较大值,保存每个较小值的位置信息;下一轮比较将每组元素的较小值继续按每两个元素一组得到较小值和较大值,保存每个较小值的位置信息,同时将上轮比较得到的较大值按每两个元素一组得到较小值。重复上述比较步骤次,将得到一个最小值minβ,最小值的位置信息以及一个次小值subminβ;
[0077]
d.将最小值minβ及其位置信息、次小值subminβ传递到校验节点更新与输出模块;
[0078]
(4)校验节点更新与输出。更新每个校验节点的符号信息;将最小值位置节点更新为次小值subminβ在,其余节点更新为最小值minβ,完成本次更新并输出。
[0079]
本发明降低了最小和算法校验节点更新处理的时延,可提升了最小和算法译码器的吞吐量,解决了高速通信系统接收机中译码器吞吐量不足的问题,可直接应用于现有的高速通信系统。
[0080]
本发明的实施例采用(4064,3048)ldpc码,校验矩阵最大行重为14,包括以下步骤:
[0081]
1.本发明采用的最小和算法校验节点更新模块包括以下部分:
[0082]
(1)变量节点存储模块。本模块负责计算接收并存储本次计算需要的变量节点软信息;
[0083]
(2)节点符号计算模块。本模块负责计算本次校验节点更新的每个节点的符号值;
[0084]
(3)最小值及次小值搜索模块。本模块负责寻找本次校验节点更新中的最小值minβ和次小值subminβ,并得到最小值的位置信息,将得到的结果输出给校验节点更新与输出模块;
[0085]
(4)校验节点更新与输出模块。本模块负责进行本次校验节点更新,并将计算结果输出至后续译码步骤;
[0086]
2.本发明采用的最小和算法校验节点更新模块的工作流程包括以下步骤:
[0087]
(1)初始数据存储。校验节点存储模块接收本次需要计算的变量节点信息l(g1),l(g2),
…
,l(g
14
),将所有符号信息发送到节点符号计算模块,将所有信息的绝对值发到最小值及次小值搜索模块;
[0088]
(2)更新符号信息。在节点符号计算模块中计算公式(3)中的前半部分得到每个校验节点更新后的符号
[0089]
(3)搜索最小值及次小值。在最小值及次小值搜索模块中寻找本次校验节点更新中的最小值minβ和次小值subminβ,并得到最小值的位置信息,具体步骤如下:
[0090]
a.校验方程的元素个数为14,即本次更新需要在14个元素β
1,2,
…
,14
中搜索最小值和次小值;
[0091]
b.将14个元素按顺序每两个分为一组,即(β1,β2),(β3,β4),
……
,(β
13
,β
14
)共有7组;
[0092]
c.采用二叉比较法,第一轮得到每组元素中的较小值x
1,2,
…
,7
和较大值y
1,2,
…
,7
,保存每个较小值的位置信息l
1,2,
…
,7
;第二轮比较将每组元素的较小值x
1,2,
…
,7
继续按每两个元素一组(x1,x2),(x3,x4),(x5,x6),(x7)得到较小值x
1,1
,x
1,2
,x
1,3
,x
1,4
(其中x
1,4
=x7)和较大值x
′
1,1
,x
′
1,2
,x
′
1,3
,并保存每个较小值的位置信息l
1,1
,l
1,2
,l
1,3
,l
1,4
,与此同时,将上轮比较得到的较大值y
1,2,
…
,7
按每两个元素一组(y1,y2),(y3,y4),(y5,y6),(y7)得到较小值y
1,1
,y
1,2
,y
1,3
,y
1,4
(其中y
1,4
=y7);第三轮比较将上轮较小值比较得到的较小值x
1,1
,x
1,2
,x
1,3
,x
1,4
继续按每两个元素一组(x
1,1
,x
1,2
),(x
1,3
,x
1,4
)得到较小值x
2,1
,x
2,2
和较大值x
′
2,1
,x
′
2,2
,并保存每个较小值的位置信息l
2,1
,l
2,2
,与此同时,将上轮较大值比较得到的较小值y
1,1
,y
1,2
,y
1,3
,y
1,4
以及较小值比较得到的较大值x
′
1,1
,x
′
1,2
,x
′
1,3
按每两个元素一组(y
1,1
,y
1,2
),(y
1,3
,y
1,4
),(x
′
1,1
,x
′
1,2
),(x
′
1,3
)得到较小值y
2,1
,y
2,2
,y
2,3
,y
2,4
(其中y
2,4
=x
′
1,3
);第四轮比较将上轮较小值比较得到的较小值x
2,1
,x
2,2
比较得到较小值x
3,1
和较大值x
′
3,1
,并保存每个较小值的位置信息l
3,1
,则x
3,1
为得到的最小值即minβ=x
3,1
,最小值位置为l
3,1
,与此同时,将上轮较大值比较得到的较小值y
2,1
,y
2,2
,y
2,3
,y
2,4
以及较小值比较得到的较大值x
′
2,1
,x
′
2,2
按每两个元素一组(y
2,1
,y
2,2
),(y
2,3
,y
2,4
),(x
′
2,1
,x
′
2,2
)得到较小值y
3,1
,y
3,2
,y
3,3
;第五轮比较将上轮较大值比较得到的较小值y
3,1
,y
3,2
,y
3,3
以及较小值比较得到的较大值x
′
3,1
按每两个元素一组(y
3,1
,y
3,2
),(y
3,3
,x
′
3,1
)得到较小值y
4,1
,y
4,2
;第六轮将上轮得到的较小值y
4,1
,y
4,2
比较得到较小值y
5,1
,则y
5,1
为得到的次小值即subminβ=y
5,1
,至此完成搜索;
[0093]
d.将最小值minβ及其位置信息、次小值subminβ传递到校验节点更新与输出模块;
[0094]
(4)校验节点更新与输出。更新每个校验节点的符号信息;将最小值位置节点更新为次小值subminβ在,其余节点更新为最小值minβ,完成本次更新并输出。
[0095]
由上述实施例步骤可知,采用本发明的校验节点更新优化方法,对于14个校验节点,在搜索最小值及次小值时仅需个时钟,而传统的校验节点更新优化方法需要(n-1)+(n-2)=2n-3=25个时钟,节约大量处理时钟,由此可知,本发明提出的校验节点更新优化方法可大幅度降低译码时延,提升译码器的吞吐量,具有很高的实用价值。