LDPC编码原理概述
Posted fpga&matlab
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LDPC编码原理概述相关的知识,希望对你有一定的参考价值。
LDPC码是一种线性分组码,它于1962年由Gallager提出,之后很长一段时间没有收到人们的重视。直到1993年Berrou等提出了turbo码,人们发现turbo码从某种角度上说也是一种LDPC码,近几年人们重新认识到LDPC码所具有的优越性能和巨大的实用价值。1996年MacKay和Neal的研究表明.采用LDPC长码可以达到turbo码的性能,而最近的研究表明,被优化了的非规则LDPC码采用可信传播(Belief Propagation)译码算法时,能得到比turbo码更好的性能。
和另一种近Shannon限的码——Turbo码相比较,DLPC码主要有以下几个优势:
1.LDPC码的译码算法,是一种基于稀疏矩阵的并行迭代译码算法,运算量要低于Turbo码译码算法,并且由于结构并行的特点,在硬件实现上比较容易。因此在大容量通信应用中,LDPC码更具有优势。
2.LDPC码的码率可以任意构造,有更大的灵活性。而Turbo码只能通过打孔来达到高码率,这样打孔图案的选择就需要十分慎重的考虑,否则会造成性能上较大的损失。
3.LDPC码具有更低的错误平层,可以应用于有线通信、深空通信以及磁盘存储工业等对误码率要求更加苛刻的场合。而Turbo码的错误平层在10-6量级上,应用于类似场合中,一般需要和外码级联才能达到要求。
4.LDPC码是上个世纪六十年代发明的,现在,在理论和概念上不再有什么秘密,因此在知识产权和专利上不再有麻烦。这一点给进入通信领域较晚的国家和公司,提供了一个很好的发展机会。
而LDPC码的劣势在于:
1.硬件资源需求比较大。全并行的译码结构对计算单元和存储单元的需求都很大。
2.编码比较复杂,更好的编码算法还有待研究。同时,由于需要在码长比较长的情况才能充分体现性能上的优势,所以编码时延也比较大。
3.相对而言出现比较晚,工业界支持还不够。
目前,LDPC码被认为是迄今为止性能最好的码。LDPC码是当今信道编码领域的最令人瞩目的研究热点,近几年国际上对LDPC码的理论研究以及工程应用和VLSI(超大规模集成电路)实现方面的研究都已取得重要进展。基于LDPC码的上述优异性能可广泛应用于光通信、卫星通信、深空通信、第四代移动通信系统、高速与甚高速率数字用户线、光和磁记录系统等。LDPC码可以用非常稀疏的校验矩阵或二分图来描述,也就是说LDPC码的校验矩阵的矩阵元除一小部分不为0外,其它绝大多数都为0。通常我们说一个(n,j,k)LDPC码是指其码长为n,其奇偶校验矩阵每列包含j个1,其它元素为0;每行包含k个1,其它元素为0。j和k都远远小于n,以满足校验矩阵的低密度特性。校验矩阵中列和行的个数即j和k为固定值的LDPC码称为规则码,否则称为非规则码。一般来说非规则的性能优于规则码。
一、编码部分
LDPC码所面临的一个主要问题是其较高的编码复杂度和编码时延。对其采用普通的编码方法,LDPC码具有二次方的编码复杂度,在码长较长时这是难以接受的,幸运的是校验矩阵稀疏性使得LDPC码的编码成为可能。目前,好的编码方法一般有如下几种情况:
1、T.J.Richardson 和R.L.Urbanke 给出了利用校验矩阵的稀疏性对校验矩阵进行一定的预处
理后,再进行编码。
2、设计LDPC 码时,同时考虑编码的有效性,使H矩阵具有半随机矩阵的格式。
3、H 矩阵具有某种不变特性所采用的其他编码方法,例如基于删除译码算法
提出的编码方案。
这几种编码方案都是在线性时间内编码的有效算法,初步解决了LDPC 码的应用所面临的一个主要问题。下面对这几种编码方案作一些简单的说明。
LDPC 码有很多种译码方法,本质上大都是基于Tanner 图的消息迭代译码算法。根据消息迭代过程中传送消息的不同形式,可以将LDPC 的译码方法分为硬判决译码和软判决译码。如果在译码过程中传送的消息是比特值,称之为硬判决译码;如果在译码过程中传送的消息是与后验概率相关的消息,称之为软判决译码,有时也称为和积译码算法。硬判决译码计算比较简单,但性能稍差;软判决译码计算比较复杂,但性能较好。为了平衡性能和计算复杂度,可以将两者结合使用,称为混合译码算法。根据消息迭代过程中传送的消息是否进行了量化及量化所使用的比特数,我们可以将译码方法分为无量化译码和量化译码。硬判决译码可以看成是1 比特量化译码,软判决译码可以看成无穷多比特量化译码,而混合译码可以看成变比特量化译码。从量化译码的角度看,硬判决译码和软判决译码属于同一类译码方法,已有的研究表明,可以用3 比特量化取得和和积译码算法非常接近的性能。目前主要的硬判译码算法有一步大数逻辑译码算法(MLG),Gallager提出的比特翻转算法(BF),加权的大数逻辑译码算法(WMLG),加权的比特翻转算法(WBF)以及一些对以上几种算法作改进的算法如IWBF等硬判译码算法;软译码算法主要有迭代结构的置信传播算法(BP)(有时也称之为和积算法(SPA)),以及基于标准BP 算法,对信息进行部分处理,降低译码复杂度的译码算法,如UMP BP-based 算法(min-sum 算法),Normlized BP-based 算法,还有基于最优化理论的译码算法如线性规化算法(LP)。下面对译码算法作简单的介绍:
一、硬判译码算法
一步大数逻辑译码算法,主要原理是根据通过一系列的正交方程,比较校验结果1 和0
的数目来完成译码过程。这种译码算法译码结构简单,复杂度较低,但是应用场合有限,只
适用于某些码结构比较特殊的码字,如有限几何LDPC码。
基于 Tanner 图的信息传递的比特翻转算法,在每一次迭代过程,根据某一种准则,决
定将其中的某一个比特进行翻转,直至迭代过程结束,或者校验方程全部满足。这种译码算
法的核心在于确定比特翻转的准则,如Gallager 最初提出的BF 算法,准则是不满足校验方
程个数最多的比特进行翻转,后来提出的加权算法主要是在翻转准则加入变量节点可靠性度
量,改进算法主要是在检测翻转过程中防止出现翻转成环的现象,这些改进都进一步提高了
性能,而没有增加复杂度。
二、软判译码算法
软判译码算法主要包含BP算法及其简化形式,LP算法等。
BP算法中消息的传递形式是对数似然比(LLR),在迭代过程中,每次在变量结点和校验
结点分别按照和规则与tanh 规则更新节点的信息。直至译码结束或者校验方程全满足。BP
算法适用于各类信道,具有逼近香农限的优异性能,但校验节点的消息计算复杂度非常复杂,
为了简化校验节点的消息计算,人们提出了很多简化算法,如UMP(min-sum)译码算法就
是一个有代表性的简化算法,另外为了保证性能上接近与BP 算法,以提出了归一化的BP
算法。各种译码简化译码算法的目的就是在计算复杂度、译码性能及译码时延等方面取得最
优的折中。
线性规化算法(LP)是基于最优化理论提出的一种新的译码算法,主要思想是可以把
译码问题看作一个整数优化问题,通过对约束条件的放缩,形成一个简单的线性规化问题,
利用最优化理论的知识完成译码。这种译码算法的好处在于译码复杂度是线性的,性质便于
分析,开拓了新的译码思路。
几种常见的译码算法性能对比如下:
以上是关于LDPC编码原理概述的主要内容,如果未能解决你的问题,请参考以下文章
LDPC-5译码迭代次数对LDPC译码性能的影响分析——以最小和译码算法为例进行matlab仿真
图像隐藏基于LDPC编码译码改进DCT变换算法实现水印嵌入提取matlab源码