CN102064837B - 基于fifo分段存储的qc-ldpc码部分并行译码方法 - Google Patents

基于fifo分段存储的qc-ldpc码部分并行译码方法 Download PDF

Info

Publication number
CN102064837B
CN102064837B CN 201010604644 CN201010604644A CN102064837B CN 102064837 B CN102064837 B CN 102064837B CN 201010604644 CN201010604644 CN 201010604644 CN 201010604644 A CN201010604644 A CN 201010604644A CN 102064837 B CN102064837 B CN 102064837B
Authority
CN
China
Prior art keywords
memory cell
memory space
cfu
vfu
line
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 201010604644
Other languages
English (en)
Other versions
CN102064837A (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.)
Xidian University
Original Assignee
Xidian 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 Xidian University filed Critical Xidian University
Priority to CN 201010604644 priority Critical patent/CN102064837B/zh
Publication of CN102064837A publication Critical patent/CN102064837A/zh
Application granted granted Critical
Publication of CN102064837B publication Critical patent/CN102064837B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种基于FIFO分段存储的QC-LDPC码部分并行译码方法,主要解决现有技术在QC-LDPC译码硬件实现中存在的大量地址控制逻辑的问题。其技术要点是:根据校验矩阵H的准循环特性,确定独立的译码单元,并对其分块;将译码更新过程转化成了独立译码单元的行更新和列更新;利用一组FIFO建立形成CFU存储空间和VFU存储空间,将存储单元进行连接,并加入切换信号;在独立译码单元的行更新和列更新时,通过切换信号对CFU存储空间和VFU存储空间进行选择,并通过对CFU存储空间或者VFU存储空间的内部循环移位完成。该译码方法操作简单,取消了硬件实现中的大量地址控制逻辑操作,便于在工程上实现QC-LDPC码的高速并行译码,可用于QC-LDPC码部分并行译码器的硬件实现。

Description

