您的位置 首页 动态

根据FPGA有限域结构的QC-LDPC分层译码器规划

低密度奇偶校验(Low Density Parity—Check,LDPC)码最早于1962年由R.Gallager提出,其实质是一类具有稀疏校检矩阵的线性分组码。1996年,Macka

低密度奇偶校验(Low Density Parity—Check,LDPC)码最早于1962年由R.Gallager提出,其实质是一类具有稀少校检矩阵的线性分组码。1996年,Mackay、Neal等人证明了LDPC码是一种具有迫临Shannon极限功用的好码,但其随机构成特性又给编译码的完结带来了较大复杂度,在码长较长时,这种复杂度是硬件规划所难以承受的。准循环低密度奇偶校检(Quasi-Cyclic Low Density Party-Check,QC-LDPC)码的呈现,因其准循环特性,使得以更低的复杂度完结编译码成为可能。一起,QC-LDPC码在误码率上和随机LDPC码具有相同优异的功用,因而,QC—LDPC码成为很多规范选用的信道编码计划。QC—LDPC码译码器规划初期多选用部分并行结构,尔后呈现了分层译码结构。分层译码结构具有更快的译码速度,更好的功用和更简略的硬件结构,成为QC—LDPC译码器的干流结构。可是,分层译码要求QC—LDPC码的校验矩阵每个分层的列重≤1。本文中选用有限域乘群结构的QC—LDPC码的校验矩阵每个分层的列重刚好等于1,满意分层译码的要求。为进一步下降硬件复杂度,选用归一化最小和算法(NMSA),整个译码进程中只包括比较、移位和加减运算,优化了硬件结构,下降了硬件完结复杂度。

1 依据有限域乘群QC-LDPC码的结构

设q是恣意质数或质数的幂,则整数集{0,1,2,…,q-1}在模q加法和模q乘法下构成有限域GF(q)。GF(q)的q-1个非0元素构成GF(q)在乘法操作下的乘法群,简称乘群。关于其间的每个非0元素i,界说M方位矢量z(i)为GF(2)上的(q-1)维数组z(i)=(z1,z2,…,zn-1),其第i个重量zi=1,一切其他q-2个重量均为0。GF(q)的0元素对应的M方位矢量界说为q-1维全0数组。明显,GF(q)中的恣意元素i+2的M方位矢量z(i+2)可由i的方位矢量z(i)循环右移2位得到。

结构QC—LDPC码校验矩阵的进程如下:

进程1 由来源元确认构成有限域GF(q)的悉数元素。

设来源元α,则

依据FPGA有限域结构的QC-LDPC分层译码器规划

构成GF(q)的一切元素。依据预期结构校验矩阵的巨细挑选适宜的有限域GF(q)。

进程2 构成在GF(q)上的(q-1)×(q-1)的基矩阵W(1)。

依据FPGA有限域结构的QC-LDPC分层译码器规划

矩阵W(1)具有以下结构特性:(1)恣意两行或许两列在一切方位上的元素都不相同。(2)任一行或一列中的条目是GF(q)中不同元素。(3)每行或列中有且仅有一个0元素,第i行(1≤i≤q-2)的0元素坐落第i行第(q-1-i)mod(q-1)列。(4)矩阵中每一行是上一行的左循环移位,榜首行是最终一行的左循环移位。

进程3 矩阵W(1)先后经乘半数笔直扩展,乘半数水平扩展得到矩阵H(1)。

依据FPGA有限域结构的QC-LDPC分层译码器规划

H(1)具有以下结构特性:(1)A0,0,A1,q-2,A2,q-3,…,Aq-2,1均是(q-1)×(q-1)的0矩阵,其他子矩阵都是同维数的循环置换矩阵。(2)H(1)的每一行或每一列中有且仅有一个0矩阵。(3)H(1)子矩阵的每一行是上一行左循环移位的成果,榜首行是最终一行的左循环移位。(4)H(1)是在GF(2)上的(q-1)2×(q-1)2矩阵,行重和列重都是q-2。

进程4 结构QC—LDPC的校验矩阵Hqc。

