CN103384153B - 准循环ldpc码译码方法及系统 - Google Patents

准循环ldpc码译码方法及系统 Download PDF

Info

Publication number
CN103384153B
CN103384153B CN201310276945.1A CN201310276945A CN103384153B CN 103384153 B CN103384153 B CN 103384153B CN 201310276945 A CN201310276945 A CN 201310276945A CN 103384153 B CN103384153 B CN 103384153B
Authority
CN
China
Prior art keywords
node
check
row
submatrix
variable
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.)
Active
Application number
CN201310276945.1A
Other languages
English (en)
Other versions
CN103384153A (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.)
Tsinghua University
Shenzhen Research Institute Tsinghua University
Original Assignee
Tsinghua University
Shenzhen Research Institute Tsinghua University
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 Tsinghua University, Shenzhen Research Institute Tsinghua University filed Critical Tsinghua University
Priority to CN201310276945.1A priority Critical patent/CN103384153B/zh
Publication of CN103384153A publication Critical patent/CN103384153A/zh
Application granted granted Critical
Publication of CN103384153B publication Critical patent/CN103384153B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

一种准循环LDPC码译码方法及系统,其采用行列流水线的方法对非零子矩阵串行执行,在对校验节点的行操作中利用一级二输入比较器,对变量节点的列操作中利用一级二输入加法器,从而使关键路径降低,同时也保证每次迭代的时钟周期数最少,又能保证码间无间隙,从而提高吞吐率;在译码的过程中,仅需将由行操作所得到的所述校验节点的绝对值最小值、次小值、所述校验节点的非零子矩阵中每个元素的符号、绝对值最小值的位置存储于存储芯片中及将由列操作所得到的每个变量节点的p个列和存储于存储芯片中无,而且无需额外的存储芯片来存储信道似然信息,节省了存储资源,从而节省了芯片面积。

Description