基于FIFO分段存储的QC-LDPC码部分并行译码方法
技术领域
本发明属于通信技术领域,具体涉及一种基于先进先出FIFO的分段存储的准循环低密度奇偶校验QC-LDPC码部分并行译码方法,可用于高速QC-LDPC译码器的实现。
技术背景
LDPC码最早由Gallager于1962年首次提出,并与上个世纪90年代重新被研究。LDPC码是一种具有稀疏校验矩阵的线性分组码,具有以下特点:能够逼近香农限的性能特性,在许多场合下性能优于Turbo码;而且由于校验矩阵的稀疏性,译码的复杂度低,并可实现并行操作,便于硬件实现;具有较大的灵活性和较低的差错平层特性;描述简单,对严格的理论分析具有可验证性;具有简单的二分图编码的数学模型。LDPC码是近年信道编码领域的研究热点,目前已广泛应用于深空通信、光纤通信、卫星数字视频和音频广播等领域。
QC-LDPC码是一类特殊的LDPC码,其校验矩阵由一系列相同大小的稀疏矩阵组合而成,也就是说,其H校验矩阵具有准循环的特性。QC-LDPC码的校验矩阵表示形式如下:
H bM × bN = A 1,1 A 1 , 2 Λ A 1 , N A 2,1 A 2,2 Λ A 2 , N M M O M A M , 1 A M , 2 Λ A M , 2
Ai,j是大小为b×b的循环方阵,是由ω个单位阵循环右移
Figure BDA0000040373270000012
的方阵
Figure BDA0000040373270000013
相加而成,则Ai,j的行重和列重为ω,
Figure BDA0000040373270000014
Figure BDA0000040373270000015
中第一行“1”的位置。其中
Figure BDA0000040373270000016
Figure BDA0000040373270000017
LDPC码的译码算法主要包括和积算法SPA,最小和算法MS和改进最小和算法NMS。其中:
和积算法中,存在大量的tanh和它的反函数运算,这对于硬件实现来说,算法的复杂度依然很高;
最小和算法以及改进的最小和算法,其主要思想是对函数进行简化,把复杂的三角函数求取的过程简化为最小值和次小值的选取,且最小和以及改进算法,不用对信道噪声进行估计。现在在硬件实现时,LDPC译码运算中一般应用最小和或者其改进算法。下面给出在加性高斯白噪声信道下最小和算法的译码步骤:
1、初始化
Lui=yi=mvi
2、校验节点更新
计算每个校验节点将要传递给变量节点的值ml cji。在实际运算中,可以分为如下两个步骤执行:
(1)校验节点从与之相连的变量节点的信息中选取最小值和次小值,同时计算校验和,即
m min _ j l = min i ∈ Vcj ( | m vij l | )
m min _ 2 nd _ j l = 2 nd _ min i ∈ Vcj ( | m vij l | )
sign j l = Π i ∈ Vcj sgn ( | m vij l | )
(2)计算校验节点传递给变量节点的信息
如果
Figure BDA0000040373270000024
是最小值,则
Figure BDA0000040373270000025
否则的话,有
Figure BDA0000040373270000026
3、变量节点更新
计算每个变量节点需要传递给校验节点的值
Figure BDA0000040373270000027
m vij l = m vi + Σ m c j ′ i l j ′ ∈ Cvj \ j
4、判决
计算后验概率:
L i = m vi + Σm c j ′ i l j ′ ∈ Cvj
然后对后验概率进行判决:当Li<0时,Ci=1;当Li≥0时,Ci=0。
5、校验
最后对判决的输出进行判断:如果满足
Figure BDA00000403732700000210
则结果满足校验方程,认为迭代结束;如果不满足上面的方程,表示结果错误,需要进一步迭代,返回步骤2。
QC-LDPC码的译码是根据H矩阵完成的,译码过程主要是变量节点更新VFU和校验节点更新CFU,它们分别按照H矩阵的行列进行更新。根据H矩阵的准循环特性,每一个Ai,j是一个独立的单元,Ai,j中每一条线对应一个存储空间每个存储空间包含b个存储单元。CFU和VFU更新,相当于更新每个
Figure BDA0000040373270000032
中b个存储单元中的信息。
Figure BDA0000040373270000033
中b个存储单元与Ai,j中每个非零位置节点一一对应。
进行CFU更新时,将ω个
Figure BDA0000040373270000034
中每一行校验节点的非零位置对应存储空间
Figure BDA0000040373270000035
的存储单元中的信息取出,连同H矩阵中其他位于同一行的(N-1)个Ai,j的一共ω×N个值进行CFU运算,将运算结果作为外信息存到原来的存储单元中,从而实现了校验节点对应的存储信息更新。CFU更新,是按照H矩阵的行进行的。
进行VFU更新时,将ω个
Figure BDA0000040373270000036
中每一列变量节点的非零位置对应存储空间
Figure BDA0000040373270000037
的存储单元中的信息取出,连同H矩阵中其他位于同一列的(M-1)个Ai,j的一共ω×M个值进行VFU运算,将运算结果作为先验信息存到原来的存储单元中,从而实现了变量节点对应的存储信息更新。VFU更新,是按照H矩阵的列进行的。
CFU和VFU更新采用同一个共享存储空间,由于Ai,j中ω个
Figure BDA0000040373270000038
各不相同,在CFU更新时,存储空间的存取从第
Figure BDA0000040373270000039
个存储单元开始;而在VFU更新时,存储空间的存取从第0个存储单元开始。CFU和VFU更新过程,存储空间的起始位置并不相同,这导致硬件实现中需要一定的控制逻辑,实现不同存取位置的对应。
LDPC译码器实现结构主要分为串行、并行和部分并行三种。完全并行结构,具有高的数据吞吐率,可以实现高速译码,但是这种方法占用的资源会随着数据块长度的增加而快速增加,导致资源消耗的代价过大,布局困难,而最终难以实现。串行结构,不会有资源消耗过高的问题,但当码长增加时,一次译码迭代所需时钟周期数也随之增加,这会导致数据吞吐率的急速下降。部分并行结构,是前两种结构的折中,达到了译码器数据吞吐率和资源占用的平衡。由于QC-LDPC校验矩阵具有准循环的特点,所以功能单元可以通过复用来减少资源的耗用,根据码字结构及实际系统的要求,有针对性的调整并行度的大小,兼顾资源消耗和速度问题,同时不以牺牲译码性能为代价。现在的QC-LDPC译码器一般采用部分并行译码。QC-LDPC采用共享存储的迭代译码结构如图1。
然而即使在采用部分并行译码方法的QC-LDPC译码器实现中,依然存在以下问题,导致译码的控制逻辑操作过于复杂:校验节点更新和变量节点更新时,存储空间的起始地址不同,这样对于不同的校验矩阵结构,当进行校验更新和变量更新时,需要对不同的存储空间分别进行读写地址初值写入操作,导致硬件实现中需要大量的控制逻辑进行地址控制。
发明内容
本发明的目的在于针对现有QC-LDPC译码器中地址控制逻辑操作复杂的缺点,提出一种基于FIFO分段存储的QC-LDPC码部分并行译码方法,减少对存储空间的读写地址初值的写入操作,取消硬件实现中的控制逻辑和地址控制,实现工程上的高速QC-LDPC译码。
为实现上述目的,本发明的一种基于FIFO分段存储的QC-LDPC部分并行译码方法,包括如下步骤:
(1)已知校验矩阵HbM×bN由M×N个大小为b×b的循环方阵Ai,j构成,其中Ai,j由ω个b×b的单位阵循环右移次的方阵相加而成,这些方阵记为
Figure BDA0000040373270000042
并以
Figure BDA0000040373270000043
作为独立的译码单元,下标d的取值范围为1~ω,
Figure BDA0000040373270000044
是方阵
Figure BDA0000040373270000045
第一行中“1”的位置,
Figure BDA0000040373270000046
称为起始地址,
Figure BDA0000040373270000047
的取值范围为0~(b-1);
(2)将独立的译码单元
Figure BDA0000040373270000048
分成均匀的块,设块的大小为J×J,分成的块数K=b/J,该块数K称为译码并行度,中第m行第n列的块用
Figure BDA00000403732700000410
表示,并以
Figure BDA00000403732700000411
作为最小的译码单元,
Figure BDA00000403732700000412
中下标m和n的取值范围都为1~K;
(3)设起始地址
Figure BDA00000403732700000413
的表达式为
Figure BDA00000403732700000414
其中a是
Figure BDA00000403732700000415
被J整除的最大整数,a称为空间起始位置,a的可能取值为0~(K-1),β是
Figure BDA00000403732700000416
除以J的余数,β称为偏移地址,β的可能取值为0~(J-1);
(4)将
Figure BDA0000040373270000051
一共K个最小译码单元合并成一个大块,记为
Figure BDA0000040373270000052
Figure BDA0000040373270000053
每个
Figure BDA0000040373270000054
包含J行,b列,则
Figure BDA0000040373270000055
把每一个
Figure BDA0000040373270000056
作为译码时校验节点更新的最小更新单元,根据每个
Figure BDA0000040373270000057
构建对应的一个CFU存储空间R’m,下标m的取值范围是1~K,在每个周期内完成对K个最小更新单元
Figure BDA0000040373270000058
中同一行的更新,经过J=b/K个周期,完成对独立译码单元
Figure BDA0000040373270000059
的行更新;
(5)将
Figure BDA00000403732700000510
一共K个最小译码单元合并成一个大块,记为
Figure BDA00000403732700000511
Figure BDA00000403732700000512
每个
Figure BDA00000403732700000513
包含b行,J列,则
Figure BDA00000403732700000514
把每一个
Figure BDA00000403732700000515
作为译码时变量节点更新的最小更新单元,根据每个
Figure BDA00000403732700000516
构建对应的一个VFU存储空间R”n,下标n的取值范围是1~K,在每个周期内完成对K个最小更新单元
Figure BDA00000403732700000517
中同一列的更新,经过J=b/K个周期,完成对独立译码单元
Figure BDA00000403732700000518
的列更新;
(6)设译码过程的迭代次数为N,重复步骤(4)和步骤(5)N次,得到译码结果为C,直到满足译码终止条件时
Figure BDA00000403732700000519
完成QC-LDPC码部分并行译码。
本发明具有以下优点:
(1)本发明由于根据实际要求适当改变独立译码单元
Figure BDA00000403732700000520
均匀分块的块大小J,从而可以提高译码并行度,实现工程上的高速QC-LDPC译码。
(2)本发明由于把译码更新过程转化成了独立译码单元
Figure BDA00000403732700000521
的行更新和独立译码单元
Figure BDA00000403732700000522
的列更新,并在独立译码单元
Figure BDA00000403732700000523
的行更新和独立译码单元
Figure BDA00000403732700000524
的列更新过程中应用了CFU存储空间和VFU存储空间,从而减少了对读写地址初值的写入操作,并且取消了硬件实现中的控制逻辑和地址控制。
附图说明
图1是现有采用共享存储的QC-LDPC整个迭代译码结构;
图2是本发明的译码流程图;
图3是本发明在β=0时构建的CFU存储空间示意图;
图4是本发明在β≠0时构建的CFU存储空间示意图;
图5是本发明用CFU存储空间重新组合构建形成的VFU存储空间示意图;
图6是本发明对CFU存储空间和VFU存储空间的初始化结果图。
具体实施步骤
下面参照附图,具体说明本发明的实施步骤。
参照图2,本发明的译码步骤如下:
步骤1,确定独立的译码单元。
QC-LDPC码的校验矩阵HbM×bN具有准循环特性,校验矩阵HbM×bN的表达形式如下:
H bM × bN = A 1,1 A 1 , 2 Λ A 1 , N A 2,1 A 2,2 Λ A 2 , N M M O M A M , 1 A M , 2 Λ A M , 2
Ai,j是校验矩阵HbM×bN中大小为b×b的循环方阵,其中i的取值范围为1~M,j的取值范围为1~N,该Ai,j由ω个b×b的单位阵循环右移
Figure BDA0000040373270000062
次的方阵相加而成,这些方阵记为
Figure BDA0000040373270000063
并以
Figure BDA0000040373270000064
作为独立的译码单元,下标d的取值范围为1~ω,是方阵
Figure BDA0000040373270000066
第一行中“1”的位置,
Figure BDA0000040373270000067
称为起始地址,
Figure BDA0000040373270000068
的取值范围为0~(b-1);
步骤2,对独立译码的单元分块,并确定最小译码单元。
将独立的译码单元
Figure BDA0000040373270000069
分成均匀的块,设块的大小为J×J,分成的块数K=b/J,该块数K称为译码并行度,
Figure BDA00000403732700000610
中第m行第n列的块用
Figure BDA00000403732700000611
表示,并以作为最小的译码单元,
Figure BDA00000403732700000613
中下标m和n的取值范围都为1~K。
步骤3,将最小译码单元合并。
3a)将
Figure BDA00000403732700000614
一共K个最小译码单元合并成一个大块,记为
Figure BDA00000403732700000615
Figure BDA00000403732700000616
每个
Figure BDA00000403732700000617
包含J行,b列,则
Figure BDA00000403732700000618
把每一个作为译码时校验节点更新的最小更新单元,每个
Figure BDA00000403732700000620
对应一个CFU存储空间R’m,下标m的取值范围为1~K;
3b)将
Figure BDA0000040373270000071
一共K个最小译码单元合并成一个大块,记为
Figure BDA0000040373270000073
每个
Figure BDA0000040373270000074
包含b行,J列,则
Figure BDA0000040373270000075
把每一个
Figure BDA0000040373270000076
作为译码时变量节点更新的最小更新单元,每个
Figure BDA0000040373270000077
对应一个VFU存储空间R”n,下标n的取值范围是1~K,在每个周期内完成对K个最小更新单元
Figure BDA0000040373270000078
中同一列的更新,经过J=b/K个周期,完成对独立译码单元
Figure BDA0000040373270000079
的列更新,下标n的取值范围为1~K。
步骤4,计算起始地址a和偏移地址β。
起始地址
Figure BDA00000403732700000710
的表达式为
Figure BDA00000403732700000711
其中a是
Figure BDA00000403732700000712
被J整除的最大整数,a称为空间起始位置,a的取值为0~(K-1),β是
Figure BDA00000403732700000713
除以J的余数,β称为偏移地址,β的取值为0~(J-1)。
步骤5,利用一组FIFO构建CFU存储空间和VFU存储空间。
5a)构建CFU存储空间
CFU存储空间R’m,它由1~2个FIFO根据偏移地址β的不同取值和空间起始位置a构建:
参照图3,当β=0时,构建的CFU存储空间为:每个CFU存储空间R’m由一个深度为J的FIFO构成,每个FIFO包含J=b/K个存储单元,并将来自信道的第(j-1)×b+{a×J+(u-1)×J+X}mod b个的待译码值存入CFU存储空间R’u的第X个存储单元中,其中j为Ai,j中的上标中的j,j的取值范围为1~N,u表示第u个CFU存储空间,取值范围为1~K,X表示第X个存储单元,取值范围为1~J。每个存储单元都连接数据输入和数据输出线,数据输出线与相邻的前一个存储单元数据输入线连接,第1个存储单元的数据输出线与译码器中的校验节点更新单元的数据输入线连接,校验节点更新单元的数据输出线与第J个存储单元的数据输入线连接,这样构建形成CFU存储空间R’m
参照图4,当β≠0时,构建的CFU存储空间为:每个CFU存储空间R’m由深度分别为J-β和β的两个FIFO组合而成,即SC1m和SC2m,其中SC1m包含J-β个存储单元,SC2m包含β个存储单元,则每个CFU存储空间R’m包含J个存储单元。将来自信道的第(j-1)×b+{a×J+β+(u-1)×J+Y-1}mod b个的待译码值存入CFU存储空间R’u中SC1u的第Y个存储单元,且将来自信道的第(j-1)×b+{[(a+1)×J+(u-1)×J+Z-1]mod b}个的待译码值存入CFU存储空间R’u中SC2u的第Z个存储单元,其中j为Ai,j中的上标中的j,j取值范围为1~N,u表示第u个CFU存储空间,取值范围为1~K,Y和Z表示第Y个存储单元和第Z个存储单元,Y的取值范围为1~J-β,Z的取值范围为1~β。SC1m和SC2m中的每个存储单元都连接数据输入和数据输出线,数据输出线与相邻的前一个存储单元数据输入线连接,SC1m中第1个存储单元的数据输出线与译码器中的校验节点更新单元的数据输入线连接,SC2m中的第1个存储单元的数据输出线与SC1m中第J-β个存储单元的数据输入线连接,校验节点更新单元的数据输出线与SC2m中第β个存储单元的数据输入线连接,这样的构建形成CFU存储空间R’m
5b)构建VFU存储空间
VFU存储空间R”n,它是根据偏移地址β的不同取值和空间起始位置a,通过对K个CFU存储空间R’m调整顺序或重新组合构建:
当β=0,调整K个CFU存储空间R’m的顺序构建形成K个VFU存储空间R”n,设第s个CFU存储空间R’s为第t个VFU存储空间R”t,s,t之间的关系为:
t = s + a , 1 ≤ s ≤ K - a s + a - K , K - a + 1 ≤ s ≤ K ,
则每个VFU存储空间为一个深度为J的FIFO,每个FIFO包含J=b/K个存储单元,每个存储单元都连有输入输出数据线,数据输出线与相邻的前一个存储单元的数据输入线连接,第1个存储单元的数据输出线与变量节点更新单元的数据输入线连接,变量节点更新单元的数据输出线与第J个存储单元的数据输入线连接,这样构建形成VFU空间R”n
参照图5,当β≠0,用CFU存储空间重新组合构建形成的VFU存储空间R”q由SC2p和SC1p+1组成,其中SC2p是CFU存储空间R’p的一个FIFO,SC1p+1是CFU存储空间R’p+1的一个FIFO,下标p表示第p个CFU存储空间,下标q表示第q个VFU存储空间,p和q之间的关系为:
q = p + a , 1 ≤ p ≤ K - a p + a - K , K - a + 1 ≤ p ≤ K ,
SC2p包含β个存储单元,SC1p+1包含J-β个存储单元,则VFU存储空间R”q一共包含J个存储单元,SC2p和SC1p+1中的每个存储单元都连接数据输入线和数据输出线,数据输出线与相邻的前一个存储单元数据输入线连接,SC2p的第1个存储单元的数据输出线与译码器中的变量节点更新单元的数据输入线连接,SC1p+1的第1个存储单元的数据输出线与SC2p中第β个存储单元的数据输入线连接,变量节点更新单元的数据输出线与SC1p+1中第J-β个存储单元的数据输入线连接,这样构建形成VFU存储空间R”q
步骤6,对CFU存储空间和VFU存储空间初始化。
参照图6,对CFU存储空间和VFU存储空间的初始化过程为:完成FIFO之间的全部连接,并且在每个FIFO的末单元前加入一个二选一选择器和空间切换控制信号SW,其中SW信号用来对CFU存储空间和VFU存储空间进行选择,当空间切换控制信号SW=1时,选择CFU存储空间的连接方式,在图6中虚线显示,此时形成CFU存储空间;当空间控制信号SW=0时,选择VFU存储空间的连接方式,在图6中实线显示,此时形成VFU存储空间。
步骤7,独立译码单元的行更新。
在每个周期内完成对K个最小更新单元
Figure BDA0000040373270000091
中同一行的更新,经过J=b/K个周期,完成对独立译码单元
Figure BDA0000040373270000092
的行更新,此过程是通过CFU存储空间R’m的内部循环移位实现的。令空间切换控制信号SW=1,选择CFU存储空间,从每个CFU存储空间的第1个存储单元取出存储信息送入校验节点计算单元,同时将每个CFU存储空间中的第2~J个存储单元中的存储信息逐个上移到第1~(J-1)个存储单元,并将校验节点计算单元的计算结果送入每个CFU存储空间的第J个存储单元,完成一次CFU存储空间R’m的内部循环移位,重复上述操作J次后停止。
步骤8,独立译码单元的列更新。
在每个周期内完成对K个最小更新单元
Figure BDA0000040373270000093
中同一列的更新,经过J=b/K个周期,完成对独立译码单元
Figure BDA0000040373270000094
的列更新,此过程是通过VFU存储空间R”n的内部循环移位完成的,即令空间切换控制信号SW=0,选择VFU存储空间,从每个VFU存储存储空间的第1个存储单元取出存储信息送入变量节点更新单元,同时将每个VFU存储空间中的第2~J个存储单元中的存储信息逐个上移到第1~(J-1)个存储单元,并将变量节点更新单元的计算结果送入每个VFU存储空间的第J个存储单元,完成一次VFU存储空间R”n的内部循环移位,重复上述操作J次后停止。
步骤9,迭代译码完成。
设译码过程的迭代次数为N,重复步骤7和步骤8共N次,得到译码结果为C,直到满足译码终止条件时
Figure BDA0000040373270000101
完成QC-LDPC码部分并行译码。

