CN102118173B - 一种ldpc及其缩短码的高速译码方法 - Google Patents

一种ldpc及其缩短码的高速译码方法 Download PDF

Info

Publication number
CN102118173B
CN102118173B CN 201110029300 CN201110029300A CN102118173B CN 102118173 B CN102118173 B CN 102118173B CN 201110029300 CN201110029300 CN 201110029300 CN 201110029300 A CN201110029300 A CN 201110029300A CN 102118173 B CN102118173 B CN 102118173B
Authority
CN
China
Prior art keywords
frame
data
data register
ldpc
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 201110029300
Other languages
English (en)
Other versions
CN102118173A (zh
Inventor
牛毅
马忠松
傅得立
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN 201110029300 priority Critical patent/CN102118173B/zh
Publication of CN102118173A publication Critical patent/CN102118173A/zh
Application granted granted Critical
Publication of CN102118173B publication Critical patent/CN102118173B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种LDPC及其缩短码的高速译码方法,本发明以CCSDS为标准对(8176,7154)码型,在较低成本的硬件平台上实现了对高速数据流的译码,解决了长码长的低密度奇偶校验码在高码率下的译码问题。

Description

一种LDPC及其缩短码的高速译码方法
技术领域
本发明属于编译码技术领域,涉及一种LDPC及其缩短码的高速译码装置。
背景技术
LDPC码最早在20世纪60年代由Gallager在他的博士论文中提出,但限于当时的技术条件,缺乏可行的译码算法,此后的35年间基本上被人们忽略,其间由Tanner在1981年推广了LDPC(低密度奇偶校验码)码并给出了LDPC码的图表示,即后来所称的Tanner图。1993年Berrou等人发现了Turbo码,在此基础上,1995年前后MacKay和Neal等人对LDPC码重新进行了研究,提出了可行的译码算法,从而进一步发现了LDPC码所具有的良好性能,迅速引起强烈反响和极大关注。目前已广泛应用于深空通信、光纤通信、卫星数字视频和音频广播等领域。LDPC码已成为***通信***(4G)强有力的竞争者,而基于LDPC码的编码方案已经被下一代卫星数字视频广播标准DVB-S2采纳。
LDPC信道编码技术首次应用于我国航天领域是在2010年10月1日发射升空的嫦娥二号。其下行数据速率是12M/S,也就是LDPC编译码器均工作在12MHz的频率下。随着我国空间技术的发展,空间探测中各种有效载荷需要下传的数据量会越来越大,这就需要具有良好纠错能力的LDPC码能够有效的适应高码速率的要求。
当前LDPC译码的硬件实现多是基于码长较短的码型(几十到几百比特的码长),且运算速率较低(十几兆到几十兆),而且由于硬件资源的限制,实现功能较强的LDPC译码器需要性能很好的芯片、甚至需要针对特定算法专门设计,硬件实现平台的成本很高,不利于大规模应用。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供了一种LDPC译码装置及方法。本发明以CCSDS为标准对(8176,7154)码型,在较低成本的硬件平台上实现了对高速数据流的译码,解决了长码长的低密度奇偶校验码在高码率下的译码问题。
本发明的技术解决方案:
通过以下步骤进行实现:
(1)对译码数据的第i个数据帧进行判断:
若输入为LDPC数据,则按所使用的输出数据寄存器的地址将LDPC数据中帧头数据的原码进行存储;并由输出数据寄存器输出前一运算周期中数据帧的帧头数据;
若输入为LDPC的缩短码数据,则按所使用的输出数据寄存器的地址将LDPC数据中帧头和填充数数据的原码进行存储;并由输出数据寄存器输出前一运算周期中数据帧的帧头和填充数数据;
(2)按照所使用的中间数据寄存器和迭代结果数据寄存器的地址存储第i个数据帧中的有效数据;并由步骤(1)中所述的输出数据寄存器输出前一运算周期中的译码数据;
(3)第i个数据帧存储完毕后,对第i个数据帧进行校验节点和变量节点的迭代运算操作;同时对输入的第i+1个数据帧从步骤(1)开始利用不同的输出数据寄存器、中间数据寄存器和迭代结果数据寄存器进行操作;
(4)当对第i个数据帧的操作完成并输出后,重新采用对第i个数据帧进行操作的数据寄存器、中间数据寄存器和迭代结果数据寄存器对新到达的数据帧进行操作;
在上述步骤中,同时对输入的所有数据帧进行操作,对一个数据帧进行存储后操作所用时间等于对该单个数据帧之后输入的其余各数据帧进行存储所用时间的累加和。
所述步骤(3)中的校验节点和变量节点的迭代运算操作分别由校验节点运算模块和变量节点模块实现,并可在连续到达的数据帧中进行复用。
同时进行操作的数据帧为4个;当完成对第i个数据帧的操作后,第i+4个输入数据帧重新采用对第i个数据帧进行操作的数据寄存器、中间数据寄存器和迭代结果数据寄存器。
本发明与现有技术相比具有如下优点:
(1)采用2个校验节点模块和16个变量节点模块的半并行数据处理方式,使资源占用和运算效率取得平衡优化。相对于完全串行的处理方式,可以使得在缓存3帧数据的情况下迭代运算次数增加一倍;相对于完全并行的处理方式,可以大量节省芯片资源占用,使得在较低端芯片上实现此规模的译码成为可能。另外,以此种方法为基础,为相邻两帧数据分配独立的运算单元,在少量增加硬件资源支出的情况下可以进一步提高***的工作频率。根据实际工程需求,对时序控制部分作适当修改,还可以在降低工作频率百分之五十的情况下再增加一倍的迭代次数,提供更优的译码效果。
(2)采用半并行的数据处理方式也会产生大量的中间数据。如果在对码长较短LDPC码进行译码的情况下,可以采用FPGA的片内寄存器资源进行临时存储。但对(8176,7154)这种码长较长的LDPC码进行译码,片内的寄存器资源就会不足,而且运算中频繁的对不同位置的寄存器进行读写访问也会降低***的工作频率。基于此,设计中采用了BlockRam作为中间数据的存储,有效利用FPGA内部的专用电路从而大量节省了逻辑和布线资源,解决了以上问题。另外,由于BlockRam寻址读写的特点,也增加了设计的可移植性。
(3)多层流水线结构的控制方式实际上是对半并行的数据处理方式的一种优化。从数据流状态上看,这种并行结构是动态的,在提高***工作频率的同时,解决了译码数据流输入、输出的连贯问题。
附图说明
图1为本发明结构示意图;
图2为Min-sum算法校验矩阵Tanner图;
图3为校验节点运算示意图;
图4为本发明工作流程图。
具体实施方式
下面就结合附图对本发明做进一步描述。
LDPC码的译码算法有:
1.SPA(Sum-Product Algorithm),Probability-domain;
2.SPA,Log-domain;
3.Min-sum(Log-domain SPA的简化算法),及其各种修正版本;
4.BF(Bit-Flipping);
5.MLG(Majority-Logic),只对循环LDPC码可以应用。
以上所列的算法,复杂性和误码性能依次降低。其中,Probability-domainSPA计算太过复杂,BF算法和MLG算法不能提供良好的误码性能,实际中均不宜采用。可以使用的几种算法中,修正的Min-sum算法误码性能可以接近SPA,又有相对低的复杂度,因此,经综合考虑本设计采用了修正的Min-sum算法。
Min-sum算法译码迭代实施方式:
H = 1 1 1 1 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 1 0 1 1
Min-sum算法基于LDPC码校验矩阵H的Tanner图进行迭代译码。我们以如下校验矩阵为例来说明它的运算过程。H的Tanner图如图2所示。想象ci和fj分别为校验节点和变量节点的运算单元,ci和fj之间的连线为双向通道,记从ci和fj的连线(即ci的输出,fj的输入)为qij;从fj到ci的连线(即fj的输出,ci的输入)为rji
Min-sum首先初始化fj的输入qij。qij经fj运算后输出rji,再经ci运算后输出更新qij,完成一次迭代。直到解出正确的码子,或者达到预先设定的最大迭代次数,结束整个迭代过程,解码完毕。具体步骤如下:
1.初始化qij:接收到的含噪声(Var=σ)2的码子γ=(γ0,γ1,…,γ9),将qi=2γi2作为原始输入,并将所有qij初始化为:
qij=qi=2γi2
2.运算单元fj:f0为5输入5输出,其余的fj均为4输入4输出。输出与输入的关系为:
r ji = Π i ′ ≠ i sign ( q ij ) · min i ′ ≠ i | q i ′ j |
即每个输出的符号为除去相应的输入qij外,其他输入的符号的乘积;每个输出的大小为:
r 21 = Π ( sign ( q 42 ) , sign ( q 72 ) , sign ( q 82 ) ) . min ( | q 42 | , | q 72 | , | q 82 | )
3.运算单元ci:c7为3输入3输出的运算单元,其余所有的ci均为2输入2输出。具体关系说清楚,,输入与输出的关系为:
Q i = Σ j ′ r j ′ i + q i
qij=Qi-rij
即每个输出为除去相应的输入外,其他输入的和,再加上该运算单元ci所对应的原始输入qi=2γi2。中间结果Qi为下一步判断码子做准备。以c7为例,见图3,输出到f0的q70为:
Q7=r07+r27+r37+2γ72
q70=Q7-r07=r27+r37+2γ72
4.计算码子与判断停止条件:步骤2和3完成了一次迭代,此时用Qi作判决码子:
c i = 1 , Q i < 0 0 , Q i > 0
如果ciHT=0,即译码成功,或者达到了预先设定的最大迭代次数,则停止迭代,否则,继续步骤2和3。
NASA在2005年9月提出了一种由有限几何方法构造的(8176,7154)LDPC码,并于2006年5月将其确定为取代R-S加卷积码的常规信道编码标准。CCSDS(The Consultative Committee for Space Data Systems,太空数据***咨询委员会)于2006年8月发表的技术文件推荐该码为近地应用的标准编码(参考:《CCSDS 131.1-0-1,Aug 2006》)。
该码有如下特点:
1、有限几何码,可在BER=10-10时不出现error-floor;
2、有限几何码,有很快的迭代译码收敛速度;
3、准循环码,***码,可用逻辑电路实现,不需要实数运算;
4、码率7/8,不明显增加传输带宽。
基于以上特点,本发明采用了由有限几何方法构造的(8176,7154)LDPC码。
硬件实现采用xilinx公司的可编程逻辑器件,充分利用其中的Ram资源代替查找表。采用流水线的控制方式,复用算法中关键的逻辑功能部分,有效的提高工作频率,降低了资源占用率。
译码采用Min-sum算法进行。其核心是校验节点运算和变量节点运算,主要问题是在对码长比较长的LDPC码进行译码的时候,要进行的运算量很大,同时产生大量的中间数据需要存储。以一帧长8176bits为例,进行一次迭代就需要进行1022次校验节点运算和8176次变量节点运算,而完成一帧数据的译码需要进行10迭代。
根据LDPC校验矩阵的特点,采用了以下方法实现了对100Mbps数据流的连续译码:
2组校验节点运算并行,和串行结构相比,降低一半校验节点运算周期;
16组变量节点运算并行,和串行结构相比,降低一半变量节点运算周期;
流水线控制运算时序,提高了数据的处理能力,提高***工作速度;
两帧数据复用一组校验节点运算模块和变量节点运算模块,降低了资源占用率;
利用FPGA内部Ram取代寄存器存储中间数据;
按照功能划分,本发明的译码装置包括数据转换和控制模块、数据输出模块、n个中间数据寄存器、n个迭代结果寄存器、n个输出数据寄存器、n/2个校验节点运算模块、n/2个变量节点运算模块。具体结构如图1所示,以下分别说明各部分的实现功能:
数据转换和控制模块
LDPC译码的控制核心,完成对原始输入数据的格式转换,控制中间数据寄存器、迭代结果寄存器和输出数据寄存器的输入选择、地址选择、读写操作;分配数据流走向;控制所有功能单元的时序。
数据存储模块
数据存储模块包括中间数据寄存器、迭代结果寄存器、输出数据寄存器三部分。为迭代运算提供临时的存储空间,当前帧完成运算后分配给下一帧使用,是数据交换的节点。
中间数据寄存器、迭代结果寄存器、输出数据寄存器采用blcok ram进行实现。blcok ram是FPGA中的特定资源,可以实现双口的同时读取,且不占用FPGA中的其他查找表资源(look-up table)。
校验节点运算模块
完成校验节点运算。在CCSDS建议的(8176,7154)LDPC码下,其核心是32个7bits数据输入,计算其中的最小值和次小值,把次小值赋给原来最小值位置的数据,把最小值赋给其余数据,输出还是32个7bits数据。可以根据数据转换和控制模块给出的数据输入选择信号对输入的两组32个7bits数据中的一组进行计算。
在具体实现时,校验节点运算模块由包括4个子模块,其作用是在8个输入数据中选择其中的最小值和次小值输出,并输出最小值数据的位置。
变量节点运算模块
完成变量节点运算。同样CCSDS建议的(8176,7154)LDPC码,根据计算输入的5个7bits位宽数据,计算输入数据的和并输出;计算和值与各位置数据的差并输出;缩短数值过大的数据。
数据输出控制模块
多路选择器,根据数据转换和控制单元给出的输入数据选择信号依次连续输出4帧译码后数据。
如图4所示,为本发明装置工作流程图。译码装置前端的解调器输出的同步数据流可以是单比特(对应硬判决译码),也可以是多比特量化(对应软判决译码)。数据进入译码装置后,时序控制模块先对数据格式进行转换,将原始数据(编码数据)的原码输出给中间数据寄存器和将补码输出给迭代结果寄存器。并根据CCSDC建议的校验矩阵的结构特点,将一帧的数据存储在32个中间数据寄存器和16个迭代结果寄存器内。当所有数据写入完毕后,对中间数据寄存器和迭代结果寄存器的地址进行置位,开始同时将32个中间数据寄存器对应地址的数据读取至校验节点运算模块,待校验节点运算完毕后,用此结果更新之前输入的数据。采用两组校验节点运算模块同时工作的方式,一共对1022组数据进行校验节点运算,完成对一帧数据的一次校验运算更新。然后再对32个中间数据寄存器和16个迭代结果寄存器的地址进行置位,同时将32个中间数据寄存器和16个迭代结果寄存器对应地址的数据读取至变量节点运算模块,待变量节点运算完毕后,用此结果更新之前输入的数据。采用16个变量节点运算模块同时工作的方式,一共对8176组数据进行变量节点运算,完成对一帧数据的一次变量运算更新。
以上是对一帧数据进行一次完整的迭代运算的过程,经过10次这样的迭代过程,一帧数据的译码结束。为了达到较高的速率,同时采用了并行、缓存、流水线处理的方法进行数据处理。当第一帧原始数据读取完毕开始进行处理的同时,第二帧原始数据开始读入,存储到第二组32个中间数据寄存器和16个迭代结果寄存器内,第三、四帧原始数据的读入过程相同,即在原始数据的输入过程中是第一至四帧依次进入流水线结构,每帧数据各自占用一组中间数据寄存器和迭代结果寄存器。在第一帧数据进行译码的同时,从第一帧数据所进行的操作看,另外三帧数据相当于缓存在中间数据寄存器和迭代结果寄存器内。实际上从整个数据流的循环处理过程来看,任何一帧数据的译码过程都与另外三帧数据的缓存相对应。接下来,第二、三、四帧数据依次进入迭代译码的流水线过程进行处理。当数据流源源不断地输入时,不仅每帧内部的校验节点运算和变量节点运算是并行的,而且帧和帧之间数据处理也是并行的。可以看出在任一时刻,都会有一帧数据处于输入/输出状态,另外三帧数据处于迭代译码状态。从时序控制的角度看,每帧数据的处理过程均由状态机控制,从原始数据的输入到译码结果的输出,共约50个状态;以四帧数据为一个周期作循环译码,处理连续数据流需要经历200种状态组合。
本发明未详细说明部分属本领域技术人员公知常识。

Claims (3)

1.一种LDPC及其缩短码的高速译码方法,其特征在于通过以下步骤进行实现:
(1)对译码数据的第i个数据帧进行判断:
若输入为LDPC数据,则按所使用的输出数据寄存器的地址将LDPC数据中帧头数据的原码进行存储;并由输出数据寄存器输出前一运算周期中数据帧的帧头数据;
若输入为LDPC的缩短码数据,则按所使用的输出数据寄存器的地址将LDPC数据中帧头和填充数数据的原码进行存储;并由输出数据寄存器输出前一运算周期中数据帧的帧头和填充数数据;
(2)按照所使用的中间数据寄存器和迭代结果数据寄存器的地址存储第i个数据帧中的有效数据;并由步骤(1)中所述的输出数据寄存器输出前一运算周期中的译码数据;
(3)第i个数据帧存储完毕后,对第i个数据帧进行校验节点和变量节点的迭代运算操作;同时对输入的第i+1个数据帧从步骤(1)开始利用不同的输出数据寄存器、中间数据寄存器和迭代结果数据寄存器进行操作;
(4)当对第i个数据帧的操作完成并输出后,重新采用对第i个数据帧进行操作的数据寄存器、中间数据寄存器和迭代结果数据寄存器对新到达的数据帧进行操作;
在上述步骤中,同时对输入的所有数据帧进行操作,对一个数据帧进行存储后操作所用时间等于对该单个数据帧之后输入的其余各数据帧进行存储所用时间的累加和。
2.根据权利要求1所述的一种LDPC及其缩短码的高速译码方法,其特征在于:所述步骤(3)中的校验节点和变量节点的迭代运算操作分别由校验节点运算模块和变量节点模块实现,并可在连续到达的数据帧中进行复用。
3.根据权利要求1所述的一种LDPC及其缩短码的高速译码方法,其特征在于:同时进行操作的数据帧为4个;当完成对第i个数据帧的操作后,第i+4个输入数据帧重新采用对第i个数据帧进行操作的数据寄存器、中间数据寄存器和迭代结果数据寄存器。
CN 201110029300 2011-01-27 2011-01-27 一种ldpc及其缩短码的高速译码方法 Expired - Fee Related CN102118173B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110029300 CN102118173B (zh) 2011-01-27 2011-01-27 一种ldpc及其缩短码的高速译码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110029300 CN102118173B (zh) 2011-01-27 2011-01-27 一种ldpc及其缩短码的高速译码方法

Publications (2)

Publication Number Publication Date
CN102118173A CN102118173A (zh) 2011-07-06
CN102118173B true CN102118173B (zh) 2013-09-18

Family

ID=44216790

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110029300 Expired - Fee Related CN102118173B (zh) 2011-01-27 2011-01-27 一种ldpc及其缩短码的高速译码方法

Country Status (1)

Country Link
CN (1) CN102118173B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102361460B (zh) * 2011-07-28 2013-10-16 航天恒星科技有限公司 一种通用高速并行循环交错维特比译码方法
CN102857324B (zh) * 2012-09-27 2014-12-10 苏州威士达信息科技有限公司 基于查找表的深空通信中ldpc串行编码器和编码方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764621A (zh) * 2009-12-30 2010-06-30 西安空间无线电技术研究所 星载(8176,7156)ldpc编译码器中实现缩短码与子码兼容的方法
CN101777921A (zh) * 2010-01-28 2010-07-14 中国人民解放军国防科学技术大学 用于显式存储片上***的结构化ldpc码译码方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4703310B2 (ja) * 2005-08-04 2011-06-15 株式会社東芝 通信方法および通信システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764621A (zh) * 2009-12-30 2010-06-30 西安空间无线电技术研究所 星载(8176,7156)ldpc编译码器中实现缩短码与子码兼容的方法
CN101777921A (zh) * 2010-01-28 2010-07-14 中国人民解放军国防科学技术大学 用于显式存储片上***的结构化ldpc码译码方法及装置

Also Published As

Publication number Publication date
CN102118173A (zh) 2011-07-06

Similar Documents

Publication Publication Date Title
CN102075198B (zh) 准循环低密度奇偶校验卷积码编译码***及其编译码方法
CN101106381B (zh) 分层的低密度校验码译码器及译码处理方法
CN101478314B (zh) 一种里德-所罗门编码译码器及其译码的方法
CN101951264B (zh) 一种多码率准循环低密度奇偶校验码解码器
CN101232288B (zh) 一种基于奇偶校验矩阵的ldpc码的译码方法及译码器
CN100592639C (zh) 低密度奇偶校验编码方法、装置及奇偶校验矩阵生成方法
CN101188426B (zh) 用于对准循环结构的ldpc码进行并行处理的译码器及方法
CN105680879A (zh) 兼容dvb-s2x标准的ldpc译码器设计方法
CN109586733B (zh) 一种基于图形处理器的ldpc-bch译码方法
CN101154948A (zh) 利用共享硬件及顺序和-积体系结构进行低密度奇偶校验解码的方法和设备
CN103916134A (zh) 低密度奇偶校验码的混叠译码方法及多核协同混叠译码器
Lin et al. Byte-reconfigurable LDPC codec design with application to high-performance ECC of NAND flash memory systems
KR101657912B1 (ko) 비이진 저밀도 패리티 검사 코드의 복호화 방법
CN102118173B (zh) 一种ldpc及其缩短码的高速译码方法
CN101958718B (zh) 用于ldpc码的改进型半并行译码器和译码方法
Liu et al. A miniaturized LDPC encoder: Two-layer architecture for CCSDS near-Earth standard
CN201918982U (zh) 一种ldpc及其缩短码的高速译码装置
CN101478312A (zh) 一种ldpc译码器及其实现译码的方法
CN102412844A (zh) 一种ira类ldpc码的译码方法及译码装置
WO2022116799A1 (zh) 一种具有单置换网络的分层半并行ldpc译码器***
Zhao et al. DVB-T2 LDPC decoder with perfect conflict resolution
Zhang VLSI architectures for Reed–Solomon codes: Classic, nested, coupled, and beyond
CN101640543A (zh) 一种ldpc码的编码装置及方法
CN102594369A (zh) 基于fpga的准循环低密度校验码译码器及译码方法
CN102696176B (zh) 译码装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130918

CF01 Termination of patent right due to non-payment of annual fee