您的位置 首页 系统

根据FPGA的大围数QC_LDPC码的译码器

摘要 针对QC_LDPC码的短环对码性能的重要影响,采用了1种围数为8的QC_LDPC码设计。算法首先分别对3个不同的子矩阵进行移位运算,每个子矩阵分别与它们移位后生成的子矩阵共同组合形成1个新的子

摘要 针对QC_LDPC码的短环对码功能的重要影响,选用了1种围数为8的QC_LDPC码规划。算法首要别离对3个不同的子矩阵进行移位运算,每个子矩阵别离与它们移位后生成的子矩阵一起组合构成1个新的子矩阵,然后再将新生成的3个子矩阵组合成1个矩阵构成基阵,终究将该矩阵转置后用单位矩阵及其移位矩阵随机扩展即可得到所需校验矩阵。依据该校验矩阵的特别结构,选用分层迭代译码算法,选用Altera公司的Stratix III系列FPGA,完结码率为1/2、码长为3456的正规(3,6)QC_LDPC码译码器的布局布线。

LDPC码是近年来开展较快且日趋老练的一种信道编码计划,因其具有的优胜功能和实用价值而被人们认知,但因为随机结构的LDPC码编译码器硬件完结较为杂乱,具有的准循环特性QC_LDPC码已成为IEEE 802.11n(WiFi)、IEEE 802.16e(WiMAX)、(DVB—S2)等很多规范的信道编码计划。LDPC码是一种依据稀少校验矩阵的线性分组码,具有类似于Turbo码的杰出纠错功能。1981年Tanner提出的用二部图表明一个低密度线性分组码的办法,成为LDPC码的首要剖析东西。若LDPC码的Tanner图是无环的,那么与积SP(Sum—Product)译码算法可完结最佳译码,若存在环尤其是短环的话,则由和积算法核算所得的概率并非真实的后验概率(这是因为迭代进程中的独立性假定不能成立),因而译码并不是最优的逐符号最大后验概率译码,因而,环的存在大幅影响了译码的功能。MacKay和Neal经过很多的仿真成果证明信息传递算法(Message —Passing Algorithm,MPA)在Tanner图中有环的状况下仍具有较好的译码功能,但短环的存在仍是会下降译码功能。因而经过增大码的最小围数(环长),可进步码字的功能,围数到达必定的值就可挨近无环时的功能。

文献提出一种围数为8的低密度校验矩阵的规划算法,取得的QC_LDPC码在AWGN信道下的仿真成果表明,其具有迫临随机QC_LDPC码的误码率功能。本文选用该算法结构的校验矩阵归于正规的QC_LDPC码,具有更好的分块循环移位特性,大幅下降了编译码杂乱度,而Mansour和Sha nbhag则提出了一种LDPC译码战略——分层译码(Lnyered decoding),本文选用分层译码计划,为下降硬件杂乱度,在Mansour和Shanbhag的根底上进一步优化,选用更为简略的归一化最小和算法(NMS)替代了传统的和积算法(SPA)。整个译码进程只包括比较、移位和加减运算,运算量比SPA算法大幅下降,一起译码功能丢失可不超越0.1 dB。

1 校验矩阵的结构

该办法结构的是一个列重为3,行重>3的校验矩阵。首要结构3个子矩阵D、E和F,然后将子矩阵D、D和F依照行的方向摆放生成H1,H1=[D E F],再将H1转置生成矩阵H2,终究用pxp的单位矩阵及其移位矩阵作为随机因子,对矩阵H2中的“1”进行随机扩展,即可生成所需的校验矩阵H。

1.1 子矩阵D的结构

结构一个v行、v2列的矩阵D0,其间D0的元素D0(1,1)=D0(2,1)=D0(3,1)=…=D0(v,1)=1,其他元素均为0,

依据FPGA的大围数QC_LDPC码的译码器