Claims (5)

1.一种基于FIFO分段存储的QC-LDPC码部分并行译码方法,包括如下步骤:
(1)已知校验矩阵HbM×bN由M×N个大小为b×b的循环方阵Ai,j构成,其中Ai,j由ω个b×b的单位阵循环右移 
Figure FDA00002244947000011
次的方阵相加而成,这些方阵记为 
Figure FDA00002244947000012
并以 
Figure FDA00002244947000013
作为独立的译码单元,下标d的取值范围为1~ω, 
Figure FDA00002244947000014
是方阵 
Figure FDA00002244947000015
第一行中“1”的位置, 
Figure FDA00002244947000016
称为起始地址, 
Figure FDA00002244947000017
的取值范围为0~(b-1);
(2)将独立的译码单元 
Figure FDA00002244947000018
分成均匀的块,设块的大小为J×J,分成的块数K=b/J,该块数K称为译码并行度, 中第m行第n列的块用 表示,并以 
Figure FDA000022449470000111
作为最小的译码单元, 
Figure FDA000022449470000112
中下标m和n的取值范围都为1~K;
(3)设起始地址 
Figure FDA000022449470000113
的表达式为 
Figure FDA000022449470000114
其中α是 
Figure FDA000022449470000115
被J整除的最大整数,α称为空间起始位置,α的取值范围为0~(K-1),β是 
Figure FDA000022449470000116
除以J的余数,β称为偏移地址,β的取值范围为0~(J-1);
(4)将 一共K个最小译码单元合并成一个大块,记为 
Figure FDA000022449470000118
则 
Figure FDA000022449470000119
每个 
Figure FDA000022449470000120
包含J行,b列,则把每一个 
Figure FDA000022449470000122
作为译码时校验节点更新的最小更新单元,根据每个 
Figure FDA000022449470000123
构建对应的一个CFU存储空间R’m,下标m的取值范围是1~K,在每个周期内完成对K个最小更新单元 
Figure FDA000022449470000124
中同一行的更新,经过J=b/K个周期,完成对独立译码单元 的行更新;
(5)将 
Figure FDA000022449470000126
一共K个最小译码单元合并成一个大块,记为 则 
Figure FDA000022449470000128
每个 包含b行,J列,则
Figure FDA000022449470000130
把每一个 作为译码时变量节点更新的最小更新单元,根据每个 
Figure FDA000022449470000132
构建对应 的一个VFU存储空间R”n,下标n的取值范围是1~K,在每个周期内完成对K个最小更新单元 中同一列的更新,经过J=b/K个周期,完成对独立译码单元 的列更新;
(6)设译码过程的迭代次数为N,重复步骤(4)和步骤(5)N次,得到译码结果为C,直到满足译码终止条件时 
Figure FDA00002244947000023
完成QC-LDPC码部分并行译码。
2.根据权利要求1所述的部分并行译码方法,其中步骤(4)所述的根据每个 
Figure FDA00002244947000024
构建对应的一个CFU存储空间R’m,它由1~2个FIFO根据偏移地址β的不同取值构建:
当β=0时,每个CFU存储空间R’m由一个深度为J的先进先出FIFO构成,每个FIFO包含J=b/K个存储单元,每个存储单元都连接数据输入和数据输出线,数据输出线与相邻的前一个存储单元数据输入线连接,第1个存储单元的数据输出线与译码器中的校验节点更新单元的数据输入线连接,校验节点更新单元的数据输出线与第J个存储单元的数据输入线连接,这样构建形成CFU存储空间R’m
当β≠0时,每个CFU存储空间R’m由两个FIFO组合而成,将这两个FIFO记为SC1m和SC2m,其中SC1m包含J-β个存储单元,SC2m包含β个存储单元,则CFU存储空间R’m一共包含J个存储单元,SC1m和SC2m中的每个存储单元都连接数据输入和数据输出线,数据输出线与相邻的前一个存储单元数据输入线连接,SC1m中第1个存储单元的数据输出线与译码器中的校验节点更新单元的数据输入线连接,SC2m中的第1个存储单元的数据输出线与SC1m中第J-β个存储单元的数据输入线连接,校验节点更新单元的数据输出线与SC2m中第β个存储单元的数据输入线连接,这样构建形成CFU存储空间R’m
3.根据权利要求1所述的部分并行译码方法,其中步骤(5)所述的根据每个 
Figure FDA00002244947000025
构建对应的一个VFU存储空间R”n,它是根据偏移地址β的不同取值和空间起始位置α,通过对K个CFU存储空间R’m调整顺序或重新组合构建:
当β=0时,调整K个CFU存储空间R’m的顺序形成对应的K个VFU存储空间R”n,设CFU存储空间R’s为VFU存储空间R”t,s,t之间的关系为: 
Figure FDA00002244947000031
此时,每个VFU存储空间由一个深度为J的FIFO构成,则每个VFU存储空间包含J=b/K个存储单元,每个存储单元都连有输入输出数据线,数据输出线与相邻的前一个存储单元的数据输入线连接,第1个存储单元的数据输出线与变量节点更新单元的数据输入线连接,变量节点更新单元的数据输出线与第J个存储单元的数据输入线连接,这样构建形成VFU空间R”n
当β≠0时,VFU存储空间R”q由SC2p和SC1p+1组成,其中SC2p是CFU存储空间R’p的一个FIFO,SC1p+1是CFU存储空间R’p+1的一个FIFO,下标p表示第p个CFU存储空间,下标q表示第q个VFU存储空间,p和q之间的关系为:
Figure FDA00002244947000032
SC2p包含β个存储单元,SC1p+1包含J-β个存储单元,则VFU存储空间R”q一共包含J个存储单元,SC2p和SC1p+1中的每个存储单元都连接数据输入线和数据输出线,数据输出线与相邻的前一个存储单元数据输入线连接,SC2p的第1个存储单元的数据输出线与译码器中的变量节点更新单元的数据输入线连接,SC1p+1的第1个存储单元的数据输出线与SC2p中第β个存储单元的数据输入线连接,变量节点更新单元的数据输出线与SC1p+1中第J-β个存储单元的数据输入线连接,这样构建形成VFU存储空间R”q
4.根据权利要求1所述的部分并行译码方法,其中步骤(4)所述的在每个周期内完成对K个最小更新单元 
Figure FDA00002244947000033
中同一行的更新,经过J=b/K个周期,完成对独立译码单元 
Figure FDA00002244947000034
的行更新,是通过CFU存储空间R’m的内部循环移位完成的,即从每个存储CFU存储空间的第1个存储单元取出存储信息送入校验节点计算单元,同时将每个CFU存储空间中的第2~J个存储单元中的存储信息逐个上移到第1~(J-1)个存储单元,并将校验节点计算单元的计算结果送入每个CFU存储空间的第J个存储单元,完成一次CFU存储空间R’m的内部循环移位,重复上述操作J次后停止。
5.根据权利要求1所述的部分并行译码方法,其中步骤(5)所述的在每个 周期内完成对K个最小更新单元 
Figure FDA00002244947000041
中同一列的更新,经过J=b/K个周期,完成对独立译码单元 
Figure FDA00002244947000042
的列更新,是通过对VFU存储空间R”n的内部循环移位完成的,从每个VFU存储空间的第1个存储单元取出存储信息送入变量节点计算单元,同时将每个VFU存储空间中的第2~J个存储单元中的存储信息逐个上移到第1~(J-1)个存储单元,并将变量节点计算单元的计算结果送入每个VFU存储空间的第J个存储单元,完成一次VFU存储空间R”n的内部循环移位,重复上述操作J次后停止。 
CN 201010604644 2010-12-24 2010-12-24 基于fifo分段存储的qc-ldpc码部分并行译码方法 Expired - Fee Related CN102064837B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010604644 CN102064837B (zh) 2010-12-24 2010-12-24 基于fifo分段存储的qc-ldpc码部分并行译码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010604644 CN102064837B (zh) 2010-12-24 2010-12-24 基于fifo分段存储的qc-ldpc码部分并行译码方法

