法律状态公告日
法律状态信息
法律状态
2019-12-13
未缴年费专利权终止 IPC(主分类):H03M13/11 授权公告日:20130123 终止日期:20181224 申请日:20101224
专利权的终止
2013-01-23
授权
授权
2011-07-20
实质审查的生效 IPC(主分类):H03M13/11 申请日:20101224
实质审查的生效
2011-05-18
公开
公开
技术领域
本发明属于通信技术领域,具体涉及一种基于先进先出FIFO的分段存储的准循环低密度奇偶校验QC-LDPC码部分并行译码方法,可用于高速QC-LDPC译码器的实现。
技术背景
LDPC码最早由Gallager于1962年首次提出,并与上个世纪90年代重新被研究。LDPC码是一种具有稀疏校验矩阵的线性分组码,具有以下特点:能够逼近香农限的性能特性,在许多场合下性能优于Turbo码;而且由于校验矩阵的稀疏性,译码的复杂度低,并可实现并行操作,便于硬件实现;具有较大的灵活性和较低的差错平层特性;描述简单,对严格的理论分析具有可验证性;具有简单的二分图编码的数学模型。LDPC码是近年信道编码领域的研究热点,目前已广泛应用于深空通信、光纤通信、卫星数字视频和音频广播等领域。
QC-LDPC码是一类特殊的LDPC码,其校验矩阵由一系列相同大小的稀疏矩阵组合而成,也就是说,其H校验矩阵具有准循环的特性。QC-LDPC码的校验矩阵表示形式如下:
>
Ai,j是大小为b×b的循环方阵,是由ω个单位阵循环右移
LDPC码的译码算法主要包括和积算法SPA,最小和算法MS和改进最小和算法NMS。其中:
和积算法中,存在大量的tanh和它的反函数运算,这对于硬件实现来说,算法的复杂度依然很高;
最小和算法以及改进的最小和算法,其主要思想是对函数进行简化,把复杂的三角函数求取的过程简化为最小值和次小值的选取,且最小和以及改进算法,不用对信道噪声进行估计。现在在硬件实现时,LDPC译码运算中一般应用最小和或者其改进算法。下面给出在加性高斯白噪声信道下最小和算法的译码步骤:
1、初始化
Lui=yi=mvi
2、校验节点更新
计算每个校验节点将要传递给变量节点的值mlcji。在实际运算中,可以分为如下两个步骤执行:
(1)校验节点从与之相连的变量节点的信息中选取最小值和次小值,同时计算校验和,即
>
>
>
(2)计算校验节点传递给变量节点的信息
如果
否则的话,有
3、变量节点更新
计算每个变量节点需要传递给校验节点的值
>
4、判决
计算后验概率:
>
然后对后验概率进行判决:当Li<0时,Ci=1;当Li≥0时,Ci=0。
5、校验
最后对判决的输出进行判断:如果满足
QC-LDPC码的译码是根据H矩阵完成的,译码过程主要是变量节点更新VFU和校验节点更新CFU,它们分别按照H矩阵的行列进行更新。根据H矩阵的准循环特性,每一个Ai,j是一个独立的单元,Ai,j中每一条线对应一个存储空间
进行CFU更新时,将ω个
进行VFU更新时,将ω个
CFU和VFU更新采用同一个共享存储空间,由于Ai,j中ω个
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的单位阵循环右移
(2)将独立的译码单元
(3)设起始地址
(4)将
(5)将
(6)设译码过程的迭代次数为N,重复步骤(4)和步骤(5)N次,得到译码结果为C,直到满足译码终止条件时
本发明具有以下优点:
(1)本发明由于根据实际要求适当改变独立译码单元
(2)本发明由于把译码更新过程转化成了独立译码单元
附图说明
图1是现有采用共享存储的QC-LDPC整个迭代译码结构;
图2是本发明的译码流程图;
图3是本发明在β=0时构建的CFU存储空间示意图;
图4是本发明在β≠0时构建的CFU存储空间示意图;
图5是本发明用CFU存储空间重新组合构建形成的VFU存储空间示意图;
图6是本发明对CFU存储空间和VFU存储空间的初始化结果图。
具体实施步骤
下面参照附图,具体说明本发明的实施步骤。
参照图2,本发明的译码步骤如下:
步骤1,确定独立的译码单元。
QC-LDPC码的校验矩阵HbM×bN具有准循环特性,校验矩阵HbM×bN的表达形式如下:
>
Ai,j是校验矩阵HbM×bN中大小为b×b的循环方阵,其中i的取值范围为1~M,j的取值范围为1~N,该Ai,j由ω个b×b的单位阵循环右移
步骤2,对独立译码的单元分块,并确定最小译码单元。
将独立的译码单元
步骤3,将最小译码单元合并。
3a)将
3b)将
步骤4,计算起始地址a和偏移地址β。
起始地址
步骤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之间的关系为:
>
则每个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之间的关系为:
>
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个最小更新单元
步骤8,独立译码单元的列更新。
在每个周期内完成对K个最小更新单元
步骤9,迭代译码完成。
设译码过程的迭代次数为N,重复步骤7和步骤8共N次,得到译码结果为C,直到满足译码终止条件时完成QC-LDPC码部分并行译码。
机译: 复合码并行并置位卷积码的编码方法,编码器和译码器,编码器和译码器系统
机译: 复合码并行并置位卷积码的编码方法,编码器和译码器,编码器和译码器系统
机译: 复合码并行并置位卷积码的编码方法,编码器和译码器,编码器和译码器系统