(1)将矩阵D0中的元素向右循环移位,每移动1位生成一个新矩阵。当D0中一切元素为1的列移动到第v2列时移位完毕,共生成v2-1个新矩阵D1,D2,D3,…,Dv2-1。

(2)将D0,D1,D2,D3,…,Dv2-1依照列的方向摆放便生成子矩阵D=[D0,D1,D2,…,Dv2-1]T,其维数为v3×v2。

1.2 子矩阵E的结构

(1)结构一个v行、v2列的矩阵E0,其间E0中的元素E0(1,1)=E0(2,2)=E0(3,3)=…=E0(v,v)=1,其他元素均为0,即E0的前v列所构成的块为单位矩阵。如,当v=4时

依据FPGA的大围数QC_LDPC码的译码器

(2)将v个E0矩阵依照列的方向摆放生成矩阵E1=[E0,E0,…,E0]T。

(3)将矩阵E1向右循环移位,每移动v位生成一个新矩阵,由此共生成v-1个新矩阵,别离记为E2,E3,…,Ev。

(4)将E1,E2,E3,…,Ev依照列的方向摆放生成子矩阵E=[E1,E2,E3,…,Ev]T,其维数为v3×v2。

1.3 子矩阵F的结构

(1)结构一个v行v2、列的矩阵F0。其间F0中的元素F0(1,1)=F0(2,v+1)=F0(3,2v+1)=…=F0(v,v2-v+1)=1,其他元素均为0。即在F0中,从第2行开端,每行中的元素“1”的列方位较上一行中的“1”向右移动v位。假定,当v=4时

依据FPGA的大围数QC_LDPC码的译码器

(2)将F0向右循环移位,每移动1位生成v-1个新矩阵,共生成个新矩阵时中止移位,将新矩阵记为F1,F2,F3,…,Fv-1。

(3)将F0,F1,F2,F3,…,Fv-1依照列的方向摆放,生成的矩阵记为Fv=[F0,F1,F2,F3,…,Fv-1]T。

(4)将v个Fv依照列的方向摆放生成矩阵F=[Fv,Fv,…,Fv]T,其维数为v3×v2。

1.4 矩阵H2的扩展算法

将生成的子矩阵按行摆放得到H1

依据FPGA的大围数QC_LDPC码的译码器

1.5 扩展H2得到校验矩阵H

(1)设一个单位矩阵I的维数为p×p,则

依据FPGA的大围数QC_LDPC码的译码器

(2)随机发生1-p之间的随机数,该随机数即为单位矩阵的循环移位数。

(3)将矩阵H2中的“1”用发生的随机数来替代。

(4)将矩阵中的随机数用对应的置换矩阵替代填充,而矩阵H2中的元素“0”用p×P的零矩阵替代,由此即可生成所需的校验矩阵H,其维数为3pv2×pv3。

文献中也给出了4环和6环的查验算法,一起可验证依照此办法得到的校验矩阵最小围长为8。

2 QC_LDPC码的译码算法

相信传达(Belief Propagation,BP)算法是LDPC的规范译码算法,在其根底上又可改善得到最小和(Min-Sum)算法、归一化最小和(Nor malization Min-Sum,NMS)算法等。此类算法皆经过校检节点更新和变量节点更新两步完结一次译码迭代,因而又称为2项迭代相信传达(Two Phase Message Passing,TPMP)算法。TPMP算法因为在一次迭代进程中,悉数校检节点更新完后,才对一切变量节点进行更新,所以在一次迭代进程中,一切信息只能进行一次更新,收敛速度较慢,译码延时较大。虽此后又提出了复用处理的办法,但未能从根本上进步算法的收敛性和译码功能。

2.1 QC_LDPC码的分层译码战略