Publications (2)

Publication Number Publication Date
CN102064837A CN102064837A (zh) 2011-05-18
CN102064837B true CN102064837B (zh) 2013-01-23

Family

ID=43999965

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010604644 Expired - Fee Related CN102064837B (zh) 2010-12-24 2010-12-24 基于fifo分段存储的qc-ldpc码部分并行译码方法

Country Status (1)

Country Link
CN (1) CN102064837B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102594369B (zh) * 2012-02-27 2014-06-04 西安电子科技大学 基于fpga的准循环低密度校验码译码器及译码方法
CN103220003B (zh) * 2013-03-29 2016-12-28 西安空间无线电技术研究所 提高节点处理并行度的qc-ldpc译码器的实现方法
CN106452455B (zh) * 2016-09-23 2019-10-18 华南理工大学 基于OpenCL移动设备QC-LDPC的动态译码方法
CN106911337B (zh) * 2017-01-23 2020-06-09 深圳忆联信息系统有限公司 数据处理方法、装置和解码器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101771421A (zh) * 2010-03-11 2010-07-07 复旦大学 基于tdmp的超高速低功耗qc-ldpc码解码器

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101771421A (zh) * 2010-03-11 2010-07-07 复旦大学 基于tdmp的超高速低功耗qc-ldpc码解码器

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A Fully-Overlapped Multi-Mode QC-LDPC Decoder Architecture for Mobile WiMAX Applications;Bo Xiang etc.;《ASAP2010》;20100709;第225-232页 *
Bo Xiang etc..A Fully-Overlapped Multi-Mode QC-LDPC Decoder Architecture for Mobile WiMAX Applications.《ASAP2010》.2010,第225-232页.
Fanglong Yi etc..Low Complexity Decoding Algorithm of QC-LDPC Code.《2010 IEEE Asia-Pacific Services Computing Conference》.2010,第531-534页.
Low Complexity Decoding Algorithm of QC-LDPC Code;Fanglong Yi etc.;《2010 IEEE Asia-Pacific Services Computing Conference》;20101210;第531-534页 *

