LDPC码

LDPC码是麻省理工学院Robert Gallager于1963年在博士论文中提出的一种具备稀疏校验矩阵的分组纠错码。几乎适用于全部的信道,所以成为编码界近年来的研究热点。它的性能逼近香农限,且描述和实现简单,易于进行理论分析和研究,译码简单且可实行并行操做,适合硬件实现。git

目录

  1. 定义
  2. 发展示状
  3. 优点劣势
  1. 图表分析
  2. 码的构造
  3. 译码算法
  1. 发展前景

 

定义

编辑算法

任何一个(n,k)分组码,若是其信息元与监督元之间的关系是线性的,即能用一个线性方程来描述的,就称为线性分组码。性能

低密度奇偶校验码图(LDPC码)本质上是一种线形分组码,它经过一个生成矩阵G将信息序列映射成发送序列,也就是码字序列。对于生成矩阵G,彻底等效地存在一个奇偶校验矩阵H,全部的码字序列C构成了H的零空间 (null space),即编码

  

spa

LDPC仿真系统图设计

LDPC码LDPC码3d

LDPC 码的奇偶校验矩阵H是一个稀疏矩阵,相对于行与列的长度,校验矩阵每行、列中非零元素的数目(咱们习惯称做行重、列重)很是小,这也是LDPC码之因此称为低密度码的缘由。因为校验矩阵H的稀疏性以及构造时所使用的不一样规则,使得不一样LDPC码的编码二分图(Taner图)具备不一样的闭合环路分布。而二分图中闭合环路是影响LDPC码性能的重要因素,它使得LDPC码在相似可信度传播(Belief ProPagation)算法的一类迭代译码算法下,表现出彻底不一样的译码性能。code

当H的行重和列重保持不变或尽量的保持均匀时,咱们称这样的LDPC码为正则LDPC码,反之若是列、行重变化差别较大时,称为非正则的LDPC码。研究结果代表正确设计的非正则LDPC码的性能要优于正则LDPC。根据校验矩阵H中的元素是属于GF(2)仍是GF(q)(q=2p),咱们还能够将LDPC码分为二元域或多元域的LDPC码。研究代表多元域LDPC码的性能要比二元域的好。视频

 

发展示状

编辑blog

LDPC码

LDPC码LDPC码

LDPC ( Low-density Parity-check,低密度奇偶校验)码是由 Gallager 在1963 年提出的一类具备稀疏校验矩阵的线性分组码 (linear block codes),然而在接下来的 30 年来因为计算能力的不足,它一直被人们忽视。1996年,D MacKay、M Neal 等人对它从新进行了研究,发现 LDPC 码具备逼近香农限的优异性能。而且具备译码复杂度低、可并行译码以及译码错误的可检测性等特色,从而成为了信道编码理论新的研究热点。

Mckay ,Luby 提出的非正则 LDPC 码将 LDPC 码的概念推广。非正则LDPC码 的性能不只优于正则 LDPC 码,甚至还优于 Turbo 码的性能,是目前己知的最接近香农限的码。

Richardson 和 Urbank 也为 LDPC 码的发展作出了巨大的贡献。首先,他们提出了一种新的编码算法,在很大程度上减轻了随机构造的 LDPC 码在编码上的巨大运算量需求和存储量需求。其次,他们发明了密度演进理论,可以有效的分析出一大类 LDPC 译码算法的译码门限。仿真结果代表,这是一个紧致的译码门限。最后,密度演进理论还能够用于指导非正则 LDPC码 的设计,以得到尽量优秀的性能。

LDPC水印系统结构框图

LDPC码LDPC码

LDPC码具备巨大的应用潜力,将在深空通讯、光纤通讯、卫星数字视频、数字水印、磁/光/全息存储、移动和固定无线通讯、电缆调制/解调器和数字用户线(DSL)中获得普遍应用。

M.Chiain 等对 LDPC 码用于有记忆衰落信道时的性能进行了评估。B.Myher 提出一种速率自适应 LDPC 编码调制的方案用于慢变化平坦衰落信道,经推广还可用于 FEC-ARQ 系统。

Flarino 开发的集成了 V-DLPC 的 flash-OFDM 移动无线芯片组己可用于基于 IP 的移动宽带网。VOCAL Technologies.Ltd 提出了一种用于 WLAN 的LDPC/Turbo 不对称解决方案,即下行链路采用 LDPC 码,上行链路采用 Turbo码。研究代表采用该方案后用于IEEE802.11 a/b/gWLAN移动终端的电池寿命可延长至原来的4倍。