准循环LDPC码译码方法及系统
技术领域
本发明涉及现代通信系统中纠错码的译码方法及系统,尤其涉及一种准循环低密度奇偶校验码(LowDensityParityCheckCode,LDPC)译码器设计方法及系统。
背景技术
低密度奇偶校验码由于其优异的性能和具有相对简单的译码算法而广泛应用于现代通信标准中,如DVB-S2,802.11n,802.11ad,802.16e等。准循环低密度奇偶校验码(简称QC-LDPC)是一种特殊的LDPC码,它的校验矩阵的每一个子矩阵或是全0或是单位矩阵的循环移位。这一特性使得QC-LDPC码在面向ASIC设计时具有更低的实现复杂度,更小的存储需求,更高的吞吐率,因此现代通信标准中几乎都采用的是QC-LDPC码。目前,LDPC码译码器在ASIC实现时的主要难点有:(1)面积大,在一些特殊应用场合,如卫星上应用时,面积太大不仅带来开发成本的提高,而且出现单粒子效应(SEE)的概率也增大,此外,当译码器芯片非商业批量生产时,面积大于5×5mm2,会使得MPW的代价成倍增加;(2)存储量大,当存储需求增加时,需要的RAM个数将增加,特别是当小容量RAM数过多时,会造成芯片布局布线的拥塞甚至导致芯片无法实现,而且RAM是SEE敏感单元,RAM数量增加直接导致发生SEE的概率增加;(3)吞吐率受限制,当芯片的I/O资源受限时,译码器数据的输入和输出时间不能忽略,这大大限制了吞吐率的提高。
LDPC译码算法主要有和积算法(SPA)和最小和算法(MSA)两种。在实现结构上,LDPC译码主要有两相位信息传递(TPMP)和分层迭代两种。TPMP结构是在一次迭代中先进行所有变量节点的信息更新,再进行所有校验节点的信息更新,两者交替进行。分层迭代结构是将校验矩阵的所有行(列)分成若干层,每更新完一行(列)层信息,接着就更新所有列(行)的信息。
为了减少LDPC译码器的迭代次数,最早有人提出了行分层迭代结构,即将校验矩阵的所有行分成若干层,每更新完一行层信息,接着就更新所有列的信息。为了提高吞吐率,后来又提出了列分层迭代结构,即将校验矩阵的所有列分成若干层。也有人通过提高并行度来提高吞吐率和节省存储资源,但这种方法硬件代价很高,需要的迭代次数也较多。还有一种基于TPMP结构的子矩阵串行操作的方法,它大大降低了存储资源和功耗,但它仍然需要存储信道的似然信息,而且当校验矩阵中的非零个数较大时,它的收敛速度较慢。
传统的行分层迭代结构虽然具有较少的迭代次数,但每次迭代的时钟周期数更大,因此总的收敛时间并没有减少很多,而且对于行重较大的码字,关键路径将变长导致吞吐率下降。传统的列分层迭代结构虽然能达到很高的吞吐率,但即使校验节点的处理作了近似,它仍需消耗大的存储空间来存储校验节点传递到变量节点的信息,此外由于近似处理,它的性能也有损失。通过提高并行度来提高吞吐率和节省存储资源的方法,在大多数情况下可能得不偿失,它的硬件代价很高,需要的迭代次数也较多。基于TPMP结构的译码方法,均需要额外的存储空间来存储信道的似然信息,大大增加的存储器的需求。而子矩阵串行操作的译码方法,在校验矩阵中的非零个数较大时,它的收敛速度较慢。
发明内容
鉴于以上内容,有必要提供一种准循环LDPC码译码方法及系统,其能提高吞吐率,同时节省芯片面积和存储资源。
一种准循环LDPC码译码方法,其包括:接收步骤,接收输入的数据并存入译码器的存储芯片中;读取步骤,从存储芯片中依次读取校验矩阵H中的所有非零子矩阵所对应的数据;计算初始化步骤,通过一级二输入加法器来计算所述校验矩阵H的每个变量节点中每列的和以初始化每个变量节点的p个列和,并将所述每个变量节点的p个列和存储于所述存储芯片中,所述H为M×N的稀疏矩阵,所述H的每个元素为一个p×p的子矩阵,所述子矩阵或为全0或为一个把单位阵进行循环移位后的矩阵,所述p个列和为在每个变量节点中,对M个p×p的子矩阵中每个相同列号的列进行求和,所述p为正整数;行操作步骤,对校验矩阵H的第一个校验节点进行行操作以更新该第一个校验节点中每个非零子矩阵中的非零元素;行列操作步骤,利用迭代方法对校验矩阵H中的当前迭代校验节点进行列操作的同时,并行地对当前迭代校验节点的下一个迭代校验节点进行行操作,直到迭代结束;列操作步骤,当不继续迭代时,对第M个校验节点进行列操作以更新每个变量节点的p个列和,并将该每个变量节点的p个列和中每个非零元素的符号存储于所述存储芯片中;输出步骤,将所述存储芯片中所存储的每个变量节点的p个列和中每个非零元素的符号通过译码器的输出装置输出。
一种准循环LDPC码译码系统,接收模块,用于接收输入的数据并存入译码器的存储芯片中;读取模块,用于从存储芯片中依次读取校验矩阵H中的所有非零子矩阵所对应的数据;计算模块,用于通过一级二输入加法器来计算所述校验矩阵H的每个变量节点中每列的和以初始化每个变量节点的p个列和,并将所述每个变量节点的p个列和存储于所述存储芯片中,所述H为M×N的稀疏矩阵,所述H的每个元素为一个p×p的子矩阵,所述子矩阵或为全0或为一个把单位阵进行循环移位后的矩阵,所述p个列和为在每个变量节点中,对M个p×p的子矩阵中每个相同列号的列进行求和,所述p为正整数;行操作模块,用于对校验矩阵H的第一个校验节点进行行操作以更新该第一个校验节点中每个非零子矩阵中的非零元素;行列操作模块,用于利用迭代方法对校验矩阵H中的当前迭代校验节点进行列操作的同时,并行地对当前迭代校验节点的下一个迭代校验节点进行行操作,直到迭代结束;列操作模块,用于当不继续迭代时,对第M个校验节点进行列操作更新每个变量节点的p个列和,并将该每个变量节点的p个列和中每个非零元素的符号存储于所述存储芯片中;输出模块,用于将所述存储芯片中所存储的每个变量节点的p个列和中每个非零元素的符号通过译码器的输出装置输出。
相较于现有技术,所述准循环LDPC码译码方法及系统,其采用行列流水线的方法对非零子矩阵串行执行,在对校验节点的行操作中利用一级二输入比较器,对变量节点的列操作中利用一级二输入加法器,从而使关键路径降低,同时也保证每次迭代的时钟周期数最少,又能保证码间无间隙,从而提高吞吐率;在译码的过程中,仅需将由行操作所得到的所述校验节点的绝对值最小值、次小值、所述校验节点的非零子矩阵中每个元素的符号、绝对值最小值的位置存储于存储芯片中及将由列操作所得到的每个变量节点的p个列和存储于存储芯片中无,而且无需额外的存储芯片来存储信道似然信息,节省了存储资源,从而节省了芯片面积。
附图说明
图1是本发明准循环LDPC码译码系统的应用环境图。
图2是本发明准循环LDPC码译码系统的功能模块图。
图3是本发明准循环LDPC码译码方法的较佳实施例的流程图。
图4是本发明校验矩阵的示意图。
图5是本发明步骤S14的细化流程图。
主要元件符号说明
译码器 1
输入装置 16
输出装置 17
存储芯片 12
一级二输入加法器 14
一级二输入比较器 15
准循环LDPC码译码系统 13
接收模块 130
读取模块 131
计算模块 132
行操作模块 133
行列操作模块 134
列操作模块 135
输出模块 136
查找子模块 1330
更新符号子模块 1331
更新数值子模块 1332
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
如图1所示,是本发明准循环LDPC码译码系统的应用环境示意图。该准循环LDPC码译码系统13运行于译码器1中。该译码器1用于接收输入装置16所输入的数据,并利用所述准循环LDPC码译码系统13对所输入的数据进行译码纠错,并将处理后的数据通过输入装置17输出。所述译码器1还包括一级二输入加法器14、一级二输入比较器15及存储芯片12。
所述输入的数据即为信道似然信息,所述存储器12用于存储所述信道似然信息。
准循环低密度奇偶校验码(简称QC-LDPC)是一种特殊的LDPC码,所述QC-LDPC码的校验矩阵H是一个M×N的稀疏矩阵,即有M个校验节点及N个变量节点。每个所述校验节点对应一个行,每行中有N个元素,每个所述变量节点对应一个列,每一列中有M个元素。
矩阵中共有M×N个矩阵元素,每个矩阵元素代表一个p×p的子矩阵,子矩阵或为全0或为一个把单位阵进行循环移位后的矩阵。所述子矩阵中的1表示所述1所在的位置有数值,所述子矩阵中的0表示所述0所在的位置没有数值(即为0)。所述一个把单位阵进行循环移位后的矩阵中每一行或者每一列有且仅有一个1。所述准循环LDPC码译码系统13只对校验矩阵H中非零p×p的子矩阵进行处理。所述p为正整数。
所述准循环LDPC码译码系统13经过多次迭代来处理所述校验矩阵H,在每次迭代的过程中,在多个时钟周期下来完成所述校验矩阵H中的M个校验节点及N个变量节点的信息更新以得到所述校验矩阵H中每一列的所有非零元素之和的符号(即正号或者负号)。所述准循环LDPC码译码系统13在每个时钟周期处理校验矩阵H的一个非零子矩阵,并且按校验矩阵的行方向串行执行完所有非零子矩阵从而完成一次迭代。所述迭代的过程在后续详述。
如图2所示,是本发明准循环LDPC码译码系统的模块图。在本实施例中,所述准循环LDPC码译码系统13包括接收模块130、读取模块131、计算模块132、行操作模块133、行列操作模块134、列操作模块135及输出模块136,其中行操作模块133还包括查找子模块1330,更新符号子模块1331,更新数值子模块1332。本发明所称的模块是指一种能够被处理单元所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储芯片12中。在本实施例中,关于各模块的功能将在图3的流程图中具体描述。
如图3所示,是本发明准循环LDPC码译码方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
步骤S10,接收模块130接收通过输入装置16所输入的数据并存入译码器1的存储芯片12中。
步骤S11,读取模块131从存储芯片12中依次读取校验矩阵H中所有非零子矩阵所对应的数据。
步骤S12,计算模块132计算迭代初始值,通过一级二输入加法器14来计算校验矩阵H的每个变量节点中每列的和以初始化每个变量节点的p个列和,并将所计算出的每个变量节点的p个列和存储于存储芯片12。
对每个变量节点,计算模块132对M个p×p的子矩阵中的所有非零子矩阵中每个相同列号的列进行求和,即在每个变量节点中,会计算出p个列和,即所述每个变量节点的p个列和为1×p的矩阵。
在本实施例中,如图4所示,为了简单的说明该步骤,以校验矩阵H由3个校验节点及5个变量节点组成(即为3×5的矩阵)为例,其中用a1、a2、a3…a9表示其所在位置的子矩阵为非零2×2(即p=2)子矩阵。以 1 ( - 1 ) 0 0 1 ( 2 ) 表示a1,即-1表示a1中第一行第一列中的1所在位置的数,2表示a1中第二行第二列中的1所在位置的数;同理用 1 ( 6 ) 0 0 1 ( - 7 ) 表示a5,则第一个变量节点的2个列和为((-1+6),(2+(-7)),即为(5,-5)。
在后续的迭代中,所述p个列和会不断更新,将在后续详述。
所述一级二输入加法器的方法是将矩阵A及B作为输入,将A的列与B中列号相同的列的非零元素进行相加,从而每列得到一个相加后的数据。
在本实施例中,以M取3,p取4为例,即第一个变量节点中有Q1、Q2及Q3三个4×4非零子矩阵为例,所述计算模块132利用一级二输入加法器先将Q1及Q2作为输入,将Q1的第1、2、3、4列中非零元素与Q2中相应的第1、2、3、4列中非零元素相加得到1×4的矩阵Q4。再将Q4及Q3作为输入,将Q4的第1、2、3、4列中非零元素与Q3中相应的第1、2、3、4列中非零元素相加得到所述每个变量节点的p个列和。
步骤S13,行操作模块133对校验矩阵H的第一个校验节点(即第一行)进行行操作以更新第一个校验节点中每个非零子矩阵中的非零元素。
详细地,为了详述行操作的一般性,下面用i表示校验矩阵H的第i个校验节点,在步骤S13中,i取1。所述行操作是对非零子矩阵中的非零元素进行处理,所述行操作包括:
(a)查找子模块1330查找校验矩阵H的第i个校验节点(即第i行)中的绝对值最小值及绝对值次小值,并存储所述绝对值最小值及其位置、绝对值次小值、第i个校验节点中每个非零子矩阵中每个非零元素的符号到存储芯片12中。
详细地,所述查找子模块1330对所述第i个校验节点中的所有非零的p×p子矩阵进行串行处理。所述查找子模块1330在一个时钟周期内处理一个非零的p×p子矩阵。在本实施例中,以所述第一个校验节点中的所有非零的p×p子矩阵为4个为例,则共需要四个时钟周期才能查找到所述绝对值最小值及绝对值次小值。
在一个时钟周期内,所述查找子模块1330通过一级二输入比较器查找该时钟周期内所处理的非零的p×p子矩阵的绝对值最小值及绝对值次小值。
所述一级二输入比较器的比较方法是将矩阵A及B作为输入,将A矩阵的行/列与B矩阵中行号/列号相同的行/列进行比较,从而每行/列得到一个比较后的数据。
在本实施例中,以第一个校验节点中有T1、T2及T3三个4×4非零子矩阵为例,所述查找子模块1330利用一级二输入比较器先将T1的第一行的非零元素与T2的第一行的非零元素、T1的第二行的非零元素与T2的第二行的非零元素、T1的第三行的非零元素与T2的第三行的非零元素及T1的第四行的非零元素与T2的第四行的非零元素进行比较得到每行中的绝对值最小值及绝对值次小值,从而得到一个4×2即(p×2)的矩阵,再将所述4×2的矩阵的每行的非零元素与T3中行号相同的行的非零元素进行比较得到一个新的4×2的矩阵,再将所述新的4×2的矩阵中第一行的元素与第二行的元素进行比较得到一个绝对值最小值及一个绝对值次小值,再将所得到的一个绝对值最小值及一个绝对值次小值与所述新的4×2的矩阵中第三行的元素进行比较,依次类推,直至与所述新的4×2的矩阵中第四行进行比较后即可找到第一个校验节点的一个绝对最小值及一个绝对值次小值。
每个非零子矩阵中每个非零元素的符号为+1或者-1,当所述非零元素为正数时,即为+1,当所述非零元素为负数时,即为-1。
(b)更新符号子模块1331更新第i个校验节点中每个非零子矩阵中非零元素的符号。
详细地,在M×N的校验矩阵的在第i个校验节点中,有N个p×p子矩阵,所述更新符号子模块1331在所述N个p×p子矩阵中正在处理一个非零子矩阵的一个非零元素,先将该第i个校验节点中所有非零子矩阵中与所述非零元素所在行号相同的所有非零元素的符号相乘,再将相乘后的符号与所记录的所述非零元素的符号相乘,即得到更新后的所述非零元素的符号。
(c)更新数值子模块1332将第i个校验节点中所述绝对值最小值所在位置的元素的绝对值更新为绝对值次小值及将第i个校验节点中其他非零元素的绝对值更新为绝对值最小值。这样就完成了对第i个校验节点中所有非零元素的绝对值及符号的更新。
在本实施例中,如图4所示,为了简单的说明该步骤,以 1 ( - 2 ) 0 0 1 ( 3 ) 表示a1, 1 ( - 3 ) 0 0 1 ( - 7 ) 表示a2, 1 ( 6 ) 0 0 1 ( - 4 ) 表示a3, 1 ( 5 ) 0 0 1 ( 7 ) 表示a4为例进行说明,其中元素-2的符号为-1,元素3的符号为+1。在第一个校验节点中,绝对值最小值为2,绝对值次小值为3,第一行第一列的位置为绝对值最小值2(即-2的绝对值)所在的位置,该位置的元素的绝对值用3代替,在计算所述位置的符号时,先将-2的符号为-1乘以-3的符号为-1乘以6的符号+1乘以5的符号+1后即得到+1,再将所得到的+1乘以所述位置中元素-2的符号为-1得到-1,则经过行操作后,第一行第一列的位置的元素为-3,同理按照行操作的步骤更新第一个校验节点中其他非零元素。
步骤S14,行列操作模块134利用迭代方法对校验矩阵H中的当前迭代校验节点进行列操作的同时,并行地对当前迭代校验节点的下一个迭代校验节点进行行操作,直到迭代结束。
在本实施例中,以校验矩阵H有四个校验节点(即M取4为例),三个变量节点为例(N取3为例),如在第一次迭代中,当前迭代校验节点为校验矩阵H的第三个校验节点,其下一个迭代校验节点为第四个校验节点;若当前迭代校验节点为第四个校验节点,其下一个迭代校验节点为第一个校验节点,如此循环。详见图5所示的步骤S14的细化流程图。
步骤S15,列操作模块135对校验矩阵H中第M个校验节点进行列操作以得到每个变量节点中第M个子矩阵的后验似然信息,并记录每个变量节点中第M个子矩阵的后验似然信息中每个非零元素的符号。
当每次迭代中,完成了所述第M个校验节点的列操作时,即完成了所述每个变量节点的p个列和就完成了一次迭代更新。并记录所述每个变量节点的p个列和中每个非零元素的符号以作为译码输出。
步骤S16,输出模块136将存储芯片12中所存储的所述每个变量节点的p个列和中每个非零元素的符号作为译码输出,并通过输出装置17输出。
如图5所示,是本发明准循环LDPC码译码方法的较佳实施例的行列操作的流程图。
步骤S140,行列操作模块134利用行列流水线的方法,在对校验矩阵H的第m-1个校验节点进行列操作以得到每个变量节点中第m-1个子矩阵的后验似然信息时,并行地对第m个校验节点进行行操作以更新第m个校验节点中所有的非零子矩阵中的非零元素。m依次取大于1且不大于M的正整数,即m依次取2、3、….M。
详细地,所述行列流水线是指在任意一次迭代过程中,在对第一个校验节点进行列操作的同时,进行第二个校验节点的行操作;对第二个校验节点进行列操作的同时,进行第三个校验节点的行操作;依次类推,同时对第M-1个校验节点进行列操作和对第M个校验节点进行行操作。所述行操作及列操作都是对校验矩阵H中的非零子矩阵中的非零元素进行处理。
所述对第m-1个校验节点进行列操作,是通过一级二输入加法器计算得到每个变量节点中第m-1个子矩阵(即第m-1个校验节点)的后验似然信息,并根据所述后验似然信息来更新每个变量节点中第m个子矩阵的非零元素。
对每个变量节点中的每个非零子矩阵进行列操作后所计算出的后验似然信息作为每个变量节点的p个列和,这样当完成一次列操作就可更新一次每个变量节点的p个列和,当每个变量节点的所有非零子矩阵的后验似然信息都计算出来后,所述每个变量节点的p个列和就完成了一次迭代更新。
详细地,计算每个变量节点中第m-1个子矩阵的后验似然信息的步骤如下:
在每个变量节点中,会有M个p×p子矩阵,当所述第n个变量节点中第m-1个子矩阵为非零子矩阵时,所述第n个变量节点中第m-1个非零子矩阵的后验似然信息为:第n个变量节点的p个列和的第t列与所述第n个变量节点中第m-1个子矩阵中第t列的非零元素之和再减去所述第n个变量节点中第m个子矩阵中第t列的非零元素所得到的差值。即所得到的每个所述后验似然信息为1×p的矩阵。其中,t依次取1到p间正整数,n依次取1到N间正整数。并将所述1×p的矩阵作为更新后的第n个变量节点的p个列和。
当所述第n个变量节点中第m-1个子矩阵及第m个子矩阵均为非零子矩阵时,所述行列操作模块134将所述第n个变量节点中第m个子矩阵中第t列的非零元素用所述第n个变量节点中第m-1个子矩阵的后验似然信息所对应的所述1×p的矩阵中第t列的元素代替。
当所述第n个变量节点中第m-1个子矩阵为零子矩阵时,所述第n个变量节点中第m-1个子矩阵的后验似然信息不需要更新,所述第n个变量节点中第m个子矩阵的元素也就不用更新,直接对第m个校验节点中第n个子矩阵进行行操作。
所述第m个校验节点的行操作与所述步骤S13中的步骤(a)、(b)、(c)相同。在所述第m个校验节点进行行操作时,需要用到每个变量节点中第m-1个子矩阵的后验似然信息。
在本实施例中,如图4所示,为了清楚地解释上述步骤,以校验矩阵H由3个校验节点及5个变量节点组成(即为3×5的矩阵)为例,其中用a1、a2、a3…a9表示其所在位置的子矩阵为非零p×p子矩阵。在步骤S13中对第一个校验节点进行行操作,由于第一个校验节点中有a1、a2、a3、a4四个非零的p×p子矩阵,需连续的4个时钟周期来完成步骤S13;步骤S140中在对第一个校验节点的非零子矩阵进行列操作时,同时对第二个校验节点的非零子矩阵进行行操作。
在步骤S140中对第二个校验节点的第一个非零子矩阵a5进行行操作时,需要用到第一个变量节点的第1个子矩阵a1的后验似然信息来更新a5,a1的后验似然信息由对第1个校验节点的第1个非零子矩阵a1进行列操作得到,在第5个时钟周期内产生,因此第二个校验节点的a5的行操作将暂停一个时钟周期等待a1的后验似然信息的更新。在第6个时钟周期内,对a5进行行操作时,同时处理第2个变量节点的第1个子矩阵a2的后验似然信息,在第7个时钟周期内,得到第4个变量节点的第1个子矩阵a3的后验似然信息,在第8个时钟周期内,得到第5个变量节点的第1个子矩阵a4的后验似然信息,第9个时钟周期内,对a6进行行操作时,需要由a4的后验似然信息来更新a6,再对a6进行行操作。
同理,对第3个校验节点进行行操作将不需要等待时钟周期,因为第3个校验节点的非零子矩阵是第2、3、4个,而第2个校验节点的第2、3、4个子矩阵是全0子矩阵,所述第2个校验节点的第2、3、4个子矩阵的后验似然信息不需要更新,因此所述第3个校验节点的第2、3、4个非零子矩阵的元素不需要更新,直接在第10个时钟周期内处理第3个校验节点的第2个子矩阵,在第11个时钟周期内处理第3个校验节点的第3个子矩阵,在第12个时钟周期内处理第3个校验节点的第4个子矩阵。
所述每个校验节点的行操作即为由校验节点的信息传递到变量节点上的过程,仅需将由行操作所得到的所述校验节点的绝对值最小值、次小值、所述校验节点的非零子矩阵中每个元素的符号、绝对值最小值的位置存储于存储芯片12中。所述列操作即为每个变量节点传递到校验节点的信息,仅需将由列操作所得到的每个变量节点的p个列和存储于存储芯片12中,而且无需额外的存储芯片来存储信道似然信息,节省了存储资源,从而节省了存储芯片面积。
步骤S141,行列操作模块134根据当前迭代次数Iteration是否达到最大迭代次数Max-Iteration判断是否停止迭代。
当所述当前迭代次数Iteration不等于Max-Iteration时,执行步骤S142;当所述当前迭代次数Iteration等于Max-Iteration时,执行步骤S15。
步骤S142,行列操作模块134利用行列流水线的方法,在对当前迭代次数Iteration中第M个校验节点进行列操作以得到每个变量节点中第M个子矩阵的后验似然信息时,并行地对当前迭代次数Iteration的下一次迭代(Iteration+1)中第一个校验节点进行行操作以更新第一个校验节点中所有的非零子矩阵中的非零元素,完成该步骤后,返回执行步骤S140。
通过本发明,其采用行列流水线的方法对非零子矩阵串行执行,在对校验节点的行操作中利用一级二输入比较器,对变量节点的列操作中利用一级二输入加法器,从而使关键路径降低,同时也保证每次迭代的时钟周期数最少,又能保证码间无间隙,从而提高吞吐率;在译码的过程中,仅需将由行操作所得到的所述校验节点的绝对值最小值、次小值、所述校验节点的非零子矩阵中每个元素的符号、绝对值最小值的位置存储于存储芯片中及将由列操作所得到的每个变量节点的p个列和存储于存储芯片中无,而且无需额外的存储芯片来存储信道似然信息,节省了存储资源,从而节省了芯片面积。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (14)

1.一种准循环LDPC码译码方法,应用于译码器中,其特征在于,该方法包括:
接收步骤,接收输入的数据并存入译码器的存储芯片中;
读取步骤,从存储芯片中依次读取校验矩阵H中的所有非零子矩阵所对应的数据;
计算初始化步骤,通过一级二输入加法器来计算所述校验矩阵H的每个变量节点中每列的和以初始化每个变量节点的p个列和,并将所述每个变量节点的p个列和存储于所述存储芯片中,所述H为M×N的稀疏矩阵,所述H的每个元素为一个p×p的子矩阵,所述子矩阵或为全0或为一个把单位阵进行循环移位后的矩阵,所述p个列和为在每个变量节点中,对M个p×p的子矩阵中每个相同列号的列进行求和,所述p为正整数;
行操作步骤,对校验矩阵H的第一个校验节点进行行操作以更新该第一个校验节点中每个非零子矩阵中的非零元素;
行列操作步骤,利用迭代方法对校验矩阵H中的当前迭代校验节点进行列操作的同时,并行地对当前迭代校验节点的下一个迭代校验节点进行行操作,直到迭代结束;
列操作步骤,对第M个校验节点进行列操作以更新每个变量节点的p个列和,并将该每个变量节点的p个列和中每个非零元素的符号存储于所述存储芯片中;
输出步骤,将所述存储芯片中所存储的每个变量节点的p个列和中每个非零元素的符号通过译码器的输出装置输出。
2.如权利要求1所述的准循环LDPC码译码方法,其特征在于,所述行操作步骤包括:
查找步骤,利用一级二输入比较器查找校验矩阵H的第i个校验节点中的绝对值最小值及绝对值次小值,并存储所述绝对值最小值及其位置、绝对值次小值及第i个校验节点中每个非零元素的符号到所述存储芯片,所述i取大于0且不大于M的正整数;
更新符号步骤,更新第i个校验节点中每个非零子矩阵中非零元素的符号;
更新数值步骤,将第i个校验节点中所述绝对值最小值所在位置的元素的绝对值更新为绝对值次小值及将第i个校验节点中其他非零元素的绝对值更新为绝对值最小值。
3.如权利要求1所述的准循环LDPC码译码方法,其特征在于,所述行列操作步骤包括:
(a)利用行列流水线的方法迭代,在对第m-1个校验节点进行列操作以得到每个变量节点中第m-1个子矩阵的后验似然信息时,并行地对第m个校验节点进行行操作以更新第m个校验节点中所有的非零子矩阵中的非零元素,所述m依次取大于1且不大于M的正整数,对每个变量节点中的每个非零子矩阵进行列操作后所计算出的后验似然信息作为每个变量节点的p个列和;
(b)判断是否继续迭代;
(c)当继续迭代时,在对当前迭代次数Iteration中第M个校验节点进行列操作以得到每个变量节点中第M个子矩阵的后验似然信息时,并行地对当前迭代次数Iteration的下一次迭代Iteration+1中第一个校验节点进行行操作以更新所述第一个校验节点中所有的非零子矩阵中的非零元素。
4.如权利要求3所述的准循环LDPC码译码方法,其特征在于,所述行列操作步骤,通过所述一级二输入加法器计算得到每个变量节点中第m-1个子矩阵的后验似然信息,再根据所述后验似然信息更新每个变量节点中第m个子矩阵的非零元素。
5.如权利要求3所述的准循环LDPC码译码方法,其特征在于,所述行列流水线是指在任意一次迭代过程中,在对第一个校验节点的进行列操作的同时,进行第二个校验节点的行操作;在对第二个校验节点进行列操作的同时,进行第三个校验节点的行操作;依次类推,同时对第M-1个校验节点进行列操作和对第M个校验节点进行行操作,所述行操作及列操作都是对校验矩阵H中的非零子矩阵进行处理。
6.如权利要求3所述的准循环LDPC码译码方法,其特征在于,在行列操作步骤中:
当所述第n个变量节点中第m-1个子矩阵为非零子矩阵时,所述第n个变量节点中第m-1个非零子矩阵的后验似然信息为:第n个变量节点的p个列和的第t列与所述第n个变量节点中第m-1个子矩阵中第t列的非零元素之和再减去所述第n个变量节点中第m个子矩阵中第t列的非零元素所得到的差值,即所得到的每个所述后验似然信息为1×p的矩阵,所述t依次取1到p间正整数,n依次取1到N间正整数;
当所述第n个变量节点中第m-1个子矩阵及第m个子矩阵均为非零子矩阵时,将所述第n个变量节点中第m个子矩阵中第t列的非零元素用所述第n个变量节点中第m-1个子矩阵的后验似然信息所对应的所述1×p的矩阵中第t列的元素代替;
当所述第n个变量节点中第m-1个子矩阵为零子矩阵时,所述第n个变量节点中第m-1个子矩阵的后验似然信息不需要更新,所述第n个变量节点中第m个子矩阵的元素也就不用更新,直接对第m个校验节点中第n个子矩阵进行行操作。
7.如权利要求2所述的准循环LDPC码译码方法,其特征在于,所述更新符号步骤还包括:在处理第i个校验节点的一个非零p×p子矩阵的一个非零元素时,先将该第i个校验节点中所有非零子矩阵中与所述非零元素所在行号相同的所有非零元素的符号相乘,再将相乘后的符号与所述存储芯片中所存储的所述非零元素的符号相乘,即得到更新后的所述非零元素的符号。
8.一种准循环LDPC码译码系统,运行于译码器中,其特征在于,该系统包括:
接收模块,用于接收输入的数据并存入译码器的存储芯片中;
读取模块,用于从存储芯片中依次读取校验矩阵H中的所有非零子矩阵所对应的数据;
计算模块,用于通过一级二输入加法器来计算所述校验矩阵H的每个变量节点中每列的和以初始化每个变量节点的p个列和,并将所述每个变量节点的p个列和存储于所述存储芯片中,所述H为M×N的稀疏矩阵,所述H的每个元素为一个p×p的子矩阵,所述子矩阵或为全0或为一个把单位阵进行循环移位后的矩阵,所述p个列和为在每个变量节点中,对M个p×p的子矩阵中每个相同列号的列进行求和,所述p为正整数;
行操作模块,用于对校验矩阵H的第一个校验节点进行行操作以更新该第一个校验节点中每个非零子矩阵中的非零元素;
行列操作模块,用于利用迭代方法对校验矩阵H中的当前迭代校验节点进行列操作的同时,并行地对当前迭代校验节点的下一个迭代校验节点进行行操作,直到迭代结束;
列操作模块,用于对第M个校验节点进行列操作更新每个变量节点的p个列和,并将该每个变量节点的p个列和中每个非零元素的符号存储于所述存储芯片中;
输出模块,用于将所述存储芯片中所存储的每个变量节点的p个列和中每个非零元素的符号通过译码器的输出装置输出。
9.如权利要求8所述的准循环LDPC码译码系统,其特征在于,所述行操作模块包括:
查找子模块,用于利用一级二输入比较器查找校验矩阵H的第i个校验节点中的绝对值最小值及绝对值次小值,并存储所述绝对值最小值及其位置、绝对值次小值及第i个校验节点中每个非零元素的符号到所述存储芯片,所述i取大于0且不大于M的正整数;
更新符号子模块,用于更新第i个校验节点中每个非零子矩阵中非零元素的符号;
更新数值子模块,用于将第i个校验节点中所述绝对值最小值所在位置的元素的绝对值更新为绝对值次小值及将第i个校验节点中其他非零元素的绝对值更新为绝对值最小值。
10.如权利要求8所述的准循环LDPC码译码系统,其特征在于,所述行列操作模块进一步用于:
利用行列流水线的方法迭代,在对第m-1个校验节点进行列操作以得到每个变量节点中第m-1个子矩阵的后验似然信息时,并行地对第m个校验节点进行行操作以更新第m个校验节点中所有的非零子矩阵中的非零元素;
当继续迭代时,在对当前迭代次数Iteration中第M个校验节点进行列操作以得到每个变量节点中第M个子矩阵的后验似然信息时,并行地对当前迭代次数Iteration的下一次迭代Iteration+1中第一个校验节点进行行操作以更新所述第一个校验节点中所有的非零子矩阵中的非零元素;
所述m依次取大于1且不大于M的正整数,对每个变量节点中的每个非零子矩阵进行列操作后所计算出的后验似然信息作为每个变量节点的p个列和。
11.如权利要求10所述的准循环LDPC码译码系统,其特征在于,所述行列操作模块,进一步用于通过所述一级二输入加法器计算得到每个变量节点中第m-1个子矩阵的后验似然信息,再根据所述后验似然信息更新每个变量节点中第m个子矩阵的非零元素。
12.如权利要求10所述的准循环LDPC码译码系统,其特征在于,所述行列流水线是指在任意一次迭代过程中,在对第一个校验节点的进行列操作的同时,进行第二个校验节点的行操作;在对第二个校验节点进行列操作的同时,进行第三个校验节点的行操作;依次类推,同时对第M-1个校验节点进行列操作和对第M个校验节点进行行操作,所述行操作及列操作都是对校验矩阵H中的非零子矩阵进行处理。
13.如权利要求10所述的准循环LDPC码译码系统,其特征在于,所述行列操作模块,进一步用于当所述第n个变量节点中第m-1个子矩阵为非零子矩阵时,所述第n个变量节点中第m-1个非零子矩阵的后验似然信息为:第n个变量节点的p个列和的第t列与所述第n个变量节点中第m-1个子矩阵中第t列的非零元素之和再减去所述第n个变量节点中第m个子矩阵中第t列的非零元素所得到的差值,即所得到的每个所述后验似然信息为1×p的矩阵,所述t依次取1到p间正整数,n依次取1到N间正整数;
当所述第n个变量节点中第m-1个子矩阵及第m个子矩阵均为非零子矩阵时,将所述第n个变量节点中第m个子矩阵中第t列的非零元素用所述第n个变量节点中第m-1个子矩阵的后验似然信息所对应的所述1×p的矩阵中第t列的元素代替;
当所述第n个变量节点中第m-1个子矩阵为零子矩阵时,所述第n个变量节点中第m-1个子矩阵的后验似然信息不需要更新,所述第n个变量节点中第m个子矩阵的元素也就不用更新,直接对第m个校验节点中第n个子矩阵进行行操作。
14.如权利要求9所述的准循环LDPC码译码系统,其特征在于,所述更新符号子模块,进一步用于在处理第i个校验节点的一个非零p×p子矩阵的一个非零元素时,先将该第i个校验节点中所有非零子矩阵中与所述非零元素所在行号相同的所有非零元素的符号相乘,再将相乘后的符号与所述存储芯片中所存储的所述非零元素的符号相乘,即得到更新后的所述非零元素的符号。
CN201310276945.1A 2013-07-03 2013-07-03 准循环ldpc码译码方法及系统 Active CN103384153B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310276945.1A CN103384153B (zh) 2013-07-03 2013-07-03 准循环ldpc码译码方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310276945.1A CN103384153B (zh) 2013-07-03 2013-07-03 准循环ldpc码译码方法及系统

Publications (2)

Publication Number Publication Date
CN103384153A CN103384153A (zh) 2013-11-06
CN103384153B true CN103384153B (zh) 2016-05-18

Family

ID=49491865

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310276945.1A Active CN103384153B (zh) 2013-07-03 2013-07-03 准循环ldpc码译码方法及系统

Country Status (1)

Country Link
CN (1) CN103384153B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105024704B (zh) * 2015-07-17 2018-04-10 西安空间无线电技术研究所 一种低复杂度的列分层ldpc译码器实现方法
CN106849959B (zh) * 2016-12-30 2020-08-11 深圳忆联信息系统有限公司 数据处理方法及译码器
CN106877880A (zh) * 2016-12-30 2017-06-20 北京联想核芯科技有限公司 数据处理方法及译码器
CN111384970B (zh) * 2018-12-29 2022-04-15 大唐移动通信设备有限公司 一种译码方法、装置及通信设备
CN112583420B (zh) * 2019-09-30 2024-01-09 上海华为技术有限公司 一种数据处理方法和译码器
CN111988136B (zh) * 2020-07-03 2022-03-18 中国电子科技集团公司第三十研究所 一种用于连续变量量子密钥分发的多精度译码装置与方法
WO2022204900A1 (zh) * 2021-03-29 2022-10-06 华为技术有限公司 一种ldpc码的译码方法及ldpc码的译码器
CN117375636B (zh) * 2023-12-07 2024-04-12 成都星联芯通科技有限公司 提高qc-ldpc译码器吞吐率的方法、装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1713530A (zh) * 2004-06-22 2005-12-28 印芬龙科技股份有限公司 解码低密度奇偶校验(ldpc)码字的ldpc解码器
CN101188426A (zh) * 2007-12-05 2008-05-28 深圳国微技术有限公司 用于对准循环结构的ldpc码进行并行处理的译码器及方法
CN102281125A (zh) * 2011-07-29 2011-12-14 上海交通大学 分层分块非规则低密度校验码译码器及译码方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100594818B1 (ko) * 2004-04-13 2006-07-03 한국전자통신연구원 순차적 복호를 이용한 저밀도 패리티 검사 부호의 복호장치 및 그 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1713530A (zh) * 2004-06-22 2005-12-28 印芬龙科技股份有限公司 解码低密度奇偶校验(ldpc)码字的ldpc解码器
CN101188426A (zh) * 2007-12-05 2008-05-28 深圳国微技术有限公司 用于对准循环结构的ldpc码进行并行处理的译码器及方法
CN102281125A (zh) * 2011-07-29 2011-12-14 上海交通大学 分层分块非规则低密度校验码译码器及译码方法

Also Published As

Publication number Publication date
CN103384153A (zh) 2013-11-06

Similar Documents

Publication Publication Date Title
CN103384153B (zh) 准循环ldpc码译码方法及系统
US10536169B2 (en) Encoder and decoder for LDPC code
CN101079639B (zh) 基于节点存储器的低密度奇偶校验解码装置和方法
CN101836191B (zh) 使用多校验节点算法的纠错解码器
CN102394661B (zh) 基于层译码处理的ldpc译码器及译码方法
US8756479B2 (en) LDPC multi-decoder architectures
US10361723B2 (en) Decoding of non-binary LDPC codes
US8954820B2 (en) Reduced complexity non-binary LDPC decoding algorithm
US20160336964A1 (en) Systems and methods for early exit of layered ldpc decoder
CN101232288B (zh) 一种基于奇偶校验矩阵的ldpc码的译码方法及译码器
CN106936444B (zh) 一种集合译码方法和集合译码器
US20220255560A1 (en) Method and apparatus for vertical layered decoding of quasi-cyclic low-density parity check codes built from clusters of circulant permutation matrices
CN102664638A (zh) 基于分层nms算法的多码长ldpc码译码器的fpga实现方法
CN103325425B (zh) 存储器控制器
US9553608B2 (en) Data storage device decoder and method of operation
CN102291153B (zh) Cmmb中ldpc码的译码方法及部分并行译码器
US20170163288A1 (en) On-the-fly evaluation of the number of errors corrected in iterative ecc decoding
CN100544212C (zh) 高速的减少存储需求的低密度校验码解码器
CN102412844A (zh) 一种ira类ldpc码的译码方法及译码装置
CN101478312A (zh) 一种ldpc译码器及其实现译码的方法
CN105164646A (zh) 具有早期解码终止检测的解码器
CN102594369B (zh) 基于fpga的准循环低密度校验码译码器及译码方法
CN100578945C (zh) 一种ldpc码的译码器装置及译码方法
TW201029337A (en) Method for decoding LDPC code and the circuit thereof
Wu et al. Updating conflict solution for pipelined layered LDPC decoder

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: SHENZHEN INSTITUTE OF STINGHUA UNIVERSITY

Effective date: 20140801

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20140801

Address after: 100084 Haidian District Tsinghua Tsinghua University - Foxconn nanotechnology research center room,, Beijing

Applicant after: Tsinghua University

Applicant after: Shenzhen Institute of Stinghua University

Address before: 100084 Beijing Beijing 100084-82 mailbox

Applicant before: Tsinghua University

C14 Grant of patent or utility model
GR01 Patent grant