Also Published As

Publication number Publication date
CN102064837A (zh) 2011-05-18

Similar Documents

Publication Publication Date Title
US11368168B2 (en) Low density parity check decoder
CN104868925B (zh) 结构化ldpc码的编码方法、译码方法、编码装置和译码装置
CN101032082B (zh) 编码和解码数据的方法和设备
US8438459B2 (en) Apparatus and method for decoding using channel code
US7783952B2 (en) Method and apparatus for decoding data
KR101405962B1 (ko) Ldpc 코드를 이용한 복호화 방법
US8321747B2 (en) QC-LDPC code decoder and corresponding decoding method
US7774674B2 (en) LDPC decoder for DVB-S2 decoding
US8103945B2 (en) Decoding method and decoding apparatus as well as program
CN101471674A (zh) 低密度奇偶校验码译码方法及装置
CN101567697B (zh) 一种速率兼容的低密度奇偶校验码编码方法和编码器
CN105680877B (zh) 一种cc-qc-ldpc码的构建方法及译码装置
Boutillon et al. Simplified check node processing in nonbinary LDPC decoders
CN104967455B (zh) 空间耦合低密度奇偶校验码的递归编码方法
US11258460B2 (en) Method and apparatus for vertical layered decoding of quasi-cyclic low-density parity check codes built from clusters of circulant permutation matrices
CN102064837B (zh) 基于fifo分段存储的qc-ldpc码部分并行译码方法
KR101216075B1 (ko) 채널 코드를 이용한 복호화 및 복호화 장치
US20080320374A1 (en) Method and apparatus for decoding a ldpc code
CN106374940A (zh) 一种多进制ldpc译码方法及译码器
CN102412844B (zh) 一种ira类ldpc码的译码方法及译码装置
CN101420279B (zh) 用于移动多媒体广播中的高速ldpc译码器及译码方法
CN101958718B (zh) 用于ldpc码的改进型半并行译码器和译码方法
CN105871385A (zh) 一种ldpc卷积码构造方法
US7996752B2 (en) Method and apparatus for decoding a LDPC code
KR101268061B1 (ko) 다상-누산 코드를 이용한 부호화 방법 및 복호화 방법

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130123

Termination date: 20181224