分层译码战略则改变了TPMP算法的译码办法,其将校检矩阵按行或列划分红若干分层。在一次迭代进程中,先并行更新第1分层中的一切校检节点和相关的变量节点,然后逐层进行更新。因而在一次更新进程中,后更新的分层会使用已更新分层的输出信息,变量节点在此进程中得到屡次更新,大幅加快了译码的收敛速度,并进步了译码功能。但为保证变量节点信息在各分层之间能够进行传递,校检矩阵一个分层中的列权重有必要1。

2.2 分层迭代译码算法

由上述子矩阵移位法结构的是规矩的QC_LDPC码,因而选用分层译码时一般便是将校验矩阵行重的一个子块行作为一个分层,以码长3 456,码率为1/2的(3,6)正规QC_LDPC码为例,基阵巨细为108×216,填充矩阵块为16×16,以每个子块行作为一个分层即每个分层16行,共有108个子层。

设高斯白噪声信道的噪声方差为σ2,接纳到的信号序列为y,校验矩阵H的巨细为M×N。迭代进程中信道固有信息Zn,校验节点信息Lm,n,变量节点信息Zm,n,其间0≤m≤M-1,0≤n≤N-1。以BPSK调制为例,NMSA为根底,将分层迭代译码算法的译码进程列述如下

(1)初始化

依据FPGA的大围数QC_LDPC码的译码器

(2)迭代进程(第t次迭代的第k层)。

Step1分层更新。

依据FPGA的大围数QC_LDPC码的译码器

Step2译码判定。若Zj0,则

依据FPGA的大围数QC_LDPC码的译码器

=1,不然

依据FPGA的大围数QC_LDPC码的译码器

=0,更新译码成果

依据FPGA的大围数QC_LDPC码的译码器

。 (3)译码结构校验。完结一次迭代后,对更新的译码成果进行校验。若满意

依据FPGA的大围数QC_LDPC码的译码器

xHT=0,或迭代次数到达体系设置的最大迭代次数,则中止译码,并输出译码成果。不然,跳回进程(2)进行新一次迭代。

3 正规QC_LDPC码的译码器

3.1 译码器的结构

对码长为3 456,码率为1/2的(3,6)正规QC_LDPC码,子矩阵巨细为16×16,共有108个子块行,216个子块列,648个非零子矩阵。选用分层迭代译码算法完结译码器,译码进程中只保存Zn和Lm,n两种中心数据,变量节点信息则经过式(2)核算得出,以减小数据存储量。为便于硬件完结,挑选α=0.75作为批改因子,这样只需简略的带符号位右移和加法运算便可完结数据批改。因为将每一个子块行作为一个分层,因而译码器的并行度为108,即共需108个根本运算单元。对译码器中的数据进行6 bit量化,并对核算进程中发生的溢出数据选用切断处理,这样的量化处理使译码功能约有0.1 dB的丢失,但节省了硬件资源。

图1为分层译码器的全体硬件结构。

依据FPGA的大围数QC_LDPC码的译码器

(1)数据输入模块。接纳解调模块输出量化后的对数似然比数据,完结Zn的初始化。该模块选用乒乓操作,即当其间一个存储器接纳数据的一起,译码器从别的一个存储器中读取数据进行译码,以此来进步译码器的吞吐量。

(2)数据存储模块。依据译码进程中所存储数据的不同,存储模块可划分为3块:1)后验概率存储模块Zmem,用于存储Zn。单个Zn的长度为6位,每个子块列对应的存储空间为6×16=96位,对应子块列数,共需216个此类模块。2)校验信息更新存储模块Lmem,用于存储,单个的长度为6位,每一行有6个非零元素,所以每行对应的存储空间为6×6=36位,而每一子块行所对应的存储空间为6×6×16=576位。对应子块行数,共需108个此类存储模块。3)译码成果存储模块,用于存储译码的成果。每一子块列对应的译码数据长度为16位,对应子块列数,共需216个此类存储空间。相同为了进步吞吐量,译码数据输出模块也选用乒乓操作,当一个存储器进行译码成果更新时,另一个存储器向外设输出存储器中的译码成果。

