基于LDPC译码的早停方法和系统与流程

文档序号:25779397发布日期:2021-07-09 08:45阅读:205来源:国知局
基于LDPC译码的早停方法和系统与流程
基于ldpc译码的早停方法和系统
技术领域
1.本发明涉及信道编译码技术领域,具体地,涉及一种基于ldpc译码的早停方法和系统。


背景技术:

2.低密度奇偶校验码(ldpc码)是一种译码性能好、支持码长码率灵活配置、易于并行处理、吞吐量大的信道编码,在移动通信、数字电视通信、卫星通信、深空通信等多种通信体制中均有广泛的应用。ldpc译码一般通过循环迭代的方式实现,一般情况下,为了限制译码的处理时间,会设置一个最大迭代次数n,当ldpc译码的硬判决结果满足校验矩阵的校验或者ldpc译码迭代次数达到最大迭代次数n时,就会结束ldpc译码,硬判结果满足校验矩阵的校验表示译码正确,译码迭代次数达到n次却没有通过校验表示译码已经失败。为了减少迭代次数,进一步节约时间、降低功耗,可以引入早停机制,及时判断出译码成功或译码已经失败,在满足校验或达到最大迭代次数前及时停止译码迭代。目前很多常见的早停方案中,有的方案只针对判断译码成功和判断译码失败两种场景中的一种场景做早停、有的方案基于同一个变量去判断译码成功和译码失败两种场景,这种方式往往对其中一种场景效果较好,对另一种场景的效果较差。也有一些早停方案考虑了通过多个变量去判断译码成功和译码失败两种场景,但是这些方法通常需要观察变化率,统计变量变化率的过程比较复杂,处理时间也比较长,不适用于实际工程应用的场景。
3.在实际工程项目中,引入一种高效易实现的译码早停方案是非常有必要的,能大大降低译码处理时延,减少资源和功耗浪费。
4.专利文献cn107689801a(申请号:cn201710798802.5)公开了一种低密度奇偶校验ldpc码交替方向乘子法admm迭代译码的早停止方法,主要解决现有技术的中低信噪比区域admm迭代译码收敛速度慢的问题。本发明实现方法的步骤:初始化译码参数;计算变量节点初始信息;更新变量节点信息;更新辅助变量;更新拉格朗日乘子向量;获取码字比特的硬判决值;计算admm迭代译码中每两次连续迭代之间发生变化的码字比特总数;计算码字比特的硬判决变化率;译码停止判决;停止译码。


技术实现要素:

5.针对现有技术中的缺陷,本发明的目的是提供一种基于ldpc译码的早停方法和系统。
6.根据本发明提供的基于ldpc译码的早停方法,包括如下步骤:
7.步骤1:初始化参数配置;
8.步骤2:启动ldpc译码并进行迭代,当迭代次数达到预设启动早停判断的迭代次数时开始进行早停判定;
9.步骤3:计算迭代过程中的平均幅值,并根据平均幅值判定本次译码是否属于预设范围内能够进行正确译码的场景;
10.步骤4:根据不同场景采用不同的参数判定是否早停,若早停则停止译码,否则重复执行步骤3和步骤4继续迭代。
11.优选的,所述步骤1包括如下步骤:
12.步骤1.1:根据历史数据配置最大迭代次数n,启动早停判定迭代次数nstart,增长比值λ和平均幅度门限值t;
13.步骤1.2:初始化迭代次数技术变量cnt=0,根据译码模块的输入计算初始的平均幅度值mm(0)。
14.优选的,所述步骤2包括如下步骤:
15.步骤2.1:启动ldpc译码算法;
16.步骤2.2:迭代次数技术变量cnt是记录已经完成的译码迭代次数,每完成一次译码迭代,cnt=cnt+1;
17.步骤2.3:当cnt≥nstart时,开始进行译码早停判断。
18.优选的,所述步骤3包括如下步骤:
19.步骤3.1:计算当前译码信息llr绝对值的均值,即平均幅值mm(cnt);
20.步骤3.2:如果mm(cnt)<t,则判定此次译码属于预设范围内不能进行正确译码的场景;如果mm(cnt)≥t,则判定此次译码属于预设范围内能够进行正确译码的场景。
21.优选的,所述步骤4包括如下步骤:
22.步骤4.1:当此次译码属于预设范围内不能进行正确译码场景时,直接提前终止译码;
23.步骤4.2:当此次译码属于预设范围内能够进行正确译码场景时,进一步判断mm(cnt)和λ
×
mm(0)的大小关系;
24.步骤4.3:如果mm(cnt)>λ
×
mm(0),则启动crc校验验证信息比特是否译码正确,如果crc校验通过则判断信息比特译码已经正确,提前终止译码迭代;如果crc校验没有通过,则继续增加迭代次数,回到步骤3直到crc校验通过或译码达到最大迭代次数停止译码;
25.步骤4.4:如果mm(cnt)≤λ
×
mm(0),则继续增加迭代次数,回到步骤3直到crc校验通过或译码达到最大迭代次数停止译码。
26.根据本发明提供的基于ldpc译码的早停系统,包括:
27.模块m1:初始化参数配置;
28.模块m2:启动ldpc译码并进行迭代,当迭代次数达到预设启动早停判断的迭代次数时开始进行早停判定;
29.模块m3:计算迭代过程中的平均幅值,并根据平均幅值判定本次译码是否属于预设范围内能够进行正确译码的场景;
30.模块m4:根据不同场景采用不同的参数判定是否早停,若早停则停止译码,否则重复调用模块m3和模块m4继续迭代。
31.优选的,所述模块m1包括:
32.模块m1.1:根据历史数据配置最大迭代次数n,启动早停判定迭代次数nstart,增长比值λ和平均幅度门限值t;
33.模块m1.2:初始化迭代次数技术变量cnt=0,根据译码模块的输入计算初始的平均幅度值mm(0)。
34.优选的,所述模块m2包括:
35.模块m2.1:启动ldpc译码算法;
36.模块m2.2:迭代次数技术变量cnt是记录已经完成的译码迭代次数,每完成一次译码迭代,cnt=cnt+1;
37.模块m2.3:当cnt≥nstart时,开始进行译码早停判断。
38.优选的,所述模块m3包括:
39.模块m3.1:计算当前译码信息llr绝对值的均值,即平均幅值mm(cnt);
40.模块m3.2:如果mm(cnt)<t,则判定此次译码属于预设范围内不能进行正确译码的场景;如果mm(cnt)≥t,则判定此次译码属于预设范围内能够进行正确译码的场景。
41.优选的,所述模块m4包括:
42.模块m4.1:当此次译码属于预设范围内不能进行正确译码场景时,直接提前终止译码;
43.模块m4.2:当此次译码属于预设范围内能够进行正确译码场景时,进一步判断mm(cnt)和λ
×
mm(0)的大小关系;
44.模块m4.3:如果mm(cnt)>λ
×
mm(0),则启动crc校验验证信息比特是否译码正确,如果crc校验通过则判断信息比特译码已经正确,提前终止译码迭代;如果crc校验没有通过,则继续增加迭代次数,回调模块m3直到crc校验通过或译码达到最大迭代次数停止译码;
45.模块m4.4:如果mm(cnt)≤λ
×
mm(0),则继续增加迭代次数,回调模块m3直到crc校验通过或译码达到最大迭代次数停止译码。
46.与现有技术相比,本发明具有如下的有益效果:
47.(1)本发明支持能够译码成功和不能译码成功两种场景下的译码早停;
48.(2)本发明提出的早停方案,适用于各种应用ldpc的通信体制;
49.(3)本发明提出的早停方案,运算简单且运算量比较小,易于实现,适用于工程实践,能有效减少资源的消耗、降低功耗。
附图说明
50.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
51.图1为译码早停方案流程图;
52.图2为早停译码性能仿真图;
53.图3为早停译码迭代次数仿真图。
具体实施方式
54.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
55.实施例1:
56.如图1,根据本发明提供的ldpc译码早停方法,包括如下步骤:
57.步骤1:初始化参数配置;
58.步骤2:启动ldpc迭代译码,当迭代次数达到启动早停判断的迭代次数时开始进行早停判定;
59.步骤3:基于平均幅值判定本次译码是否属于预设范围内正确译码的场景;
60.步骤4:根据不同场景采用不同的参数判定是否早停,若早停则停止译码,若需要继续迭代则重复步骤4。
61.所述步骤1包括如下步骤:
62.步骤1.1:根据经验值配置最大迭代次数n,启动早停判定迭代次数nstart,增长比值λ和平均幅度门限值t;
63.步骤1.2:初始化迭代次数技术变量cnt=0,根据译码模块的输入,计算初始的平均幅度值mm(0)。
64.所述步骤2包括如下步骤:
65.步骤2.1:启动ldpc译码算法;
66.步骤2.2:迭代次数技术变量cnt是记录已经完成的译码迭代次数,也就是每完成一次译码迭代,cnt=cnt+1;
67.步骤2.3:当cnt≥nstart时,开始进行译码早停判断。
68.所述步骤3包括如下步骤:
69.步骤3.1:计算当前译码信息llr绝对值的均值,即平均幅值mm(cnt);
70.步骤3.2:如果mm(cnt)<t,则判定此次译码属于不能正确译码的场景;如果mm(cnt)≥t,则判定此次译码属于能够正确译码的场景。
71.所述步骤4包括如下步骤:
72.步骤4.1:当此次译码属于不能正确译码场景时,直接提前终止译码;
73.步骤4.2:当此次译码属于能够正确译码场景时,需要进一步判断mm(cnt)和λ
×
mm(0)的大小关系;
74.步骤4.3:如果mm(cnt)>λ
×
mm(0),启动crc校验验证信息比特是否译码正确,如果crc校验通过则判断信息比特译码已经正确,提前终止译码迭代,如果crc校验没有通过,则继续增加迭代次数,回到步骤3直到crc通过或译码达到最大迭代次数停止译码。
75.步骤4.4:如果mm(cnt)≤λ
×
mm(0),则继续增加迭代次数,回到步骤3直到crc通过或译码达到最大迭代次数停止译码。
76.实施例2:
77.实施例2为实施例1的优选例。
78.译码早停需要嵌入译码算法进行早停控制,接下来以符合3gpp r15标准的ldpc译码场景中为例来说明本发明提出的译码早停方案的具体实施方法。具体来说,nrr15ldpc的配置为:基于basegraph1,扩展因子zc=256,t=22,译码输入序列长度l=zc*22,传输信道为高斯白噪声信道。
79.首先进行参数配置,译码最大迭代次数n=15,早停检测开始的译码迭代次数nstart=2,迭代计数变量cnt=0,平均幅度门限值t=5,增长比值λ=6,基于译码输入的llr的绝对值计算初始的平均幅度值mm(0)。其中译码最大迭代次数n、早停检测开始迭代次
数nstart、平均幅度门限值以及增长比值都是通过大量仿真获取的经验值。详细来说,需要仿真不同码长、码率、信道条件下不同参数取值组合获得的译码性能和早停性能,在保证译码性能的情况下,选择使得早停性能最优的几组参数取值组合形成参数表,在实际应用中,根据译码配置和译码条件从参数表中选择一组参数进行译码前的初始化。
80.完成参数配置后启动ldpc迭代译码,同时迭代技术变量cnt开始统计已完成的译码迭代次数,没完成一次迭代译码,cnt=cnt+1,当cnt<nstart时,继续进行下一次迭代译码,当cnt≥nstart的时候,开始进行早停检测。
81.进行早停检测的第一步是根据当前得到的llr值计算其绝对值的平均值mm(cnt),对比mm(cnt)和平均幅度门限值t,当mm(cnt)<t时,认为译码环境比较差,llr值的可信度非常低,即使继续循环迭代译码也很难译对,因此停止迭代译码,宣布ldpc译码失败。当mm(cnt)≥t时,认为继续迭代下去可能成功译码,因此进入下一轮成功译码的早停判定流程。
82.在成功译码的早停判断流程中,首先判断是否需要进入crc校验。当llr幅度均值满足mm(cnt)≤λ
×
mm(cnt),如果满足,则不进行crc校验,判断当前迭代次数cnt是否小于设置的最大迭代次数n,如果小于,进入下一次译码迭代,否则终止迭代,译码不成功。当mm(cnt)>λ
×
mm(cnt)时,认为llr的可
83.信度比较高,可以进行译码正确早停判断,进入crc校验。
84.如图2,为早停译码性能仿真图,crc校验的具体操作为从译码结果中取出信息比特,此步骤中校验比特不参与计算,将信息比特进行硬判,对硬判结果进行crc校验,如果crc校验通过,则认为已经正确正确,可以终止迭代译码,如果crc校验未通过,则判断当前迭代次数cnt是否小于设置的最大迭代次数n,如果小于,进入下一次译码迭代,否则终止迭代,译码不成功。
85.如图3,现有的大部分的早停方案要么在两种场景下效率都不是很高、要么就是在一种场景下性能比较好,在另一种场景下性能比较差。本发明提出的早停在两种场景下性能都比较好,能有效的识别早停,及早终止译码迭代。对于不能译码成功场景,一般只需要3次迭代即可终止迭代,比常见的早停方案减少了2~10次迭代,对于能够译码成功场景,根据信噪比不同一般需要5~9次迭代,优于大部分现有的早停方案。
86.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
87.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1