准循环LDPC码的编译码器设计及FPGA实现
姓名:张玉凯申请学位级别:硕士专业:通信与信息系统指导教师:白宝明
20090101
{两姜准循环低密度校验码(Quasi—CyslicLow-DensityParity—CheckCodes,QC—LDPC)是LDPC码的一个子类。QC.LDPC码在编码和译码时,具备了其它类型的LDPC码不具有的很多优点,例如准循环LDPC码通过调整相应的参数快速的构造大量的不同码率且性能较为合适的校验矩阵,而且可以采用移位寄存器的方式进行编码,大大降低了编码复杂度,译码也很简单。目前准循环LDPC码已经成为CCSDS深空通信的备选方案之一。本文作者结合国家自然科学基金重点项目,采用理论分析和硬件平台仿结合的方法,针对CCSDS标准对准循环LDPC码的编码和译码进行了研究和实现。主要完成的工作有以下几个方面:系统地介绍了LDPC码的编译码原理;重点分析了LDPC码归一化最小和译码算法的消息迭代更新公式以及准循环LDPC码编码实现方法。在分析归一化最小和译码特点的基础上,根据准循环LDPC校验矩阵的特点,提出了准循环LDPC码译码器的FPGA实现方法,并给出了主要的硬件设计、门级仿真和硬件平台实测结果。对准循环LDPC码的编码方案进行硬件资源与吞吐量方面的对比权衡,给出了适用于FPGA硬件实现的编码算法,并给出了硬件实现的主要结构设计和编码吞吐量。硬件平台实测结果表明,本文设计的准循环LDPC码的FPGA编译码器各个工作指标满足深空通信的指标要求,可以应用于深空通信应用环境中。关键词:LDPC码准循环归一化最小和算法FPGA编码器译码器AbstractQuasi-cyclic(QC)low—densityparity-check(LDPC)codesformallimportantsubclassofLDPCcodes.ThesecodeshaveencodinganddecodingadvantagesOVerothertypesofLDPCcodes.Forexample,aclassofnewcodeswithdifferentcoderatescanbegotbyadjustingthecorrespondingparameterseasily,andtheycanbeencodedbyshiftregisterswhichlowerstheencodinglowcomplexities,andonethedecodersalsohaveoftheschemesinthecomplexities.Currently,QC—LDPCcodeshavebeenCCSDSdeepspacecommunicationstandard.Qc-LDPCcodesareasInthisdissertation,somekeyproblemsofthecodecforinvestigatedbytheoreticalanalysisandfollows:Thesimulation.ThemainwofksaresummarizedSum-Productalgorithm,Min-Sumalgorithm(MSA)andNorrnallizedMin—Sumalgorithm(MMSA)decodingtheoriesofLDPCcodesaresystematicallysummarized.TheencodingarealSOintroduced.BasedonalgorithmsforLDPCcodesespeciallyforQC-LDPCcodesprinciplesofModifiedMin-Sumalgorithm,theFPGAimplementationmethodofdecodingforQC-LDPCcodesareproposed,andallthemodulesintheFPGAdesignTheandthehardwaresimulationresultsarealsointroduced.seriallyconcatenatedsystemsunderdifferentencodingalgorithmsareadaptedtoperformaced.Moreover,themodulesbeimplementedusingFPGAhardwareareproposedaswellasthesimulationresults.Accordingtothehardwaretestperformances,thecancodecdesignsatisfiestheindexrequirementsofCCSDSstandardanditbeusedinthedeepspacecommunications.Keyword:Quasi·-cyclicLow--DensityParity-CheckCodesFPGACodecNormallizedMin-SumAlgorithm创新性声明秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表示了谢意。申请学位论文与资料若有不实之处,本人承担一切相关责任。本人签名:豸《王.沁日期:关于论文使用授权的说明本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕业离校后,发表论文和使用论文工作成果时署名单位仍然为西安电子科技大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容,可以允许采用影印、缩印或其它复印手段保存论文。同时本人保证,毕业后结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。(保密的论文在解密后遵循此规定)本人签名:孑艺圣.日期翩虢型至日期批第一章绪论第一章绪论本章首先阐述了数字通信系统的模型并概括了信道编码理论与技术,接着重点介绍了LDPC码的发展历史及其在硬件开发方面的应用;最后给出了本文的主要工作和后续章节的行文安排。1.1数字通信与信道编码近年来,对高效可靠的数字传输系统的要求日益增长,无论在商业、,还是军事领域,面向数字信息的交换、处理,都使可靠性这一需求变得更加迫切。因此,设计数字通信系统的主要问题就是如何控制差错以使得数据能够可靠的传输。1948年,Shannon在他的论文《通信的数学理论》【l】中,首次阐明了在有扰信道中实现可靠通信的方法,提出了著名的信道编码定理。它的发表标志着信息与编码理论这一学科的创立,奠定了纠错码的基础,信道编码的应用已经成为现代通信系统不可分割的一部分。Shannon指出有效而可靠地传输信息的途径是编码。根据Shannon的信息理论,数字通信系统模型如图1.1所示。图1.1数字通信系统模型信源编码是将信源输出的离散或模拟消息有效地转化为二进制比特序列的过程,其目的是除去信源的冗余以减少通信负担,也称为数据压缩。任意给定的信源都有一个称为熵(吼tropy)的量,它表征了信源的平均不确定性,正好是数据压缩的下限。信源编码定理指明【31,在给定的保真度准则下,存在最小数量的比特来表示同分布信源输出。2准循环LDPC码的编译码器设计及FPGA实现信道编码与信源编码正好相反,信道编码器对传输的信息码元按一定的规则加入冗余比特,组成所谓的“抗干扰编码",在接收端的信道译码器按照相应的逆规则进行译码,克服信息传输中受到的噪声和干扰影响,纠正错误,以提高通信的可靠性。信道编码定理表明:任意离散无记忆平稳有噪信道都有一个被称为信道容量的值C,它标志着信道传输能力的上限,只有当信息传输速率R≤C时,存在一种编码方式,使得当平均码长足够大时,译码错误概率可以做到任意小;反之,则无论采用何种编码方式也不可能保证错误概率任意小。前两种技术使得纠错码具有卓越的纠错性能,而后一种技术中的最大似然译码使得码的纠错性能得以充分发挥。但是,采用随机编码,使码长趋于无穷大并且采用最大似然译码将会使系统的复杂度和延时变得很大,因而无法在实际中使用。能够逼近shannon容量限的Turbo码和LDPC码都部分地引入了随机编码的思想——.Tl】rbo码的交织器和LDPC码的稀疏校验矩阵,并且它们的码长都较长,译码均采用了接近最大后验概率译码(输入等概时,最大后验概率译码等价于最大似然译码)的迭代译码算。因此Shannon在证明信道编码定理时的三种技术,在最逼近容量限的Turbo码和LDPC码时,有充分体现。1.2LDPC码的发展与应用1.2.1LDPC码的发展历史与现状低密度校验码(Low-DensityParity-CheckCodes)是一类可以用非常稀疏的校验矩阵H或者二部图(BipatiteGraph)来描述的线性分组纠错码,最初由Gallager于1962年首次提出,故亦称Gallager码。Gallager中定义了(尼,/,七)(J≠七,J,k<<,z)正则LDPC码【扪。LDPC码具有非常稀疏的校验矩阵,即矩阵中“1”的数量很小。矩阵每列各自包含相同小数目的“1”,表示每个码元比特受到相同数目的校验约束;每行也都各自包含相同小数目的“l”,表示每个校验集对相同数目的码元比特进行校验约束。Galtager证明了这类码具有很好的汉明距离特性,即LDPC码的最小汉明距离随着码长的增加而线性增加,并且在计算树上进行后验概率迭代译码时具有随码长度增加而比特错误概率降低的特征,是满足G.V限的渐进好码。但是由于大规模校验矩阵的硬件实现在当时还是相当困难,加上普遍认为Fomey的串行级联编码【7J更有可能获得好的性能,LDPC码渐渐被人们所遗忘。1981年,Tanner发表的论文瞄J为迭代可译码的图模型表示作了奠基性工作。在这篇论文中,Tanner引入码的二部图模型(“Tanner图”)及“最小和”算法。第一章绪论二部图包含两类节点:第一类节点代表码字符号(于二元码,一个节点代表一个编码比特)称为变量节点;第二类节点代表校验约束关系,每个节点代表一个校验约束关系(如果是单检码约束,就对应于校验矩阵中的一行校验关系)称为校验节点。在二部图中,同类节点之间没有边相连;而对于两个不同类节点,当且仅当变量节点代表的码字符号参与了校验节点代表的约束关系时,这两个节点才有边相连。Tanner还将单检码约束推广为任意的线性码约束,这一思想后来被成功用于推广的LDPC码构造中,如LDPC.Hardamad码和级联Zigzag.Hadamard码等。码的图模型表示是现代图码的一项重要研究成果,图模型在码的性能分析和优化设计中起到了至关重要的作用,但是这项工作在当时也并未得到足够的重视,直到LDPC码的重新发现才为人们所重新认识。经过数十年的沉寂,Mackay和Neal重新发现了LDPC码。Mackay和Neal关于稀疏随机图上定义的LDPC码能够接近容量限的结果一J以及Sipser和Spielman的线性复杂度扩展图码【24】使人们重新认识到Gallager成果内在的巨大潜力。研究结果表明,非规则图上的和非二元的LDPC码具有更好的收敛性,Richardson等示范的性能已经相当接近Shannon容量限【10,11,12】LDPC码理论上的主要成果可以归结为两大部分:一是Tanner、Kschiehang、Frey、Loeliger、Wiberg和Fomey等人关于图模型的工作;二是Richardson等人关于迭代译码性能分析方面所作的工作,即密度进化理论。此外,还有许多研究涉及LDPC码的有效编译码、在不同环境下的应用等问题。60年代,LDPC码问世I81年,Tanner提出图模型’9a.Turb。码问世90年代中期,MacKay等人重新发现了LDPC码il95年,Wiberg将Turbo码和LDPC码统一用图模型表示,统称为图码。图1.6迭代编译码发展历史在码构造方面,主要可以分为两大类,即代数构造方法和随机构造方法。在代数构造方法方面,ShuLin等学者提出了基于有限几何构造的LDPC码I”J,这类码在高码率时可以获得较好的性能,并且适宜采用循环移位寄存器实现线性时间编码。此外,他们还提出了基于RS码构造的LDPC码,这类码也具有良好的最小距离特性【141。Tanner和Fossorier等人提出了基于循环移位矩阵构造的LDPC码【”】,这类码容易消除小环,并且同样适宜用循环移位寄存器实现编码。此外,4准循环LDPC码的编译码器设计及FPGA实现还有~些基于其他数学工具的构造LDPC码方法,包括差集、序列等。在随机构造方法中,比较著名的有Xiao.YuHu等学者采用逐步最优思想提出的一种称为PEG(ProgressiveEdgeGrowth)算法[161。该算法可以在给定度序列条件下构造较大围长的LDPC码。ayan等学者设计了可以快速编码的中等码长高码率的非规则LDPC码f17】,这类码实质上是一种非规则RA码。此外还有LDPC卷积码和广义LDPC码等码类。在译码方面,Fossorier等学者提出了一种简化的BP算法,并采用归一化因子来进一步改善译码性能【18】。一些学者采用密度进化结合仿真分析了Sealing(对软信息数乘)、Clippin甙限幅)和Quantization(量化)等对最小和算法的影响以及如何优化。此外,也有学者研究了和积算法的量化实现。甚至,有学者研究采用线性规划这样的优化算法来译LDPC码。QC.LDPC(Quasi.cycliclow.densityparity-check)码是根据系统化构造方法构造的一类非常重要的LDPC码,目前已经成为面向硬件实现LDPC码研究的热点。Qc—LDPC码可以采用移位寄存器的方式进行编码,大大降低了编码复杂度。针对该类型纠错码的准循环特性,可以专门设计适用于该类型纠错码的译码器。QC.LDPC一般由代数几何的方法构造,其中最有成效的应该算是由YKou和S.Lin引入的基于有限几何(FiniteGeometry)的低密度校验码,以及用组合构造的方法设计的准循环LDPC码,该类LDPC码通过调整相应的参数快速的构造大量的不同码率且性能较为合适的校验矩阵。在硬件实现方面,美国Alberta大学研究人员成功地在现场可编程门阵YU(FFGA)上实现了LDPC编码排列,大幅度增强数据流和包交换系统的结构效率。T.Bhatt等人提出采用定点DSP实现LDPC码的编译码方案【19】。H.A.Loeligert20】等人运用模拟VLSI实现LDPC码的和积算法译码模块,可以避免数字实现中十分复杂的实数运算。T.Zhang和K.parhi等人提出了一种编译码器联合设计、适合执行部分并行译码的面晦JVLSI实现的方法【21】。B.Levine等人则给出了一种可以用于目前商用FPGA实现的LDPC码验证性设计方案【2计jFlarionTechnologies公司实现了专有的LDPC编码方法【231,已开发出名为Vector-LDPC的LDPC编/译码器产品。WWISE联盟最近也向802.1lnWLAN标准工作组提出了一种LDPC区块编码(Blockcoding)方案,该编码方案可渗入到许多协议内,以接近容量极限的噪音信道性能,使通信设计更接近Shannon极限。在芯片方面,ComtechTelecommunications旗下的ComtechAHA公司(AHA)推出了一种LDPC码前向纠错(FEC)编解码器内核。该LDPC码内核比其它商用FEC方式具有更高的误比特率性能。由于整合了高反复性能,该LDPC码的误比特率BER比现有其它纠错技术更接近Shannon极限,其LDPC内核支持多种编码、调制格式及数据率,可动态改变以适应变化的信道条件。第一章绪论1.2.2LDPC码的应用LDPC码理论的深入发展推动了其实用化进程。在无线城域网的IEEE802.16e[24】草案中,LDPC码与Turbo码一起作为编码调制的备选方案。草案中,采用矩阵分块技术(码长从2034到576,码率为1/2,2/3,3/4),将大规模的矩阵乘运算分解为小规模矩阵乘的并行结构,有效的解决了LDPC码编码复杂度高的问题。AHA的LDPC码适用于远距离传输,能减少多种通信系统的传输功率,可应用于无线、卫星通信、磁存储器及其它数据通信等方面。除了30Mbps的LDPC内核外,AHA还推出了一种单机LDPC内核。基于LDPC码的编码方案己经被下一代卫星数字视频广播标准DVB.S2采纳。LDPC码长度分别为64800和16200,最低码率为1/4,最高码率为9/10。休斯网络系统将LDPC码作为可合成核心,向半导体公司发放许可证。持有许可证的半导体公司己于2005年下半年生产出业界首款基于LDPC码的数字解调芯片,并将其应用于遵循DVB.S2的机顶盒中。在我国地面数字电视传输标准建设备选的方案中【251,广科院的Timi方案性能较好。该方案最大的技术亮点就是采用了LDPC码信道编码技术,最优地解决了保持LDPC编译码性能最佳的状况下实现复杂度的难题。据此,IEE802.1ln工作小组全体通过了在面向双绞线的lOGbit/s以太网标准10GBASE草案中采用LDPC码。此外,低密度校验码在数据压缩、水印等方面的应用也取得了一些成果。总之,LDPC码具有良好的性能,译码易于实现。当各变量节点与校验节点的度数选择合适时,其性能非常接近香农限。目前,LDPC码己成为移动通信编码技术中的首选和CCSDS深空通信的备选纠错码方案。1.3本文研究背景和目的深空是指离开地球200万公里以远的广阔空间。深空通信(De印SpaceCommunications)是太空探测的基础。太空探测的能力最终归于深空通信技术的发展和深空通信能力的提高。深空通信的特点是:一深空通信信道可以近乎精确地建模为无记忆加性白高斯噪声信道(AWGN)。因此,通常针对AWGN设计的码可以很好地应用于深空通信。·深空通信信道的带宽资源相对丰富。因此,允许使用低谱效率的编码和调制方案。一深空通信对实时性要求不高。由于深空通信传输距离远,信号衰减大,因此需要采用性能优良的信道编码方案,这也就意味着可以使用译码复杂度6准循环LDPC码的编译码器设计及FPGA实现高的好码。一深空通信是功率受限的。上世纪60年代时,在深空通信中ldB的编码增益意味着能节约100万美元。深空通信要将探测器所获取的信息传送到地面进行处理与分析,地面发送控制指令和传送数据信息给深空探测器。所以,深空通信直接关系到深空的探测和利用能否顺利完成。深空通信的信号传输距离遥远,飞行器重量和体积的,天线的口径相对较小,信号能量的非常微弱,决定着深空通信只能工作在信噪比很小的条件下。因此,对高增益信道编码的要求很迫切。经过精心设计的准循环LDPC码可以具有优异的纠错性能,而且根据准循环LDPC码校验矩阵的“准循环”特点,可以设计出并行度高、控制简单的编码器和译码器,因此该码已经成为深空通信的备选码之一,具有很大的竞争力。准循环LDPC码的理论和实现之间还存在着很大的差距,国内尚无成熟的产品。国外著名的EDA厂商,已经商用的LDPC编译码器,但是尚不能支持深空通信的纠错码,而且增益也满足不了深空通信的要求。本课题来源于国家自然科学基金重点项目,为我国将来进行深空探测进行预研。根据深空通信的特点,自行开发具有自主知识产权,符合CCSDS通信协议标准的【28]LDPC码编译码器。1.4行文内容和安排本文作者结合国家国家自然科学基金重点项目,按照CCSDS标准,采用理论分析和硬件实现的方法,对准循环LDPC码编码器的硬件FPGA实现的几个关键问题进行了研究:包括LDPC码和准循环LDPC码的概念及各种译码算法;给出适合硬件实现的译码算法及FPGA设计过程;适合硬件实现的编码算法及FPGA设计过程。全文共分为五章,其余章节具体安排如下:第二章研究了LDPC码及最小和译码算法。先系统地介绍了LDPC码的图模型表示,并介绍了LDPC码两个重要概念:环和围长;在此基础上我们推导了概率测度下和对数似然比测度下的和积算法;然后我们给出了和积算法的简化算法.最小和译码算法以及它的两种修正算法;最后我们对不同译码算法进行了性能分析,给出了适宜硬件FPGA实现的译码和量化方案。第三章在硬件FPGA实现层面上分析最小和译码算法,结合准循环校验矩阵的特点,设计了准循环LDPC码的译码器,并进行了门级仿真和上板测试。第四章研究了LDPC码编码实现方法。针对准循环LDPC码设计了专用的硬件FPGA编码器,并进行了门级仿真。第一章绪论7第五章对全文工作进行总结,并提出了下一步的研究工作。第二章LDPC码及其译码算法9第二章LDPC码及其译码算法本章首先简要介绍了LDPC码的图模型表示;接着推导了不同测度下的和积译码算法;然后给出了最小和译码算法及其两种修正算法,并给出了不同译码算法下LDPC码的仿真性能曲线,选定了适宜硬件FPGA实现的译码算法;仿真了不同量化参数对译码性能的影响,给出合适的量化方案。2.1因子图和LDPC码的概念因子图(FactorGraph)是一个表示因式分解结构的二部图(bipartite),图中每一个变量节点对应一个变量,每一个因子节点对应一个局部函数,当且仅当变量是局部函数的自变量时,相应的变量节点和因子节点之间存在一条连接边。一个码长为Ⅳ、信息位长度为K的线性码由一个生成矩阵Gr。Ⅳ定义,信息序列分组%。置通过G被映射到码字工=mG。线性码也可以由一致校验矩阵巩。Ⅳ描述,所有码字都满足H.,=0r。校验矩阵的每一行表示一个校验约束,M个校验约束构成伴随式向量。校验矩阵的每一列表示一个码元符号参与的校验约束。根据校验矩阵中的元素取自的域不同,低密度校验码可以分为二元低密度校验码和曰元低密度校验码。我们主要对二元LDPC(Low—densityparity-check)码进行讨论。图2.1给出了一个M×NLDPC码一致校验矩阵及其因子图表示。Ⅳ个变量节点对应一致校验矩阵日的Ⅳ列,M个校验节点对应日的M行。LDPC码是一类线性码。GF(2)上的规则LDPC码具有以下特性【9】:1)校验矩阵日的每一列都包含正好d.,个“1”;2)校验矩阵日的每一行都包含正好d,个“1”;3)两行或两列中不能有多余一个相同位置上有非零元素:(特性3在定义LDPC码时不是必要的,引入只是为了避免4环)4)d,和d,,相对于码长和校验矩阵的行数来说很小。11H=1OO00101Ol000OO…1…0…1…0111O…图2.1aLDPC码的校验矩阵10准循环LDPC码的编译码器设计及FPGA实现变量节校点验节点图2.1bLDPC码的因子图表不由于d,和d,,相对于码长和校验矩阵的行数来说很小,所以LDPC码的一致校验矩阵日中非零元素占的比例很小,低密度校验的名字由此而来。LDPC码的密度,-等于校验矩阵日中非零元素所占的比率。,.:生:堕,.=』=‘IZ—lJNM(2.1)检验矩阵日是一个(Ⅳ一K)xN的矩阵,d,和d。的关系为dc=以Ⅳ/(Ⅳ一K)(2—2)得到LDPC码的设计码率为Rc=K/N=1一或/cfc(2·3)日可依上述结构条件随机生成,但所给码的性能差异较大。如果日矩阵各行线性,则实际码率R=R;否则,实际码率R=(Ⅳ一M3/N>R,其中M’是日如果日是一个稀疏矩阵,而每行或每列中“l”的个数不是常数,则由这样的一如图2.2(b)所示,若由因子图中的某个节点出发,经过不同的连续的节点,最行空间的维数。致校验矩阵日定义的是非规则LDPC码。后可返回所选的起始节点,则该闭合路径即构成因子图中的一个环(cycle),环上的节点数或边数称为环长,图中所有环的最小长度称为围长(girth)。图2.2.b中虚线边和连接的节点构成长度为4的环,4也是此因子图的围长。第二章LDPC码及其译码算法1I-I=O0l0llOOOll10lOa01O1声一手一司校验节点£立到…点b图2.2(8,2,4)LDPC码的校验矩阵和因子图由和积译码算法的迭代过程可知,当因子图中存在环路时,参与迭代运算的信息不满足性,环的存在使得译码不满足最优性。因此,因子图中的环是影响LDPC码性能的重要因素之一【261。另一方面,Richardson证明无环图对应的码不是渐近好码,反而环的存在可以改善码的最小距离,对码本身的性能带来好处【l21。可见,在LDPC码的设计过程中,需要兼顾码结构本身和迭代译码解决环的问题。一般码长较长时消除4环即可获得较好的性能,而对于短码,环的影响更大一些。2.2Qc—LDPC的概念和基本特点QC.LDPC(Quasi.CylicLDPC),即准循环LDPC码。顾名思义,其校验矩阵由循环矩阵组成,可以表示为式(2-4)所示:4。。Hqc=4,:4.,4.,4.。4,:4,。4,:=【MM:…M】(2—4)4.,由式(2—4)可以看到该QC—LDPC码的校验矩阵比由ct个子矩阵排列而成,其中4,均为b*b循环矩阵。循环矩阵见,为方阵,他的每一行都是上一行的循环右移1位所得,第一行为最后一行的循环移位。对于这样的循环矩阵,他的每一列都是左边一列循环下移一位所得,最左边一列是最后一列的循环移位。循环矩阵的列重和行重都是一样的,记为w。当W=1时即为置换矩阵(permutationmatrix)。循环矩阵可以由它的第一行完全确定,所以可以将它的第一行称为循环矩阵的生成向量。日。,的结构特征为:(1)4,重量相对于b比较小;(2)见。的任意两行(两列)中最多只有一个“1"在相同的位置。第一条性质可以保证日弘为系数矩阵,第二条性质使q。满足Rc(row—clounmconstraint)。这样通过Hq。可以得到长为刀=tb的QCLDPC码q。。c0中没有长为4的环【2”。如果Hq。中所有的子矩阵重量均为w,则缸。的行重为tw,列重为洲,q。为规则12准循环LDPC码的编译码器设计及FPGA实现的LDPC码。QC.LDPC码的特点如下:(1)由QC.LDPC校验矩阵的结构,考虑将e。中的任一个码字’,都可以分成以下的结构:’,=(M,屹,…,U),其中每个部分1,,都含有1,中的连续b个比特。令’,?’为1,,右移,个比特所得的向量,由H,的准循环的结构特征,可以推。出v+=(“¨,谚’,…,t”)也是e。中的一个码字。(2)对于l≤J≤t,令Mf为峨。的第/列循环矩阵,即Mj=墨.j墨.j;(2-5)疋.j则%=【M鸩…M】。令Q为MM:…M,的第k列组成的矩阵,矩阵大小cbxt。由此构造出矩阵《=[QQ2…Q】。由%。的准循环特征可以推出《。的每一行是上一行的循环移位f比特所得向量。《的零空f.q给出的LDPC码c二等于q。。将任一个c:循环移位r比特得到的也是c二中的码字。如果Hq。中只有一个循环矩阵,则c0是一个循环码。2.3和积译码算法对于U)PC码,当码长很长时,最大似然译码算法几乎不可实现。因此,寻找一种有效的译码算法甚至比构造一个好码更为重要。和积译码算法,也就是置信传播译码算法,通过Bayes准则获得近似最大后验概率译码,是基于无环图的LDPC码的最优迭代译码算法。如果LDPC码的因子图上有一个环,这时和积算法收敛到一个稳定的点,获得较好的性能。但无法确定因子图中有多于一个环时的性能【28】实际应用的信道情况很多,现仅以BIAWGN信道下,BPSK调制时的译码算法及过程进行分析。其中和积译码算法、标准最小和译码算法、归一化最小和译码算法、带偏移量的最小和译码算法都是基于这个信道环境的。采用的符号表示如下:(1)M(,z)表示与变量节点,2相连的校验节点的集合,即日矩阵第n列中l的位置;(2)Ⅳ(聊)表示参与第m个校验方程的变量节点的集合,即日矩阵第m行中1的位置;(3)Ⅳ(聊)\以表示从集合Ⅳ(聊)中去掉元素,2之后的子集;(4)M(n)\m表示从集合M(,2)中去掉元素m之后的子集;(5)0代表模二和。LDPC码的和积算法在对数似然比度量下的译码过程如下:●初始化:,=0,最大迭代次数为乙。。。对于LDPC码的一致校验矩阵日中的每第二章LDPC码及其译码算法一个非零元k=I,0≤m≤M,0≤n≤N初始化:L(q。。)=三(只)=L(x。I以)=log(P(x,,=0Y。)/P(x。=1Iy。))=2y。/仃2●迭代消息传递和更新:(2—6)第一步(校验节点更新):对每个校验节点m及刀∈Ⅳ(聊),计算£(‰)=l兀sign(L(q砌))l厂I∑f(L(q砌))I\n‘eⅣ(Ⅲ)Ⅶ/Ln’EⅣ(Ⅲ)、HJ(2—7)其蝴班山t址(主)=h筹第二步(变量节点更新):对每个变量节点n及m∈朋@),计算(2-8)L(q。)=三(只)+∑三(名.。)m’e./Vl(n)\rn(2-9)(2—10)工(Q)=三(只)+∑三(‰)meA4(n)\m第三步(判决):如果三(Q)≥0,令Xn=0,否则Xn=1。●译码尝试:判决码字;=[;。,;:,...,;.Ⅳ】,如果伴随式妇r=0,停止迭代,将;作为译码输出,否则跳至第一步继续执行。如果迭代次数到达k仍未成功,则宣告失败,终IE迭代。2.4最小和译码算法2.4.1标准最小和译码算法和积算法中存在着大量的tanh和它的反函数运算,因此计算的复杂度偏高。对校验节点更新的公式进行简化,即得最小和算法。由式(2.7)可得,礼品。m(训M几…min灿№。1)h=m删in。№。l点更新公式为:(2.11)根据式(2.11)对和积算法的校验节点更新公式简化后,最小和译码算法校验节,,、…’三(‰)=1.职、,sign(L(q删卜删划三(¨l(2-12)\n.E~(m)Ⅵ/最小和译码算法的译码过程中的初始化和变量节点更新公式和和积译码算法相同。14准循环LDPC码的编译码器设计及FPGA实现从式(2.7)和式(2.12)口--j"以看NL(r.。)和三(‰)拥有相同I的符号,而三(‰)的模总是大于三(‰)的模,也即,szgn(Z(r.。”=sign(L(r.。)),而I上(‰)I>}三(‰)I。可以用这个关系进一步处理上(名。)以便得到更精确的软信息。归一化最小和译码算法可以通过乘以一个小于1的常量0c改进性能。此时校验节点的更新公式为:三(‰)=I.兀Jign(L(q.圳×k酬三(‰)归(2-13)\一’eN(rn)\n/、。…、’理论上,口应该随不同的信噪比(SN]R)和迭代次数而改变以得到最优的结果,但是为了简单起见口保持为一个常量。估计12"的一个较好的方法是密度进化(DE)的方法来确定。2.4.3带偏移量的最小和译码算法考察归一化最小和译码算法修正项对校验节点更新核心公式(2.7)的影响,可以得到一种更便于计算的简化形式,即从和积译码算法的校验节点更新公式中减去一个正常量∥,如下,,\tl'EⅣ(m)u、/三(‰)=l职,,sign(L(q砌))J×maxI。.珊划三(¨l_P,01.…、’(2—14)这种方法与归一化最小和译码算法的不同之处在于,模值小于∥的LI瓜信息值被置为零,也就是忽略了其对下一轮变量节点更新的影响。值得注意的是,最小和译码算法,归一化最小和译码算法以及带偏移量的最小和译码算法都不需要信道信息,只需要信道接收值作为输入信息。2.5不同译码算法性能比较选用CCSDS标准131.1一O.1中用于深空通信的LDPC(8192,4096)码【28】,该码的码率为0.5,它也是我们接下来即将FPGA实现编码和译码的LDPC码。在AWGN信道下BPSK调制,采用不同的译码算法的性能仿真曲线如图2.4所示。最小和译码算法实现比和积译码算法简单,且不需要信道信息。由图2.4的性能仿真曲线可知,最小和译码算法和和积译码算法的差异在0.5dB以内;归一化最小和译码算法和带偏移量的最小和译码算法与和积译码算法只有小于0.1dB的损失。由上面的性能曲线可以看出,归一化最小和译码算法可以获得比带偏移量的第二章LDPC码及其译码算法最小和译码算法更好的性能。通过仿真,我们发现,归一化最小和译码算法的修正因子改动对性能影响较大,通过特定的信噪比就可以确定,获得比较直观。而对于带偏移量的最小和译码算法,需要根据初始消息和更新消息的大小确定修正参数,且对大小比较敏感。由此我们可以得出结论,在实际应用中,应该选择归一化最小和译码算法。圈秭它、’’叫≮;\●一、口;\{…、、…\卜‘\C\∑‘;\弋警i、《墨喜}LL翼j“|;::、≮.1.j一\|j§l\惑!誊\∑。\拇u∑1.822.2{.40.60.81.21.41.62.Eb/NO(dB)图2.4不同译码算法性能曲线,从左到右依次为和积算法、归一化最小和算法(修正系数0.8)、标准最小和算法2.6归一化最小和算法量化方案准循环LDPC码译码器的硬件FPGA硬件实现需要考虑性能、复杂度和灵活性等因素。归一化最小和算法中,涉及到很多的浮点加减法运算,当码长较长时,在硬件FPGA中的实现将会带来空间复杂度和时间复杂度的几何级数增长。因此,对LDPC码译码器FPGA实现来说,量化译码设计是非常重要的,它是硬件实现所必须考虑的关键环节。本节将基于归一化最小和算法,结合计算机仿真对LDPC码的量化译码方案进行研究,分析量化对译码性能产生的影响,并提出可行的量化译码方案。16准循环LDPC码的编译码器设计及FPGA实现一般来说,非均匀量化引起的损失总是比均匀量化带来的损失小,但是均匀量化的运算实现简单,在补码表示时,可以直接相加减,因此我们选择均匀量化作为接收信号的量化方式。在AWGN信道,BPSK调制条件下,信道特性是满足对称性条件【341,归一化最小和算法中三(e)、三(‰)和L(q。。)大致成对称分布,因而适宜采用对称量化。进过大量仿真,发现对接收信道初始似然值的量化,量化方法的不同对译码性能影响不大,而均匀量化的硬件实现较非均匀量化更容易,因此直接选取均匀量化作为初始信道似然值的量化方式。中间消息如果采取与初始信道似然值系统的量化间隔,而限幅区间相应的放宽的话,加减法可以直接运算,无须附加转换,硬件实现将会很容易。图2.5表明采用不同比特均匀量化的误码率曲线。10‘110-3叱ILl∞10-410.5::::::::::i::::::::::j:::::::::::i::::o:::j::::::::::由::::::::::::::::::::::::::::::::!:::::::::::::::::::::10-711.21.41.61.822.22.42.62.83Eb/N0(dB)图2.5初始信息和中间迭代信息的不同量化方式对误码性能的影响从图2.5可得,初始信道似然值的量化采取6比特均匀量化、中间消息采取8比特均匀量化后,译码性能已经接近连续译码,因此将次方案作为归一化最小和算法的量化方案。第二章LDPC码及其译码算法172.7本章小结本章研究了LDPC码及其主要译码算法。先系统地介绍了LDPC码的图模型表示,并介绍了LDPC码两个重要概念:环和围长;在此基础上我们推导了概率测度下和对数似然比测度下的和积译码算法;然后我们给出了和积算法的简化算法.最小和译码算法以及它的两种修正译码算法;最后我们对不同译码算法进行了性能分析。由于修正的最小和译码算法化乘积运算为和运算,运算复杂度低,适合硬件实现:当选取合适的修正参数,修正的最小和译码算法与标准的和积译码算法相比性能损失很小。通过对各种不同译码算法的计算机仿真分析,我们得出,归一化最小和译码算法是性能和译码复杂度折中的最优算法,并给出了硬件FPGA实现译码时的量化方案。第三章QC—LDPC码译码器的FPGA设计与实现19第三章QC-LDPO码译码器的FP6A设计与实现本章结合对数域归一化最小和译码算法,详细阐述了Qc.LDPC码译码器硬件实现的整体结构,其中包括初始信道似然值数据输入缓冲模块、迭代译码模块和译码结果输出缓冲三个模块。同时以AltcraStratixII系列产品中EP2S180F1508C3芯片为硬件平台,使用QuartusII6.1和ModelSim6.39开发工具,通过VerilogHDL硬件描述语言完成了QC.LDPC码译码器的设计和仿真。3.1FPGA实现译码的Qc—LDPC码码型选择选取CCSDS标准131.1.O.1中用于深空通信的LDPC(8192,4096)码【28】,作为使用FPGA实现译码的LDPC码。该码是典型的QC.LDPC码。它的校验矩阵如图3.1所示。S1SOPOP1P2\.\.\.H1\jj\\.^y一\.。\\.\\‘≮、\一仝H2\\.\~>\.鑫墼.\.‘专\\.\.\.≮\.^\\。\。≮≮≥L’≮≤\.\.\j扒.\.≮H3二弋3j∑L\、。愿.‘、.、~。\\j\\IM\0M0M0MIM且,2=l厶oH8凡oF17oⅡ。0肼0J|l,L0^,凡%on50J|l,enlkn4on3on2图3.1(8192,4096)QC-LDPC码校验矩阵示意图图3.1中,0Ⅳ、乙、n,…n。都是准循环矩阵,M=2048,即每个矩阵的大小都是2048,n。…n。都是以512为单位进行循环移位的。n。…n。非零元的位置计算请参考CCSDSl31.1.O.1第三章第五页的计算公式【28】。CCSDSl31.1一O一1标准提供了一系列的准循环LDPC码,接下来仅以(8192,4096)准循环LDPC码的编译码器设计及FPGA实现为例说明和验证QC-LDPC码译码器的FPGA设计实现方法,其它码与(8192,4096)码完全相同,不再赘述。3.2译码器整体结构设计3.2.1QC—LDPC码译码器的总体结构由Shannon的数字通信系统模型(图1.1),设计了QC.LDPC码译码器的工作流程图,如图3.2所示。为简化起见,省去了中频、高频等部分,全部模块直接在基带处理。流程图的最初输入端为BIAWGN信道,BPSK调制。图3.2QC-LDPC码译码器的工作流程图QC.LDPC译码器的硬件总体结构框图如图3.3所示。其中硬件译码器是由数据输入缓冲模块、变量节点处理过程、校验节点处理过程、数据输出缓冲模块四个模块共同组成。编码信息经过调制后进入高斯信道,生成加噪的接收信号。经量化处理(8比特量化)后得到量化的加噪接收信号,再将数据存入数据输入缓冲模块,用以调整系统的接收信息速率,使其适应译码器读取和处理的速率。初始化模块将来自数据输入缓冲模块的8比特量化信息进行初始化似然比计算,并将初始化后的数据存储,以供变量节点矩阵存储模块和校验节点矩阵存储模块不断地读取。译码处理模块中变量节点处理模块完成了计算“变量——校验”的进化信息过程;译码处第三章QC.LDPC码译码器的FPGA设计与实现21理模块中校验节点处理模块完成了计算“校验——变量”的进化信息过程,并将迭代译码后的信息进行硬判决。最终,译码输出缓冲模块完成了将硬判决信息串行的从译码输出端输出。迭代过程………………………………。‘1。I痖:县t}七IrIX里IJ,氚I荠据一H处理卜J校差薹点’b输囊烈图3.3QC-LDPC译码器的硬件总体结构框图3.2.2QC-LDPC译码器的整体控制部分圈3.4译码器的整体控制示意图整个译码器控制按照分层分级的方式实现,模块化思想贯穿整个设计。译码器控制部分iterctrl负责协调整个译码器的工作,是最高层的控制;输入缓冲、变量节点处理、校验节点处理、输出缓冲这些模块的控制是第二层控制,各个单元之间的控制互不干扰。如图3.4所示。整个译码过程基本按照图3.4所示的三个步骤,进行类似流水线的操作,即信道初始似然值缓冲单元接收完一帧数据,译码单元开始进行一帧的译码,同时信准循环LDPC码的编译码器设计及FPGA实现道初始似然值缓冲单元进行下一帧数据的缓冲;在完成预定的迭代次数之后,译码结果缓冲单元输出判决结果,译码单元等待(或开始)进行下一帧的译码。除此之外,译码器控制都分还需要监视迭代主体部分每次迭代的完成状况,即每次变量节点处理过程和校验节点过程的完成状态,以判断是否达到了预定的最大迭代次数,以及何时启动各个处理单元等。3.3译码器分块单元设计3.3.1信道初始似然值缓冲单元的设计编码器输出的编码结果经过BPSK调制后,通过高斯白噪声(AWGN)信道传输,经解调、同步、量化后,到达译码器的接收端。为了防止数据发送过快而译码处理速度较慢,导致发生新数据没有被写入或旧数据被重复写入的错误,所以采用数据输入缓冲模块来调整系统的接收数据速率,输入数据信息以一定的速率被写入,并以适应译码器处理的速率被读出。为了在进行本帧的迭代译码时,可以同时进行接下来一帧数据的缓冲,将缓冲单元的深度设置为两帧帧长大小,数据位宽为8,补码表示。值得说明的是,按照第二章2.6节的结论,初始信息应当均匀量化6比特量化,这里位宽8的数据是6比特量化后的数据符号展宽而形成的。在这一模式下,进行迭代运算时,尤其是变量节点运算时,所有的数据均可直接相加减,不必转换。缓冲单元的RAM模型如图3.5所示。l2图3.5输入数据缓冲单元读写模型将RAM区域分为相同大小的两部分1和2,区别这两部分主要靠写地址(或读地址)的最高位,最高位O时,表示在对1部分进行写(或读)操作,反之,则表示在对2部分进行写(或读)操作。在对1部分写入数据缓冲时,读出2部分的数据进行译码,图3.5中实线箭头所示;在对2部分写入数据缓冲时,读出1部分的数据进行译码,图3.5中虚线箭头所示:如此往复,交替完成数据的缓冲存储和迭代译码时的读取工作。在完成一帧数据缓冲,即写入1部分(以1部分为例,2部分类似)后,出一个接收完毕信号finish—read给总体控制单元iter—cM。由总体控制单元启动译码单元;第三章OC-LDPC码译码器的FPGA设计与实现同时将写地址指向2,即接下来的一帧数据缓存入2部分;读地址指向1,即开始已经缓冲完毕的一帧数据的译码。3.3.2变量节点处理单元的设计变量节点处理单元主要用于计算“变量节点——校验节点"的信息。它完成更新需要的数据来自于两个方面:初始信道似然值和校验节点返回给变量节点的信息。根据变量节点更新公式、初始化公式、译码判决公式的联系,在FPGA实现时,设计了兼具变量节点更新、初始化、译码判决三个功能的变量节点处理单元。分析实现过程如下:变量节点更新的计算公式为L(q。。)=三(只)+∑L(r·。)迭始之前,初始化公式为(3—1)£(g,肼)=三(只)=—z,丁yn译码判决公式为(3-2)£(Q)=三(只)+∑三(,:,I·。)拼。EM(H)(3-3)Vn,会。-11仁三(Q)<o(3-4),c”lo仁工面>o观察上面的前两个过程发现,初始化只是变量节点更新的特殊情况,即纵向运算时,除三(只)外,其余加数全部为零,或者说即使其余加数都是未知数,对他们都不做加和而已。由此,我们加入一个新的控制信号first_iterflag用于区分是在进行一般的变量节点更新运算,还是初始化过程。在后面的讨论过程中,将不再区分初始化和变量节点更新,将之统称为变量节点更新(或者纵向运算)。观察变量节点更新公式和译码判决公式,显然如果优先计算出三(Q),则£(吼。)的计算将会变得更加简单,只需减去多加的三‘。:L(q。。)=三(Q)一L(rm)判决的结果。在达到预定的迭代次数后,直接将译码判决结果输出即可。综合上述,通过精心设计,将变量节点更新、初始化、译码判决三个过程合一。这样做的好处是,不用再添加专门用于初始化和译码判决模块,提高了模块的通用性,从而提高FPGA资源利用率。S1、SO、PO、P1、P2变量节点更新运算基本是相同的,区别仅在于由于列重(3·5)在计算出三(Q)后,可以直接进行译码判决,即直接截取三(Q)的最高位作为不同而导致的加数的个数不同,因此只以SO的的变量节点更新为例说明之,其他准循环LDPC码的编译码器设计及FPGA实现的更新过程相同,不再赘述。SO的列重为4。我们设计如图3.6所示的流水线加法器,每一个时钟节拍输出一组返回结果,每一组数据从输入至IJ返回结果,均延迟4个时钟周期。简单起见,仅设四个输入为a,b,C,d,信道的初始似然值为Ln。Altera的EP2S180F1508C3片子内有丰富的IP核,我们这里的加法器和减法器直接使用它的加法器核lpmaddsub,采用其一级流水线形式。在迭始之前,初始化时,需要把a,b,C,d四个值忽略,直接把Ln的值付给4个返回值,在流水线末端限幅器之前加一个2选1选择器,在初始化阶段直接将初始信道似然值返回。变量节点更新计算出的中间结果sum可以用于判决。为了节省硬件资源,我们将这一中间结果的最高位(判决结果)输出来。每次迭代时都更新一次判决结果。注意,为了与返回值同步,需要加一个时钟延迟。这样在达到预定的迭代次数后,判决结果也已全部更新完毕,可以直接输出,减少了延迟,节省了硬件资源。abCd图3.6SO变量节点过程流水线加法器示意图S1四个超列、SO四个超列、PO四个超列、P1四个超列、P2的四个超列共20个超列,它们的变量节点更新采取并行处理的方式进行,也即整个译码器的变量节点更新是20路并行的,共需要20个如图3.6所示的变量节点处理单元。3.3.3校验节点处理单元的设计校验节点处理单元主要用于计算“校验节点——变量节点"的信息。它完成更新需要的数据来自于变量节点返回给校验节点的信息。采用归一化最小和译码算法,校验节点更新的公式为:第三章Qc.LDPC码译码器的FPGA设计与实现25m小L熙咖(地。)K洲nfin、№砌)l卜\^’EⅣ(m)h/………7…(3-6)将校验节点处理过程分为两部分进行,一部分计算符号,另一部分计算最小值及归一化乘法,在这两部分计算完毕后,将符号和归一化最小值转变为补码输出。计算过程示意图如图3.7所示。dataidatai图3.7校验节点处理单元示意图假设该校验节点的度为k,输入值从datain一1到datain—k,返回值从dataout一1到dataoutk。datainX的为非负数时,sign(datainx)值取,否则取1,在这一前.0提下,符号之间的乘法演变为符号之间的异或运算,易于硬件实现。在计算最小值之前,并行k个绝对值单元,同时计算出这k个输入的绝对值,在比较器组合中,计算出k个最小值,并对其进行归一化乘法运算,最后与符号部分合并为补码输出,完成校验节点更新。之所以要计算出k个最小值,是因为要返回给第X路的最小值要将第X路输入datainX的绝对值排除在外,因此每路分别求出一个最小绝对值,综合起来即k个最小值。图3.1中H1四个超行、H2四个超行、H3四个超行的校验节点更新采取并行处理的方式进行,每个超行内采取8路并行,也即整个译码器的校验节点更新是96路并行的,共需要96个如图3.7所示的校验节点处理单元。3.3.4判决结果输出缓冲单元的设计由变量节点处理单元的设计,同时完成了变量节点更新、初始化、译码判决三个功能,在每次变量节点更新过程中,都对已有的译码结果进行更新。当变量节点过程完成时,译码判决过程也已经完成,并且已经写入到译码结果存储RAM中。因此在达到最大的迭代次数之后,直接由输出缓冲单元控制,将最后的译码结果从译码结果存储RAM中读出即可。准循环LDPC码的编译码器设计及FPGA实现为了在本巾贞译码结果向外输出的同时,可以同时进行接下来一帧译码结果的更洲模型如图3.8所示。这块RAM属于读入、读出时钟不同,而且可以同时读写型的RAM。写入和读出的规则如下:l新,将输出缓冲单元的深度设置为两帧信息长度大小,数据位宽为1。缓冲单元的2图3.8输出数据缓冲单元读写模型将RAM区域分为相同大小的两部分1和2,区别这两部分主要靠写地址(或读地址)的最高位,最高位0时,表示在对1部分进行写(或读)操作,反之,则表示在对2部分进行写(或读)操作。在对1部分进行译码结果更新时,读出2部分的数据向外输出,图3.8中实线箭头所示;在对2部分进行译码结果更新时,读出1部分的向外输出,图3.8中虚线箭头所示;如此往复,交替进行译码结果更新存储和向外输出缓冲过程。在达到最大迭代次数后,总体控制单元iter—ctrt给判决结果输出缓冲单元下达开始输出信号output2部分类似),同时给出一个信息帧头信号info—head给总体控制单元iter—etrl。此时,读地址指向RAM区域1;在下一帧数据开始迭代后,总体控制单元启动译码单元,同时将写地址指向RAM区域2。在RAM区域2的判决结果更新的同时,向外缓冲RAM区域1的判决结果。3.3.5存储器安排与寻址方式设计译码器中的存储规财需要精心设计,它主要涉及初始信道似然值存储、变量节点信息单元、校验节点信息单元、译码判决结果存储单元四大部分。每一部分的存储器安排与寻址方式设计如下:(1)初始信道似然值存储部分:开辟一块连续的存储空间,存储深度为两帧码长,分为上下两部分,总是存在一部分在读取,另一部分在写入,即在读取本帧数据用于译码的同时,存储下一帧数据;通过存储地址的最高位的控制,来控制读或者写的是上下部分的中的那一部分,例如最高位“O",则是对上半部分进行读或者写操作。(2)变量节点信息单元:开辟变量节点信息存储空间,专用于存储校验节点返回给变量节点的信息;在写入时,每块的开始写地址初始化为拐点写地址,随着第三章Qc.LDPC码译码器的FPGA设计与实现27校验节点更新的进行,写地址依次加1;在读出时,读地址初始化为0,随着变量节点更新的进行,读地址依次加1,直至最大值截至。(3)校验节点信息单元:开辟校验节点信息存储空间,专用于存储变量节点返回给变量节点的信息;在写入时,每块的开始写地址初始化为拐点写地址,随着变量节点更新的进行,写地址依次加1;在读出时,读地址初始化为0,随着校验节点更新的进行,读地址依次加1,直至最大值截至。(4)译码判决结果存储单元:开辟一块连续的存储空间,存储深度为两帧的信息位长度,分为上下两部分,总是存在一部分在读取,另一部分在写入,即在读取本帧数据用于译码的同时,存储下一帧数据;通过存储地址的最高位的控制,来控制读或者写的是上下部分的中的那一部分,例如最高位“l",则是对下半部分进行读或者写操作。3.4验证结果与性能分析本设计采用AlteraStratixII系列产品中EP2S180F1508C3芯片为硬件平台,使用QuartusII6.1和ModelSim6.39开发工具,通过VerilogHDL硬件描述语言完成了准循环LDPC(8192,4096)码编码器的设计。经过QuartusII6.1编译后,FPGA资源使用基本情况如表3.1所示。表3.1(8192,4096)QC.LDPC码译码器FPGA资源使用概况FamilyDeviceALUTsRegistersStratixIIEP2S180F1508C345,79428,6911,576,528192MemorybitsDSPblock9-bitelements经ModelSim6.39后仿真,时序图如图3.9和图3.10所示。其中wrclk为信道信息输入时钟,datain为信道信息,startread为输入信息帧头,inputreset为输入信息有效,clk为系统工作时钟,dilav.,位复器码译为rdclk为译码后信息输出时钟,dataout为最终编码输出信息,output有效,framehead为输出帧头。由于码长较长,因此仅截取局部,见图3.9,连续译码的后仿真如图3.10所示。将输出的译码结果与理论输出结果比较后,完全正确。编译完毕后,经QuartusII6.1TimingAnalyzer分析,本译码器设计系统工作时钟,可稳定运行于200MHz;吞吐量可达lOOMbps;经上板测试,误码率曲线如图3.11所示,编码增益8.5dB。田而百j五百——————准循环LDPC码的编译码器设计及FPGA实现黼州m眯霾酣n_jJ_图3.9(8192,4096)QC-LDPC码译码器硬件仿真时卑图(局部)陵丽甄瞳焉曩丽函画rl臻登黪裟縻_;|瓣}:|藜器J图310(8192。4096)码译码器硬件仿真时序田(连续译码第三章QC.LDPC码译码器的FPGA设计与实现Ik、r\、\\\:≮叱山t12;\\\k太慕\\本章修正最小和算法为基础,针对选定的准循环LDPC码,进行了QC-LDPC译码器的各个模块的设计和FPGA实现。在QuartusII开发环境下,通过VerilogHDL硬件描述语言完成了QC—LDPC码译码器的仿真和测试。第四章QC—LDPC码编码器的FPGA设计与实现31第四章Q0-LDPC码编码器的FPGA设计与实现本章结合QC.LDPC码编码算法,详细阐述了QC.LDPC码编码器硬件实现的整体结构,其中包括编码器整体控制模块、未编码信息输入缓冲模块、级联编码输出三个模块。同时以AlteraStratixII系列产品中EP2S180F1508C3芯片为硬件平台,使用QuartusII6.1和ModelSim6.39开发工具,通过VerilogHDL硬件描述语言完成了QC.LDPC码编码器的设计和仿真。4.1QC.LDPC码的编码方法作为信道编码中纠错能力最强的码型之一,LDPC码由于其译码器结构实现简单,可以用较少的资源消耗获得很高的吞吐量,但编码器的复杂度问题作为不利因素制约着LDPC码的应用。传统的编码方法是通过生成矩阵生成码字,其复杂度和码长的平方成正比,这使得LDPC码在编码上需要大量的硬件资源和很长的延时。Richardson中引入了一种新颖的算法在很大程度上解决了该问题【29】,之后,Dong-ULee等人利用这种新算法设计了相应的编码方法【30】,这种编码方法适用于大多数的LDPC码;而对于基于有限几何或其他置换方法等构造出的具有循环或准循环特性的LDPC码,由于其特殊的构造,可简单地用移位寄存器来实现编码,编码算法复杂度进一步降低。4.1.1传统编码算法LDPC码的传统编码算法和一般的线性分组码十分类似,需要求出生成矩阵。若已知长度为k的输入信息向量M,以及kxn的生成矩阵G,则C=M×G。在获得校验矩阵日后,利用日和G之间的正交性可以用高斯消元法来得到生成矩阵。假设稀疏矩阵日-[目见】,其中日:是一个(,z—k)x(n—k)的稀疏方阵,并且在二元域上是非奇异阵,那么G=[厶何1q】,其中五是一个k阶单位阵。显然,按照上式求得的G矩阵满足HXGr=0,而且这样得到的码字还具有系统码的形式。设有长度k的信息位m,校验位为P,求出P部分即求出整个码字C。根据G=[厶何1q】,显然有P=[日j1H。mr]r。已知校验矩阵日求解生成矩阵G的主要算法为二元域上的高斯消元法,编码时所用到的矩阵乘法的运算量阶数是O(N2),复杂度较高。32准循环LDPC码的编译码器设计及FPGA实现4.1.2基于RU算法的编码算法Richardson和Urbanke指出【29】,通过对LDPC校验矩阵进行预编码的算法(RU算法),可以使LDPC编码器的复杂度控制在与码长成线性关系。设码字矢量x=(s,P,,P:),其中S为信息位,p,与P:合起来表示校验位,利用校验方程HXXf_0来计算P,和P,。RU算法主要包括预处理和实际编码两个步骤。预编码通过行列变换把校验矩阵日转化为近似的下三角阵形式日’,预编码只需执行一次,可以在软件中预先处理。然后把日’分成6个稀疏矩阵,通过分步计算求得P,和P:,其中P。复杂度为D(Ⅳ+92),P:的计算复杂度为O(N)。图4.1为日经预编码后的近似下三角阵形式日’。图4.1近似下三角矩阵但如何得到这个近似下三角矩阵仍没有令人满意的方法,Richdson等人通过贪心算法重排校验矩阵过于复杂[29】,且这样的预处理需要很长时间。尤其当码长较长时,这种编码方法很不经济。4.1.3Qc—LDPC码的编码算法Zongwang等学者提出了针对准循环LDPC码的编码实现方法,编码复杂度Li与校验比特的长度成jerkt311。该编码实现方法的关键是根据准循环LDPC码的校验矩阵日,求出的具有准循环、系统生成矩阵G,以移位寄存加反馈的方式实现编码。具体实现如下:假设Hq。的结构如下式所示:4,。4.。nqc=4,:4.:4。:4.,4.,=【M鸩…M】(4—1)4,。4.,对于1≤/≤f,令呜为Hq。的第/列循环矩阵,即第四章OC.LDPC码编码器的FPGA设计与实现33譬。jM,=盛.j;(4—2)毽.j则■。=【MM:…M】。令Hq。的右边c列,即4.,_。+1D=4.f-c+24.f-。+24.,-州4.,4。:4.f-c+14.,-c+l(4-3)4.,假设要求的生成矩阵为q。,形式如下:GlOqq,q。=G2:,=阮c)6P](4—4)Gf.。,0;O0,;OO;,靠劬;“q;qQ;q叩,为bxb单位矩阵,0为bxb零矩阵,G,为bxb循环矩阵。令g,,为G,的第一行,则G的第一行g,=(0…0“0…O毋,。甜=(10…0),0=(0g啦…&,。),其中0…0)。令zf=(gi。lgi.2…gi,。),由%哚=[0],可得够“r+珥=0,假设D满秩,则zf=D-1M∥,,易得zl,z2,...,z心,至此已经求得啄的所有生成向量&∥周期延拓即得吒。LiZongwang等研究了硬件编码实现方式【3l】,框图如图4.2所示。bbitfeedbackshift-register图4.2OC-LDPC移位寄存器编码器准循环LDPC码的编译码器设计及FPGA实现这种实现方法的缺点是:(1)bbitfeedbackshift.register部分即要在一个周期内写入b比特校验信息,又要完成顺序移位,实现起来不方便;(2)待所有的只校验位求出后,要额外加一个并串转换电路,完成比特流输出,耗费的硬件资源较多;(3)编码器的级联实现过程较复杂。基于上述考虑,重新设计了硬件实现方式。原理如下:令嘎,,为循环矩阵Gf,,的第一列,令础为忽。,的,个循环下移。码字中第/个校验部分P,的第,个比特P,,可以由下式计算:P『'f=口1捌了1’+口2巧≥1’+…+口卜。碰-。,i,)(4—5)而元177"是办艘的循环下移,即移D=璀:∥噬?1’=础,绣多”=硝?,…,璀劣=璀:吐,(4—6)因此以循环矩阵q,.,的第一列为校验关系,实现编码的框图如图4.3所示。i息比特甲t\甲甲…甲l信息比特剖剖剖…剖校比特进今口宅汇加…专日来的章节详细阐述。4.2校验比特l图4.3移位寄存加反馈的QC-LDPC编码器该方法全面解决了图4.2编码器的三个缺点。具体的FPGA实现过程将在接下FPGA实现编码的Qc.LDPC码码型选择选取CCSDS标准131.1.0.1中用于深空通信的LDPC(8192,4096)码,作为使用FPGA实现编码的LDPC码。LDPC(8192,4096)码是典型的Qc-LDPC码。该码的校验矩阵组成如图4.4所示。\0Ⅵ0Mq,2=l厶o178厶on70116\-0MIM0MIMkno皿-llll0肘0.jl,IM《9I'Is0Mo九皿on图4.4(8192,4096)QC-LDPC码校验矩阵组成图4.4中,0|jl,、厶、17,…I-I。都是准循环矩阵,M=2048,即每个矩阵的大小都是2048,I'I。…17。都是以512为单位进行循环移位的。兀,…n。非零元的位置计算请参考CCSDSl31.1.O.1第三章第五页的计算公式【28】。以蓝色部分表示‘‘1”,第四章QC.LDPC码编码器的FPGA设计与实现35空白部分表示“0",校验矩阵示意图如图4.5所示。S1S0P0P1P2\\\.‘。?H1\.\\.\\.\、1,>\\.\\,\\\.\.\。\.,\\.\j。LI\\.\\。\.\^、\\,\隧。‘\、y\I\<丫一j\‘~\\\\\.弋H2气二扒\.l\.H3.\、?j.S.▲迭,\j\\.图4.5(8192,4096)校验矩阵示意图该码的准循环、系统校验矩阵q。的求解详见4.1章4.1.3节“Qc—LDPC码的编码算法",这里重点阐述编码器的FPGA硬件实现技术。4.3QC.LDPC码编码器主要单元的设计4.3.1QC.LDPC码编码器的总体结构QC.LDPC编码器的硬件总体结构框图如图4.6所示。其中硬件编码器是由数据输入缓冲、编码器总体控制、编码器级联三个模块共同组成。堡蚓存储器—·—————————————-H读地址—————————●叫年F傅器信息帧头l塑△堡鼙厂jL一控制部分输出标志码字帧头图4.6准循环编码器结构总图未编码信息通过输入标志、信息帧头、信息比特这些信号送入到数据输入缓冲存储器,用以调整系统的接收信息速率,调整以适应编码器读取和处理的速率。控制部分在一帧信息完全进入译码器并缓冲完毕后,给编码器发出开始编码命令、输出标志、帧头等信号。编码器在受到开始编码命令后,从缓冲单元读出信息比特,开始一帧的编码,并同时输出编码后的码字。36准循环LDPC码的编译码器设计及FPGA实现4.3.2移位寄存加反馈的QC.LDPC单编码器移位寄存加反馈的QC.LDPC单编码器是整个QC.LDPC编码器的关键模块。它的硬件结构示意图如图4.7所示。i息比特甲,●甲甲…甲●●信息比特割剖割…剖校比特进命[阳M)台忸…蚰.k.I校验比特}图4.7移位寄存加反馈的QC-LDPC单编码器编码开始时,图4.7顶部的系数初始化为校验矩阵的最左边一歹Ⅱ校验系数。在所有信息比特依次进入单编码器后,编码器开始从“校验比特出”依次输出校验比特信息。移位寄存加反馈的QC.LDPC单编码器,简称“QC-LDPC单编码器”。4.3.3QC.LDPC码单编码器的级联移位寄存加反馈的QC。LDPC单编码器的级联实现了对整个准循环系统生成矩阵的编码输出。级联的硬件结构示意图如图4.8所示。信息图4.8QC-LDPC码单编码器的级联移位寄存加反馈的QC—LDPC单编码器的只是对生成矩阵的一列完成编码,在级联后,即可完成对整个生成矩阵的编码。其编码过程为:(1)在信息比特输入阶段,所有单编码器的最左一个异或门接本级单编码器的“校验比特出”,直接把“信息比特’’作为编码后的输出,即系统码的信息位部分;(2)在所有信息比特全部进入单编码器后,将“信息比特”输入端接地,所有单编码器的最左一个异或门接上一级单编码器的“校验比特出”端口(第一级单编码器的最左一个异或门接地),直接把校验比特作为编码后的输出,即系统码的校验位部分。第四章QC-LDPc码编码器的FPGA设计与实现3744验证结果与性能分析本设计采用Ah啪StmtixII系列产品中EP2S180F1508C3芯片为硬件平台,使用QuartLl¥II6I和ModelSim639开发工具,通过VcrilogHDL硬件描述语言完成了准循环LDPC(8192,4096)码编码器的设计。经过QII,盯RI¥Ⅱ61编译后,该译码器的FPGA资源使用基本情况如表41所示。表41侣经ModelSim639后仿真,时序图(局部)如图4.9所示图49(8192—096)QC-LDPC码编码罂硬件仿真时序圈(局部)其中datamcll【为未编码信息输入时钟,datain为未编码信息,start_read为输入信息帧头,imutvalid为输入信息有效,clk为系统工作时钟,也是编码后信息的输出时钟,reset编码模块复位,dataout为最终编码输出信息,outputvMid为输出有效,flame_head为输出帧头。由于码长较长,因此图4.10仅截取局部,圈410为连续编码的后仿真图。将输出的编码结果与理论输出结果比较后.完全正确。编译完毕后,经QuartusII61TimingAnalyzer分析,本编码器设计系统工作时钟,可稳定运行于200MHz:单编码器吞吐量可达200Mbps。综上所述,该编码器设计基本达到了高吞吐量设计目标。与QC-LDPC码译码器的设计联台,分别作为发送端和接收端,整个系统具有优异的纠错性能,较高准循环LDPC码的编译码器设计及FPGA实现的吞吐量。编译码系统可以应用于各种通信场合。!i,-:。一e:u。墨皿皇墨墨¨o¨I。000∞口圈410(¥192,4096)QC-LDPC码编码器硬件仿真时序图(连续编码)4.5本章小结本章首先对传统的编码方法以及基于R.U算法的编码方法进行了阐述,对“Zongwang等学者提出的针对准循环LDPC码的编码实现方法进行了研究,改进并提出了优化的硬件实现方案。以提出的优化硬件实现方案为基础,进行了QC-LDPC码的各个模块的设计和FPGA实现。在Qu帅sⅡ开发环境下,通过V蕊log硬件描述语言完成了Qc-LDPC码编码器的仿真和测试。HDL第五章结束语39第五章结束语1993年Turbo码的问世与成功,掀起了现代编码技术的研究热潮。其中,最接近香农容量限的LDPC也称为人们研究的热点之一。QC。LDPC码因为译码和编码上的实现难度比其它类型的LDPC码更简单,纠错性能也比较优异,成为很多系统采用的标准。因此,对于QC.LDPC码的译码的编码的FPGA实现的研究,将会是很有价值意义的。本文作者结合国家自然科学基金项目,采用理论分析和硬件仿真实践相结合的方法,对LDPC码的几个关键技术进行了研究:包括译码算法、编码算法和FPGA硬件系统设计等;并对设计的FPGA硬件系统在进行了门级仿真和上板测试。主要工作有以下几个方面:.1)系统地介绍了LDPC码的译码原理,具有不同复杂度的和积算法、最小和算法、归一化最小和算法等的消息迭代更新公式。2)针对准循环LDPC码,以归一化最小和算法为基础,设计了具有一定复杂度的FPGA硬件译码器,并进行了门级仿真和上板测试。3)介绍了传统常用的LDPC码的编码原理:针对准循环LDPC码,设计了具有一定复杂度的FPGA硬件编码器,并进行了门级仿真。关于准循环LDPC码的编译码的研究相当广泛,还有许多理论和实际应用问题没有得到解决,本文的研究只涉及了其中个别问题。虽然准循环LDPC码编译码器的研究已经取得了很多结果,而且也已经有很多的硬件芯片面市,但是也存在着如下一些问题:1')理论方面,应该设计不同码长、不同结构的准循环码,以适应不同的应用环境。目前设计的性能优异的准循环LDPC码码长都很长,实现复杂度较高,占用FPGA资源较多。因此设计适应不同信道的、码长较短的准循环LDPC码是目前待解决的问题;2)在译码器的设计时,吞吐量还不够高;能否从不大幅提高硬件资源占用量而提高译码并行路数的思路上,对已有的译码器进行优化,也是要研究的问题之一:3)已经实现的译码器,支持的不同码长、不同码率的准循环LDPC码数目不是很多,因此设计支持不同参数、不同标准的准循环LDPC码编译码器也是将来要研究的问题。致谢41致谢非常荣幸能够进入信道编码实验室。很荣幸能够遇上我的导师白宝明教授。在此,我将我最诚挚的谢意和深深的祝福献给我的导师白宝明教授和师母张济平老师!能在白老师的悉心指导和深切关怀下顺利完成硕士学业,我感到非常荣幸。平易近人的白老师以他深厚的学术造诣、严谨的治学态度以及孜孜不倦的钻研精神,为我树立了学习的榜样;他所倡导的宽松、自由、开放的学术氛围使我终生受益;白老师是真正的绅士,是一位受与他接触过的每一个人赞赏和尊敬的好老师。特别感谢王新梅教授,王老师渊博的知识、平易近人和淡泊名利的待人处世方式为学生树立良好的榜样。王老师倡导自由、开放的学术氛围和每周一次的学术讨论使我受益匪浅。非常感谢李颖副教授和郭旭东师兄!特别感谢郭旭东师兄两年半来对我的指导和帮助。郭老师的指导和开放性地思维让我取得今天的成绩。在此,深深感谢郭老师,并祝福郭老师全家幸福,祝福亮亮健康、快乐成长。非常感谢刘波高工和李旭东工程师。在54所合作项目期间,刘老师和给与了很多的帮助,手把手带我进入硬件设计的领域。衷心祝福你们生活愉快、工作顺利。感谢陈超博士对我的帮助,陈超师兄热情、严谨,对信道编码充满激情深深感动着我努力学习,勇于迎接挑战。感谢林伟博士,林伟师兄对学术一丝不苟,是我工作和学习永远的榜样,林伟师兄的谦虚、好学也是我深深敬佩的。感谢和我一起学习生活的靳凡硕士、黎炳硕士、张弓硕士、李磊硕士、张洁硕士、陶建武硕士、宋光辉硕士,还有102、103、104的所有兄弟们,与你们朝夕相处两年半是我的幸运,也衷心祝福你们健康生活,快乐工作。感谢崔俊云博士、刘传梅硕士,在和她们一起学习和工作的两年多里,我学习到了很多东西,谢谢你们!最后,我要深深感谢我的父母和亲人,感谢您们多年来含辛茹苦的养育和无私的关怀!父母为我的成长付出了巨大的心血,帮助和支持我克服学习和生活中的各种困难,顺利地完成了学业。是您们的坚持让我走到了今天,你们的儿子不会让你们失望,你们的健康是我最大的心愿。祝福您们健康!感谢所有给过我帮助和关爱的人,祝你们永远平安、幸福!参考文献43参考文献[1】C.E.Shannon,‘‘Amathematicaltheoryofcommunication.”BellSyst.Tech.Z,v01.27,PP.379-423,623—656,July-Oct.1948;ReprintedinC.E.ShannonandW:Weaver,TheMathematicalTheoryofCommunication.Urbana,IL:Univ.IllinoisPress,1949.【2】A.1LCalderbank.“Theartofsignaling:Fifryyearsofcodingtheory.”IEEETrans.』矿Theory,44(6):2561-2595,Oct.1998.[3】RGGallagar,Informationtheoryandreliablecommunication,MIT)JohnWilely&Sons,Inc,1968.【4】J.GProakis.DigitalCommunications,4th.ed.McGraw-HillCompanies,Inc.,2001【5】R.GGallager.Lowdensityparity-checkcodes.Cambridge,MA:MITPress,1963.【6]白宝明.‘'Turbo码理论与应用的研究”.西安电子科技大学博士学位论文,1999.[7】GD.Fomey'Concatenatedcodes.Cambridge,MA:MrrPress,1966.[8】R.MichaelTanner.‘‘Arecursiveapproachtolowcomplexitycodes.”IEEETrans.历fTheory,27(5):533—547,Sep.1981.【9】D.J.C.MacKayandR.M.Neal.‘'NearShannonlimitperfommnceoflow-densityparitycheckcodes.”Electron.Lett.,32:1645—1646,Aug.1996.【10】S.-Y.Chung,GD.Fomey,Jr.,T.J.Richardson,andR.Urbanke.“Onthedesignoflow-densityparity-checkcodeswithin0.0045dBoftheShannonlimit.”IEEEComm.Letters,5(2):58-60,Feb,2001.【1l】T.J.RichardsonandR.L.Urbanke.‘'Thecapacityoflow-densityparity--checkcodesundermessage-passingdecoding.”IEEETrans.蟛Theory,47(2):599—618,Feb.2001.【12】T.J.Richardson,M.A.Shokrollahi,andR.L.Urbanke.‘'Designofcapacity-approachingirregularlow-densityparity—checkcodes.”IEEETrans.蟛Theory,47(2):619-637,Feb.2001.[13】Y.Kou,S.Lin,andM.P.C.Fossorier,“Low-densityparity-eheckcodesbasedOnfinitegeometries:arediscoveryandnewresults.”IEEETrans.Inform.Theory,v01.47,lap.2711-2736,Nov.2001.【14]I.Djurdjevic,J.Xu,ICAbdel—Ghaffar,andS.Lin,“AclassoflowdensityparitycheckcodesconstructedbasedonReed·Solomoncodeswithtwoinformationsymbols.”IEEECommun.Lett.,v01.7,PP.317-319,Jul.2003.[15】RM.Tanner,D.Sridhara,A.Sridharan,T.E.Fuja,andD.J.Costello,Jr.,“LDPCblockandconvolutionalcodesbasedoncirculantmatrices.”IEEETrans.Inform.Theory,v01.50,Dec.准循环LDPC码的编译码器设计及FPGA实现2004.[16]x.-Y.Hu,E.EleRheriou,andD.一M.Arnold,“Progressiveedge—growthIEEETannergraphs.”inProc.GLOBECOM,SanAntonio,TX,Nov.2001,PP.995-1001.Y.Li,“Designofefficientlyencodablemoderate-length【17】M.Yang,W.E.gyan,andhi曲-rateirregularLDPCcodes.”IEEETrans.Commun.,v01.52,PP.564—571,Apr.2004【18】J.ChenandM.P.C.Fossorier,‘'Nearoptimumuniversalbeliefpropagationbaseddecodingoflow-densityparitycheckcodes.”IEEETrans.Commun.,v01.50,PP.406414,Mar.2002.ofLow—DensityParity—CheckCodes."Internet,【19】BhaRT,“FixedPointDSPImplementationtejas@ee.tamu.edu【20]LoeligerHA.“ProbalityPropagationandDecodinginAnalogVLSI”,IEEETrans.InfoFm.Theory,2001,47(2):837-843.【21】ZhangTandParhiK&“VLSIImplementation-Oriented(3,k)RegularLow-DensityParity-CheckCodes”.Intemet,parhij@ccc.cmu.edu【221LevineBeta1.“ImplementationofNearShannonLimitError-CorrectingCodesUsingReconfigurableHardware”.Intemet,hlevine@ccc.cilia.eduInc.‘'Vector【23tFlarionTechnologiesLow-DensityPmty—CheckCodingSolutionDataSheet.Internet”,www.flarion.tom【24】IEEEP802.16e/d8IEEEStandardforLocalandmetropolitanareanetworks.IEEE,May2005【25】中华人民共和国国家标准.“数字电视地面广播传输系统帧结构、信道编码和调制”.征求意见稿,2004.4【26】X.Hu,M.Fossorier,andE.Eleflheriou,“Onthecomputationofthe.minimumdistanceoflow-densityparity—checkcodes”/n767.771.Proc.ofInt.Conf.Commun.ace’04),June2004,pp.【27】kYu,S.Lin,andM.Fossorier,”Lowdiscovery.andnewresults,”IEEEdensityparitycheckcodesbasedonfinitegeometries:ATrans.彬Theory,v01.47,no.11,10p.2711·2736,Nov-2001Committeefo厂SpaceDataSystems.Recommendation[28】ProceduresManualfo,-theConsultativeforSpaceDataSystemStandards.CCSDS131.0-O-1.OrangeBook.IssueCCSDS.Sep.2007.1.Washington,D.C.:【29】KicharddsonT,UrbrankeR.“Efficientencodingoflow·densityparity—checkcodes”.IEEETrans.1nfo.Theory,2001,47(2):638-656.【30]LeeD—U,WAYNEL,WANGC,etal。‘‘Aflexiblehardwareencoderforlow-densityparity。oncheckcodes“,12thAnnualIEEESymposiumField-programmableCustomComputingMachines.fs.1.]:IEEE【31】LiZongwang,ChenPress、2004:101-111Lei,ZengLingqi,eta1.“EfficientEncodingofQuasi—CyclicLow-DensityParity—CheckCodes”.IEEETrans.onCommunications,2006,54(1):71-81参考文献45【32]KAndrews,S.Dolinar,andJ.Thorpe.‘'EncodersforBlock.CirculantLDPCCodes.”InProceedingsoftheIEEEInternationalSymposiumonInformationTheory(Adelaide,Australia),2300-2304.Piscataway,NJ:IEEE,Sep.2005[33】文磊.“基于图模型的LDPC码译码算法研究”.国防科学技术大学硕士学位论文,2005.[34】YorkRA,LiaoP.”OscillatorArrayDynamicswithBroadbandn-portCouplingNetworks”.onIEEETransMicrowaveTheroyandTech,1994,42(11):2040-2045.研究成果47研究成果一、参加科研情况1.国家自然科学基金中电项目:深空通信中的若干关键技术研究,(2006.2008)。2.国家自然科学基金项目:多进制LDPC码的关键技术研究,(2006.12.2008.12)。准循环LDPC码的编译码器设计及FPGA实现
作者:
学位授予单位:
张玉凯
西安电子科技大学
1.期刊论文 谢伟 LDPC码编码器实现方法 -山西电子技术2009(5)
LDPC码是一种系统复杂度低的线性纠错码,其实用化受到了业界的广泛关注.文章概述了LDPC码的基本编码原理,从硬件实现角度概括了LDPC码编码器五种硬件实现方法并对其进行分析,最后指出LDPC码编码器的硬件实现及其发展趋势.
2.期刊论文 彭立.朱光喜.PENG Li.ZHU Guang-xi 基于Q-矩阵的LDPC码编码器设计 -电子学报2005,33(10)
本文给出Q矩阵的定义,在此基础上提出由Q矩阵构造的LDPC码新码族;研究Q矩阵的性质,根据Q矩阵的性质和变化形式,提出一种构造稀疏奇偶校验矩阵H的算法,同时给出一种基于Q矩阵的LDPC码编码器设计算法.模拟仿真表明,采用和积迭代解码算法,在0.5码率,6144码长,10-5以下误码率时,Q矩阵LDPC码目前的最好性能达到离香农限1.5dB.本文还研究了快速搜索Q矩阵的算法.如果对Q矩阵采用离线搜索,在线存储Q矢量的方式,可使构造H矩阵的计算复杂度为零,编码器算法复杂度与编码长度N成线性关系.Q矩阵LDPC码不同于现有其它结构LDPC码的独特之处在于,对码长和码率参数的设计具有高度灵活性,使其能与现有标准兼容.
3.学位论文 张杨军 数字电视传输系统中LDPC码编码器的研究与FPGA实现 2008
自香农先生于1948年开创信息论以来,经过将近60年的发展,信道编码技术已经成为通信领域的一个重要分支,各种编码技术层出不穷。目前广泛研究的低密度奇偶校验(LDCP)码是由R.G.Gallager先生提出的一种具有逼近香农限性能的优秀纠错码,并已在数字电视、无线通信、磁盘存储等领域得到大量应用。 目前数字电视已经成为最热门的话题之一,用手机看北京奥运,已经成为每一个中国人的梦想。最近两年我国颁布了两部与数字电视有关的通信标准,分别是数字电视地面传输标准(DMB-TH)和移动多媒体(CMMB)即俗称的手机电视标准。数字电视正与每个人走得越来越近,我国预期在2015年全面实现数字电视并停止模拟电视的播出。作为数字电视标准的核心技术之一的前向纠错码技术已经成为众多科研单位的研究热点,相应的编解码芯片更成为重中之重。在DMB-TH标准中用到了LDPC码和BCH码的级联编码方式,在CMMB标准中用到了LDPC码和RS码的级联编码方式,在DVB-S2标准中用到了LDPC码和BCH码的级联编码方式。 本论文以目前最重要的三个与数字电视相关的标准:数字电视地面传输标准(DMB-TH)、手机电视标准(CMMB)以及数字卫星电视广播标准(DVB-S2)为切入点,深入研究它们的编码方式,设计了这三个标准中的LDPC码编码器,并在FPGA上实现了前两个标准的编码芯片,实现了DMB-TH标准中0.4、0.6以及0.8三种码率的复用。在研究CMMB标准中编码器设计时,提出一种改进的LU分解算法,该分解方式适合任意的H矩阵,具有一定的广泛性。测试结果表明,芯片逻辑功能完全正确,速度和资源消耗均达到了标准的要求,具有一定的商用价值。
4.学位论文 张虎星 基于DMB-TH的LDPC码编译码器的研究与设计 2009
自从1948年香农开创了“信息论与编码理论”以来,信道编码技术已经成为通信领域中一个重要的部分。香农理论指出了可靠通信的一个理论上限,几十年来业界的大部分努力都是在寻找复杂度上适合硬件实现,性能上逼近理论极限的信道编解码技术。低密度奇偶校验码(Low-Density Parity-Check Codes)以其优异的性能和广阔的应用前景,成为信道编码技术研究的热点。中国的数字电视地面广播标准(DMB-TH)和移动多媒体系统(CMMB)以及新一代数字卫星广播标准(DVB-S2)都采用LDPC码作为纠错码。中国数字电视地面传输标准中采用BCH和LDPC码作为前向纠错码,其中LDPC码为内码
,BCH码为外码。 本文在研究国标中的纠错码基础上,主要针对LDPC码的编译码器设计和硬件实现进行了较深入的研究,具体包含下面几个方面的工作。 首先简单阐述了差错控制技术和数字电视技术的相关概念,以及LDPC码的基本原理和常用的译码算法。在研究国标中LDPC码性质的基础上,设计实现了支持国标中三种码率的基于移位寄存器累加和算法的LDPC编码器。本文设计的多码率编码器采用编码电路复用技术,减少了编码器消耗的资源,与传统的编码器相比,耗费资源较少,并且支持三种码率,有较好的性价比。通过仿真验证,本文设计的编码器满足国标的要求。 接着仿真了国标中LDPC码基于各种译码算法的译码性能,结果表明,BP算法性能最好,最小和算法性能比BP算法低0.7~1.1dB左右,本文采用归一化最小和算法作为译码算法,在归一化系数为0.625,迭代20次时,性能距BP算法仅0.05dB~0.1dB左右。根据校验矩阵的准循环特性,本文设计的译码器采用部分并行的译码结构,在资源和速度方面有较好的折中。在设计了译码器的整体结构的基础上,重点设计实现了译码器的关键模块,包括变量节点处理单元、校验节点处理单元和存储器设计,并对校验节点处理单元做一定的优化,相比优化前节约了一半的资源。
5.期刊论文 彭立.朱光喜 一种LDPC码编码器设计方案的研究 -现代电子技术2004,27(10)
介绍一种LDPC码的编码器设计方案.LDPC码编码器设计的关键问题是构造低密度奇偶校验矩阵,文中以矩阵π-作为子矩阵,通过π-对矩阵适当的组合排列,构造出低密度奇偶校验矩阵,由该矩阵构造出规则LDPC码,并设计准规则LDPC码编码器.
6.学位论文 怀钰 LDPC码编译码算法的研究 2004
LDPC(LowDensityParityCheck)码是一种具有稀疏校验矩阵的线性分组纠错码,其逼近香农极限的优异性能和在信息可靠传输中的良好应用前景(如深空通信、移动通信系统、高速与甚高速数字用户线、磁记录系统等),已引起各国学术界和IT业界的广泛关注。但是采用常用的分组编码方法会严重破坏校验矩阵的稀疏性,导致LDPC码编码复杂度的增加;而且由于译码器实现过程中的各种约束条件,使得译码算法的复杂度也有待于进一步的降低。本论文的目的是研究采用线性时间LDPC编码方法的硬件实现,以及如何降低译码算法的复杂度。 本文的研究工作主要分为以下两个部分: 第一分析了常用的系统分组码编码复杂度的问题。对于常用的编码方法,LDPC码具有很高的编码复杂度,而采用准下三角校验矩阵的编码方法则可以实现线性时间编码。利用RU算法可以有效的将检验矩阵变换为准下三角阵而不改变校验矩阵的稀疏性。针对RU算法,设计出一种编码器的硬件实现,推导出了相应的结构和运算单元,以及反映编码器性能的参数。由最终编码器参数值可知,采用RU算法进行预处理的LDPC编码器,灵活性高,编码时延小,所耗资源少,可以在线性时间内完成编码。 第二介绍了LDPC码译码算法,算法中需要用查找表来近似算法中用到的tanh函数。但是采用这种方法会降低译码的吞吐率。为此推导基于BCJR算法的简化复杂度的译码算法,对算法中的纠正函数给出了各种近似方法,比较和分析了这些不同近似方法。上述的算法简化了运算单元的计算复杂度,本文接着提出了一种简化迭代过程复杂度的门限译码算法。最后给出了LDPC码译码算法的计算机仿真和分析。仿真结果表明,所提出了算法可以有效的降低译码复杂度。 LDPC码由于其性能的优越性及数学分析上的相对简单性,引起了编码界的广泛兴趣。对LDPC码的数学模型-二分图的研究又给其它的编码带来了新的血液,引起了对诸如Turbo码等其它编码的再认识。相信这样一种具有卓越性能及简单数学结构的编码必将再理论上有更进一步的发展并再实际中得到广泛的应用。
7.学位论文 陈志凯 基于IEEE802.16e标准的LDPC码的编解码器设计与实现 2007
低密度奇偶校验码(LDPC)相对于Turbo码的优异的译码性能和具有高译码吞吐量的可能使其成为IEEE802.16e标准的几种信道编码之一。
IEEE802.16e标准的LDPC码是通过基于基本矩阵循环移位得到的一种结构性的LDPC码,这种特性使得其编码器和译码器的设计都相对简单,可以有更高的并行度和译码吞吐量。本文基于对IEEE802.16e标准的深入研究,通过比较和分析IEEE802.16e标准中给出的三种LDPC码的快速编码算法的硬件实现复杂度,找到了适合实现多码长的基于IEEE802.16e标准的LDPC码的快速编码算法,并且提出了快速编码的编码器实现结构,通过设计专用的桶形移位器使得作者提出的编码器能够支持多码长的LDPC码的快速编码。然后,本文完成了研究基于IEEE802.16e标准的LDPC码的译码算法分析和硬件实现的工作,通过对译码算法的理论分析和仿真验证并且使用密度进化的方法寻找最优参数找到了基于IEEE802.16e标准的LDPC码的最优的译码算法,提出了能够支持IEEE802.16e标准的所有码率和码长的LDPC码的译码器结构,并且完成了代码的编写和综合。采用本文提出译码器结构设计的译码器只需重新进行相关的配置就能够对一种新码率的LDPC码进行译码,这样能够大幅的降低应用成本。
8.期刊论文 彭立.朱光喜.PENG Li.Zhu Guang-xi Q-矩阵准规则LDPC码编码器设计方案的研究 -计算机工程与科学2005,27(6)
本文给出了Q-矩阵的定义,找到了一种快速搜索Q-矩阵的算法,并在此基础上提出一种准规则LDPC码编码器设计方案.该设计方案将奇偶校验矩阵H分
解成两个子矩阵,通过对这两个子矩阵结构的设计,构造出H矩阵.本文提出的准规则LDPC码编码器算法具有较低的实现复杂度,为LDPC码编码器的设计提供了最佳选择方案.
9.学位论文 石雷 LDPC码编码器FPGA实现研究 2008
LDPC(低密度奇偶校验码)编码是提高通信质量和数据传输速率的关键技术。LDPC码应用于实际通信系统是本课题的研究重点。实际通信要求在LDPC码长尽量短、码率尽量高及硬件可实现的前提下,结合连续相位MSK调制,满足归一化信噪比SNR=2dB时,系统误码率低于10-4。根据课题背景,本文主要研究基于FPGA的LDPC编码器设计与实现。 LDPC码的编码复杂度往往与其帧长的平方成正比,编码复杂度大,成为编码硬件实现的一个障碍;论文针对实际系统的预期指标,通过对多种矩阵构造算法的预选方案及影响LDPC码性能参数仿真分析,基于1/2码率,1024和2048两种帧长,设计了三种编码器的备选方案,分别为直接下三角编码器,串行准循环编码器和二阶准循环编码器。 对于每种编码器,分别设计了其整体结构,并对每种编码器的功能模块进行深入研究,设计完成后利用第3方软件MODELSIM对编码器进行了时序仿真;根据时序仿真结果和综合报告对三种编码方案进行比较,最终选择串行准循环编码器作为硬件实现的编码方案。 最后,在FPGA中硬件实现了串行准循环编码器并对其进行测试,利用MATLAB仿真程序和串口通信工具最终验证了这种编码器的正确性和硬件可实现性。
10.期刊论文 姜慧源.田斌.易克初.JIANG Hui-yuan.TIAN Bin.YI Ke-chu 准规则Q矩阵LDPC码编码器设计 -电视技术2007,31(11)
设计了一种准规则Q矩阵LDPC码编码器.该编码器基于准规则Q矩阵LDPC码的校验矩阵,其编码复杂度与信息位的长度成正比,有效降低了编码复杂度和设计难度.在Quartus Ⅱ平台上用FPGA实现了该编码器,结果证明其硬件资源占用很少.
本文链接:http://d.g.wanfangdata.com.cn/Thesis_Y1486215.aspx
下载时间:2010年3月18日
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务