(3)校验节点更新模块(Parity—Check UpdateBlock,PCUB)。校验节点模块是译码器的中心处理单元,完结迭代的更新进程。共有108个PCUB模块进行并行处理,一次更新108组数据。每一组相关的6个变量节点信息串行输入PCUB中的FIFO寄存器,并逐次进行比较,寻觅该组数据中的最小值与次最小值。当一组数据输入完结后,最小值与次最小值得以确认,再从FIFO寄存器中顺次读出数据同最小值与次最小值比较,再更新数据。迭代译码进程首要被划分红两个阶段,变量节点信息输入FIFO阶段和变量节点信息输出FIFO阶段。这样的结构合适选用二级流水线,当一组已输入的变量节点信息从FIFO中读取时,将下一组变量节点信息输入FIFO。经过二级流水线处理,进步了近一倍的数据吞吐率。

(4)地址生成模块。地址生成模块中包括一个保存校验矩阵中一切子块方位和子块偏移量信息的只读寄存器(ROM)。经过从ROM中调取信息,别离发生Zmem和Lmem的读写地址。

(5)校验模块。校验模块在每一次迭代完毕之后,对一切校验方程进行验证,若悉数满意则中止迭代,不然进行下一次迭代进程,直至到达预先设定的最高迭代次数停止。

(6)操控模块。操控模块中设置整个译码器的状态机,操控译码器各个子模块有序运转。

3.2 译码器中内存读取的问题及改善

在PCUB模块中,每个校验节点对应的6个变量节点信息串行参加迭代进程,而这些节点信息存储在与之对应的216个Zmem中。因为校验矩阵列重为3,因而,若依照校验矩阵本来的结构,当108个PCUB并行从Zmem中读取数据时,次序读取变量节点信息时可能从某一子块列对应的Zmem中读取1~3个数据,这样不同的读取状况,会添加Zmem的硬件规划杂乱度。

因为变量节点信息参加迭代进程的先后次序并不影响译码器的结构,因而对变量节点信息的读取次序加以改善,将原有的读取次序重新摆放,使得在同一时间的PCUB从不同的子块列对应的Zmem中读取数据,即每一时间Zmem最多供给一个数据,这便大幅下降了Zmem的规划杂乱度,从而进步硬件的通用性。

4 FPGA完结

选用Altera公司StratixIII系列的EP3SL340器材,设置最大迭代次数为5次,在QuartusII 9.0下完结归纳与布局布线,硬件资源耗费如表1所示。

依据FPGA的大围数QC_LDPC码的译码器

在译码进程中,首要花费108个时钟进行Zmem的初始化进程,完结后开端迭代译码。在每一次迭代进程中,PCUB模块进行108次更新,因为选用流水线结构,每次更新实践仅需花费6个时钟,再加上第一组数据进入流水线花费的额定6个时钟,5次迭代共花费6×(108×5)+6=3 246个时钟。

依据FPGA的大围数QC_LDPC码的译码器

图2为传统迭代与分层迭代译码算法的功能曲线比较,为AWGN信道形式下选用BPSK调制,进行6 bit量化。经过图中的功能曲线可看出,在最大迭代次数同为5次的状况下,对正规QC_LDPC码选用分层译码器处理后比较选用传统部分并行结构译码器具有较好的译码功能体现,在信噪比为2.5 dB的状况一,误码率能够到达10-5量级。

5 完毕语

文中首要使用3个不同的子矩阵别离依照指定的办法进行移位运算,组合得到无4环和6环的基阵,从而使用单位矩阵及其移位矩阵作为替换因子随机替换基阵中的“1”而扩展得到所需的校验矩阵。随后选用分层译码算法,该算法较传统的部分并行结构有较好的收敛性,并下降了迭代次数的要求。一起在Altera公司的StratixIII系列FPGA上得以完结,验证其到达了较高的译码吞吐量。

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部