工业界也己经有 LDPC 编译码芯片问世。其中,处于领先地位的 Flarion公司 推出的基于 ASIC 的 Vector-LDPC 解决方案使用了约 260 万门,最高能够支持 50000的码长,0.9 的码率,最大迭代次数为 10,译码器能够达到 10Gbps 的吞吐量,其性能己经很是接近香农限,能够知足目前大多数通讯业务的需求。AHA 公司、Digital Fountain公司也都推出了本身的编译码解决方案。

 

优点劣势

编辑

和另外一种近Shannon限的码-Turbo码相比较,LDPC码主要有如下几个优点:

1. LDPC码的译码算法,是一种基于稀疏矩阵的并行迭代译码算法,运算量要低于Turbo码译码算法,而且因为结构并行的特色,在硬件实现上比较容易。所以在大容量通讯应用中,LDPC码更具备优点。

2. LDPC码的码率能够任意构造,有更大的灵活性。而Turbo码只能经过打孔来达到高码率,这样打孔图案的选择就须要十分慎重的考虑,不然会形成性能上较大的损失。

Trubo码编码器结构

LDPC码LDPC码

3. LDPC码具备更低的错误平层,能够应用于有线通讯、深空通讯以及磁盘存储工业等对误码率要求更加苛刻的场合。而Turbo码的错误平层在10量级上,应用于相似场合中,通常须要和外码级联才能达到要求。

4. LDPC码是上个世纪六十年代发明的,如今,在理论和概念上再也不有什么秘密,所以在知识产权和专利上再也不有麻烦。这一点给进入通讯领域较晚的国家和公司,提供了一个很好的发展机会。

而LDPC码的劣势在于:

1. 硬件资源需求比较大。全并行的译码结构对计算单元和存储单元的需求都很大。

2. 编码比较复杂,更好的编码算法还有待研究。同时,因为须要在码长比较长的状况才能充分体现性能上的优点,因此编码时延也比较大。

3. 相对而言出现比较晚,工业界支持还不够。

 

图表分析

编辑

为了分析方便,咱们通常用因子图来表示一个LDPC码。因子图上全部的代码点能够分红互不相关的两类,咱们称之为信息点和校验点。因子图上的边以必定的规律把它们链接起来,可是同一类中的代码点不能用边链接起来。事实上因子图与用来定义码字的奇偶校验矩阵H是相对应的,即因子图上的变量节点对应矩阵H的列向量,校验节点对应因子图上的行向量,而矩阵中非零元素就对应因子图上的每一条边。在定义新的码字时,每一次构造的码字在二进制矢量域中定义为x=(x1,x2,…,xn)。当且仅当方程Hx=0时为一码字,也就是说,当且仅当每个校验点的相邻变量节点的异或值为0时,对应的二进制矢量x=(x1,x2,…,xn)才是一个码字。假设因子图上每个变量节点的度数是Y,每个校验点的度数是P,节点的次数为与该节点相联边的个数。若是Y,P相对于码字总长n来讲很小,则该因子图对应的奇偶校验矩阵是稀疏矩阵。

一个码长n=6,码率r=1/3,列重Y=2,行重P=3的校验矩阵H和其对应的因子图以下:

校验矩阵 因子图

   
校验矩阵 因子图

LDPC码LDPC码

LDPC码LDPC码

校验矩阵

因子图

非正规与正规LDPC码

在LDPC码的校验矩阵中,若是行列重量固定为(P,Y),即每一个校验节点有P个变量节点参与校验,每一个变量节点参与Y个校验节点,咱们称之为正则LDPC码。Gallager最初提出的Gallager码就具备这种性质。从编码二分图的角度来看,这种LDPC码的变量节点度数所有为Y,而校验节点的度数都为P。咱们还能够适当放宽上述正则LDPC码的条件,行列重量的均值能够不是一个整数,但行列重量尽可能服从均匀分布。另外为了保证LDPC码的二分图上不存在长度为4的圈。咱们一般要求行与行以及列与列之间的交叠部分重量不超过1,所谓交叠部分即任意两列或两行的相同部分。咱们能够将正则LDPC码校验矩阵H的特征归纳以下:

1. H的每行行重固定为P,每列列重固定为Y。

2. 任意两行(列)之间同为1的列(行)数(称为重叠数)不超过1,即H矩阵中不含四角为1 的小方阵,也即无4线循环。

3. 行重P和列重Y相对于H的行数M、列数N很小,H是个稀疏矩阵。