结构行重为λ,列重为ρ(1≤λ,ρ≤q-1)的规矩QC—LDPC码校验矩阵Hqc的进程:(1)从0~q-2之间挑选λ和ρ个不相等的随机数组成随机坐标对。(2)从H(1)中选取相应的元素作为基矩阵。(3)将基矩阵填充到Hqc时,选取的λ×ρ个循环移位矩阵之间的相对方位坚持不变。

选用反正法来证明所结构的QC—LDPC码对应的Tanner图中不存在长为4的环。

依据FPGA有限域结构的QC-LDPC分层译码器规划

图1给出了该办法结构的规矩(3 060,765,3,12)QC—LDPC码校验矩阵的结构,其间该矩阵的基矩阵是一个3×12矩阵,每个子矩阵的巨细为255×255,矩阵的列重为3,行重为12,码率为,码长为3 060。

依据FPGA有限域结构的QC-LDPC分层译码器规划

2 QC-LDPC码的译码计划

2.1 LDPC码传统译码算法

相信度传达(Belief Propagation,BP)译码算法是传统的LDPC码译码算法,对它进行改善又呈现了最小和算法(Min Sum Algorithm,MSA),归一化最小和算法(Normalizat ion Min Sum Algorithm,NMSA)等。这类算法因其经过校验节点更新和变量节点更新两个进程完结一次迭代译码,被称为2项相信传达(Two Phase Message Passing,TPMP)算法。TPMP算法在一次迭代译码进程中,悉数的校验节点更新完毕后,一切的变量节点才开端更新,即在一次迭代进程中,一切信息只更新一次。所以,该算法的收敛速度较慢,译码推迟较大。

2.2 并行分层相信传达译码算法

并行分层相信传达译码算法的呈现改变了TPMP算法的译码办法,它是将校验矩阵按行或列分红几个分层,别离进行更新。在一次迭代译码进程中,首要对榜首分层的一切校验节点以及相关变量节点进行更新,然后逐层进行信息更新。因而,后边分层更新时要利用到前面分层已更新的信息,这样变量节点在一次迭代进程中得到屡次更新,大幅加快了译码收敛速度,提高了译码功用。但分层译码算法能分层进行变量节点更新的要求是:校验矩阵每个分层的列重不大于1。按上述办法结构的校验矩阵每个分层的列重刚好等于1。

假定高斯白噪声信道的噪声方差为σ2,接纳到的信号序列为y,校验矩阵的巨细为M×N。迭代进程中,变量节点信息用Zn,m表明,校验节点信息用Lm,n表明,后验概率信息用Fn表明。选用BPSK调制办法,分层译码算法的译码进程简述如下:

依据FPGA有限域结构的QC-LDPC分层译码器规划
依据FPGA有限域结构的QC-LDPC分层译码器规划

3 分层译码器结构规划

对结构的(3 060,765,3,12)QC—LDPC码进行分层译码器的规划,依照校验矩阵的结构,将其按行分为3层,这样每个子块的列重刚好等于1。选用层内并行,层间串行的分层译码算法,每个分层包括255个校验节点,因而,需求255个校验节点处理模块(PCNPM)一起作业,即并行度为255。在硬件规划时,将批改因子α设为0.75,这样只需求简略的带符号右移和加法运算即可做到数据的批改。对译码器的数据进行7 bit量化,在核算进程中,若呈现了数据溢出,则选用切断法来处理溢出数据,这样的处理办法对译码功用带来约0.1 dB的丢掉,但大幅下降了规划复杂度,节省了硬件资源。

依据FPGA有限域结构的QC-LDPC分层译码器规划

3.1 输入缓冲模块

输入缓冲模块首要有以下两个功用:(1)从信道接纳译码数据,且确保数据不丢掉。(2)将接纳到的译码数据传递给变量节点信息存储模块,完结迭代译码进程中的部分初始化作业。

3.2 信息存储模块