在正则LDPC码的校验矩阵中。行重和列重的均值保持不变,因此校验矩阵中1的个数随着码长的增长而线性增加,整个校验矩阵的元素个数则成平方增加。当码长达到必定长度时,校验矩阵H是很是稀疏的低密度矩阵。对于正则的LDPC码,MacKay给出了如下两个结论:

1. 对于任意给定列重大于3的LDPC码,存在某个小于信道传输容量且大于零的速率r ,当码长足够长时,能够实现以小于r且不为零的速率无差错的传输。也就是说任意给定一个不为零的传输速率r,存在一个小于相应香农限的噪声门限,当信道噪声低于该门限且码长足够长的时候,能够实现以r速率无差错的传输。

2. 当LDPC码的校验矩阵H的列重Y不固定,而是根据信道特性和传输速率来肯定时,则必定能够找到一个最佳码,实如今任意小于信道传输容量的速率下无差错的传输。

对于LDPC 码的每一个变量节点来讲,当它参与的校验式越多,即度数Y越大,则它能够从更多的校验节点获取信息,也就能够更加准确的判断出它的正确值。对于H的每一个校验节点来讲,当它涉及的变量节点越少,即度数P越小,则它能够更准确的估计相关变量节点的状态。这种状况对于正则LDPc码来讲是一对不可克服的矛盾,因而Luby,Mitzemnacher等人就引入了非正则LDPC码的概念。

在非正则LDPC码的编码二分图中,两个集合内部的节点度数再也不保持相同,即每一个变量节点参与的校验式数目或每一个校验式中含有的变量节点数目再也不保持均匀,而是有意设置部分突出的变量节点和校验节点。在译码过程当中,那些参与较多校验式的变量节点迅速获得它们的正确译码信息,这样它们就能够给相邻的校验节点更加有效的几率信息,而这些校验节点又能够给与它们相邻的次数少的变量节点更多的信息。整个译码的过程呈现出一种波状效应,次数越高的变量节点首先得到正确信息,而后是次数较低的节点,而后依次往下,直到次数最低的变量节点。正是这种波状效应,使得非正则LDPC码得到比正则LDPC更好的译码性能。

二元域与多元域LDPC码

对LDPC码的定义都是在二元域基础上的,MaKcay对上述二元域的LDPC码又进行了推广。若是定义中的域不限于二元域就能够获得多元域GF(q)上的LDPC码。多元域上的LDPC码具备较二进制LDPC码更好的性能,并且实践代表在越大的域上构造的LDPC码,译码性能就越好,好比在GF(16)上构造的正则码性能己经和Turbo码相差无几。多元域LDPC码之因此拥有如此优异的性能,是由于它有比二元域LDPC码更重的列重,同时还有和二元域LDPC码类似的二分图结构。

假设在域GF(2)和域GF(q)(q=2p)上构造的LDCP码所对应的校验矩阵分别是H2和Hq。H2中的元素是0或1,而Hq是由元素0,1,…,q-1构成,Hq中的每一个元素都是H2中p个元素的合成。若是设域GF(q)(q=2p)上的一个值a与一个1*p的二进制向量相关联,那么把这个向量代入Hq中,就能够获得Hq的二进制表示。对于二进制LDPC码来讲,若是它的校验矩阵H的列重量足够大,那么它能够任意地接近香农限,可是若是增长列重量会使得二分图中节点之间短圈的数H急剧增长从而使BP算法的性能降低。而在GF(q)域上构造的LDPC能够解决这个矛盾,它的检验矩阵H。能够增长与之对应的二进制校验矩阵HZ中列的平均重量,且它的二分图结构并无改变,不会形成节点之间短圈数目的增长,从而使得译码性能获得显著的提升。这种多元域上的编码构造会增长译码复杂度,可是相对于译码性能的提升来讲这种增长是值得的。

 

码的构造

编辑

对LDPC码来讲,不考虑码长和次数分布的状况下,校验矩阵的结构就成了影响其性能的重要因素,反映在二分图上对编码性能有重要影响的就是图中环的长度分布,须要采用必定的方法对校验矩阵进行构造,得到好的编码。

目前LDPC码的构造方法主要能够分为两大类:随机或伪随机构造方法和代数的构造方法。

随机或伪随机的构造方法主要考虑的是码的性能,在码长比较长(接近或超过10000) 时,性能很是接近香农限。代数的构造方法一般考虑的是下降编译码的复杂度,在码长比较短的时候更有优点。

1. Gallager LDPC码