信息存储模块包括两部分:(1)校验节点信息存储模块Rmem,由于有255个校验节点处理模块一起作业,因而需求255个Rmem双端口RAM来存储校验节点更新数据,每个RAM的存储容量为3×7×12=252 bit。(2)变量节点信息存储模块Lmem,用来存储后验概率信息Fn。依据校验矩阵结构,将3 060个后验概率信息分为12块来存储,每块存储255个数据,即每块RAM的存储容量为256×7 bit。

3.3 校验节点处理模块

该模块是整个译码器的中心部分,完结迭代译码进程中的校验节点和变量节点的信息更新。在更新结构上,选用分层间串行,分层内并行的处理机制。该部分的结构如图3所示。

依据FPGA有限域结构的QC-LDPC分层译码器规划

如图3所示,该模块分为6部分:(1)减法器,后验概率信息Fn和校验节点信息Lm,n经过减法器后更新变量节点信息Zn,m。(2)数据比较器1,寻觅与一个校验节点衔接的12个变量节点中变量节点信息绝对值最小和次最小的数据,并记载这组数据的符号。(3)FIFO和最小值、次最小值、符号寄存器,将接纳到的数据与最小值寄存器和次最小值寄存器中的数据进行比较,并更新最小值和次最小值寄存器;将数据的符号位与符号寄存器的值做异或运算,更新符号寄存器,之后将该时间输入的数据存入FIFO。(4)数据比较器2,将从FIFO中读出的数据与最小值和次最小值寄存器中的数值进行比较,然后做出挑选。(5)校对因子,将从数据比较器2中输出的数据做带符号位的右移一位和右移两位,再求和,得到批改数据。(6)加法器,将从校对因子部分输出的数据和从FIFO中读出的变量节点信息经过加法器相加,得到变量节点后验概率信息Fn。

3.4 操控模块

该模块分为两部分:(1)地址操控模块,该模块包括一个存储着校验矩阵一切子块方位和偏移量信息的ROM,从中读取信息来发生变量、校验节点存储模块的读地址和写地址。(2)状况操控模块,设置整个译码进程的状况机,操控每个模块的作业状况。

3.5 信息校验模块

在迭代译码的进程中,每个分层更新完毕之后,对一切更新的变量节点进行校验,若一切变量节点满意校验方程,就无需进行下面分层的译码,此次迭代完毕;不然继续进行迭代译码,直到到达最大迭代次数。

3.6 输出缓冲模块

暂存迭代译码进程中发生的判定成果,并在译码完毕后向外部输出数据。

4 FPGA归纳成果及剖析

在完结译码器的进程中,选用Altera公司StratixII系列的器材EP2S60F484C4,归纳成果如表1所示。

依据FPGA有限域结构的QC-LDPC分层译码器规划

吞吐率和纠错才能是衡量一个译码器功用的两个首要目标。其间吞吐率用式(10)进行评价

依据FPGA有限域结构的QC-LDPC分层译码器规划

其间,f是译码器的作业频率;N是码长;R是码率;dini表明译码器的初始化时延;dpro表明译码器的译码时延。

在译码进程中,首要从输入缓冲模块读出数据对变量节点信息存储模块进行初始化,共需128个时钟周期。每个分层进行校验、变量节点信息更新需求16个时钟周期,则此迭代进程共需求花费3×5×16+128×5=880个时钟周期。因而,译码器的吞吐率可达(35.38×3 060×0.75)/880=92.27 Mbit·s-1。

依据FPGA有限域结构的QC-LDPC分层译码器规划

将结构的(3 060,765,3,12)QC—LDPC码别离选用分层结构和未分层结构,在NMSA基础上进行的功用仿真如图4所示。从图中可看出,BER=10-6时,分层结构比未分层结构有约0.8 dB的功用增益。

5 完毕语

本文依据有限域乘群结构了Tanner图中无4环的QC—LDPC码,随后依据结构的QC—LDPC码,选用分层译码算法规划了分层译码器,分层结构较未分层结构有更好的收敛性。最终选用Altera公司StratixII系列的器材,将分层译码器在FPGA上得以完结,并得到较高的译码吞吐率。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/dongtai/288894.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部