用和乘积算法(SPA:Sum-pordcuct algorithm)进行译码取得最大后验几率的译码性能的条件是二分图中没有小的环,即girth为4的环,无4环的条件反映到二分图中就是任意两行中1的交迭数目不超过1个。无4环的二元高比特率LDPc码能够经过随机生成行构成,通常来讲,这种方法不能生成固定行重量的矩阵。

Gallaegr提出了一种替代的方法:采用随机置换的方法来构造规则LDPC码。对于码长为N的(j,k)正则码,将M*N矩阵H经过j个大小为(M/j)*N的子矩阵构成,每一个子矩阵自己也是LDPC矩阵,列重量为1,行重量为k,第一个子矩阵为阶梯型,即第1行的k个1的列号是从(i-1)*k l到1*k,而其余子矩阵都是第一个子矩阵的随机列置换,这样每一个子矩阵每行都有k个1,每列都有1个1。这种构造方法要求M必须是j的整数倍。

(20,3,4)LDPC码的校验矩阵

LDPC码LDPC码

Gallager曾给出了一个码长为20的规则(3,4)LDPC码的校验矩阵,如图所示。图中的第一个子矩阵就是一个阶梯型矩阵,而第2个和第3个矩阵都是第一个子矩阵的列置换。

Gallager同时证实了随机置换获得的GaHager LDPC码的最小汉明距离可以随着码长的增长而线性增长,并且在对称无记忆信道中,采用最大似然译码时,其误码率随着码长的增长而呈指数形式降低,这说明随机置换获得的Gallager LDPC码是一类至关好的码。

可是,Gallager在构造LDPC码时采用的是随机置换,这就给实现带来了麻烦,就须要大量的存储单元来存储校验矩阵中这些1的位置。

2. 肯定性结构的LDPC码

肯定性结构的LDPC码也称为准循环LDPC码。相对于随机结构的矩阵是很容易得到的肯定性结构的矩阵,这种矩阵能够经过更少的参数来定义LDPC码。肯定性结构的LDPC码的构造方法基于“阵列码”(Array Code)。阵列码是用来检测和纠正突发差错的二维码。

经过三个参数定义LDPC码。一个基本参数p和两个整数j和k。令H为jp*kp的矩阵,定义为:

LDPC码

LDPC码LDPC码

其中这里的I是p*p的单位阵,Bi.j是Ip*p的左循环移位Bm.n或右循环移位Bm.n的置换矩阵。显然,H矩阵中1的分布就只与循环位数Bm.n有关。对LDPC码的分析就能够转换为对Bm.n的分析。

将各小矩阵的循环移动位数写成一个矩阵为

LDPC码

LDPC码LDPC码

上面的校验矩阵提供了一个能够用于SAP译码的稀疏矩阵。并且,这个校验矩阵结构上没有四线循环。

 

译码算法

编辑

LDPC码编码是在通讯系统的发送端进行的,在接收端进行相应的译码,这样才能实现编码的纠错。LDPC 码因为其奇偶校验矩阵的稀疏性,使其存在高效的译码算法,其复杂度与码长成线性关系,克服了分组码在码长很大时,所面临的巨大译码算法复杂度问题,使长码分组的应用成为可能。并且因为校验矩阵稀疏,使得在长码时,相距很远的信息比特参与统一校验,这使得连续的突发差错对译码的影响不大,编码自己就具备抗突发错误的特性。

LDPC码的译码算法种类不少,其中大部分能够被归结到信息传递〔Mesaseg Prpagation,MP)算法集中。这一类译码算法因为具备良好的性能和严格的数学结构,使得译码性能的定量分析成为可能,所以特别受到关注。MP算法集中的置信传播(BP)算法是Gallager提出的一种软输入迭代译码算法,具备最好的性能。若是咱们首先理解并掌握了一些很简单的硬判决算法后,对BP算法的理解会更加容易。同时,经过一些经常使用的数学手段,咱们能够对BP译码算法做一些简化,从而在必定的性能损失内得到对运算量和存储量需求的下降。

 

发展前景

编辑

LDPC码具备很好的性能,译码也十分方便。特别是在GF(q)域上的非规则码,在非规则双向图中,当各变量节点与校验节点的度数选择合适时,其性能很是接近香农限。从此,LDPC码的研究方向主要有:

(1)码的设计;

(2)选择合适的硬件(以下降编译码的运算复杂性);

(3)LDPC码应用于下一代通讯系统。目前,LDPC码已成为第四代移动通讯编码技术中的首选。

相关文章
相关标签/搜索