LDPC码及其译码实现

  • 格式:docx
  • 大小:345.90 KB
  • 文档页数:12

LDPC码及其译码实现

一、 LDPC码简介

LDPC码最早在 20 世纪 60 年代由Gallager在他的博士论文中提

出,但限于当时的技术条件,缺乏可行的译码算法,此后的 35 年间

基本上被人们忽略,其间由Tanner在 1981 年推广了LDPC码并给出了

LDPC码的图表示,即后来所称的Tanner图。1995 年前后MacKay和Neal

等人对LDPC码重新进行了研究,提出了可行的译码算法,从而进一步

发现了LDPC码所具有的良好性能,迅速引起强烈反响和极大关注。

LDPC码(低密度奇偶校验码)本质上是一种线形分组码,它通过

一个生成矩阵G将信息序列映射成发送序列,也就是码字序列。对于

生成矩阵G,完全等效地存在一个奇偶校验矩阵H,所有的码字序列C

构成了H的零空间 (null space),即HCT=0。LDPC码的奇偶校验矩

阵H是一个稀疏矩阵,相对于行与列的长度,校验矩阵每行、列中非

零元素的数目(我们习惯称作行重、列重)非常小,这也是LDPC码之所

以称为低密度码的原因。由于校验矩阵H的稀疏性以及构造时所使用

的不同规则,使得不同LDPC码的编码二分图(Taner图)具有不同的闭

合环路分布。而二分图中闭合环路是影响LDPC码性能的重要因素,它

使得LDPC码在类似可信度传播(Belief ProPagation)算法的一类迭

代译码算法下,表现出完全不同的译码性能。

当H 的行重和列重保持不变或尽可能的保持均匀时,我们称这样

的LDPC码为正则LDPC码,反之如果列、行重变化差异较大时,称为

非正则的LDPC码。根据校验矩阵H中的元素是属于GF(2)还是

GF(q)(q=2p),我们还可以将LDPC码分为二元域或多元域的LDPC码。

二、LDPC译码算法

2.1、Gallager概率译码算法

Gallager当初为了介绍LDPC码,同时还提出了一种迭代的概率译

码算法,Gallager概率译码算法,后来在此基础上又发展出了置信度

传播译码算法(BPA,也称SPA或者MPA)。

假设一个二进制序列是一个LDPC码字,那么这n个比特就要满足

由该码字的校验矩阵所确定的一系列的校验方程。并且,包含某一比

特 C 的校验方程可能不止一个,这些校验方程中的其他比特又可能包 i

含在其他更多的校验方程中。为了直观的表示这种关系,Gallager引

入了校验集合树的概念。图 2.1 所示为某一比特的校验集合树。

(1,1) (1,2) (1,3) (2,1) (2,2) (2,3) (3,1) (3,2) (3,3)

d

图 2.1 校验集合树

根节点表示比特d,和d相连的每一条边表示包含d的一个校验方

程,在图 2.1 中,d包含在 3 个校验方程中;第一层中的每一线段上

的节点表示这一校验方程中除d以外的其他比特,因此包含d的 3 个校

验方程分别是:

C

C

C

d

d

d  C

 C

 C

1,1

2,1

3,1  C

 C

 C

1,2

2,2

3,2  C

 C

 C

1,3

2,3

3,3  0

 0

 0

校验方程中的加法是模 2 加。C 即为比特d的数值,C 即为比特 d 1,1

(1,1)的数值。

与第一层各节点相连接的每条边同样表示包含该比特的一个校

验方程,第二层中的每一线段上的节点同样表示该校验方程中除第一

层比特以外的其他比特。以比特(2,2)为例,和比特(2,2)相连接

的边有 3 条,其中一条与本层节点(2,1),(2,3),及根节点d相连,

另外两条与第二层中节点u,v,w和x,y,z相连。因此包含比特(2,2)的 3

个校验方程分别为:

C

2,2  C

2,1  C

2,3  C

d  0

C

C

2,2

2,2  C

 C

u

x  C

 C

v

y  C

 C

w

z  0

 0

第三层(图中未画出)及以后的各层依此类推,每个比特都有相

应的以该比特为根节点的校验集合树。

假设信道是无记忆信道, y

i 仅与 c

i 及信道噪声有关,考虑根

节点 d 和第一层节点组成的集合,这些比特组成了包含比特 d 的

j1(12P)P  i  1 1   (1  2 P )

l  1

j 个校验方程,每个校验方程由 k 个比特组成(包含比特 d ),显

然发送的这些比特满足这 j 个校验方程。因此假设当发送的码字是

c  ( c , c , L , c 0 1

n  1 ) 时,那么在以上情况下接收到的符号即

为 y  ( y , y , L , y 0 1

n  1 ) 。

这样在传送码字 c 时,码字中的各比特满足包含比特 d 的 j

个校验方程。当接收到相应的符号序列 y 时,比特 d 为 1 的条件

概率可以表示为 P ( c

d  1 | y , c ) 。同理,比特d 为 0 的条件

概率表示为 P ( c

d  0 | y , c ) 。又令当不考虑发送比特间的相

关性时, d 为 1 的概率表示为 P ( c

有关。

d  1 | y ) ,它与信道模型

令 P

d  P ( c

d  1 | y ) , P

il 表示 d 的校验集合树第一

层中包含 d 的第 i 个校验方程的第 l 个比特为 1 的概率,那么有:

P [ c

P [ c

d

d  0 | y , c ] 1  P il  l  1  1 | y , c ] k  1 d k  1

il

(2.1 )

P

il 根据式 2.1,只要知道了图 2.1 的第一层中各比特为 1 的概率

,就可以算出比特 d 的条件概率。在其他根节点的校验树里比

特 d 又作为一个节点参与到根节点的概率计算中去,即比特 d 从

与其有关的节点中获取信息计算出概率,再将其计算出的概率信息传

出用于计算其他的节点 c ,由于在计算其他节点 c 时同样会用到 i i

计算比特 d 时所用过的运算,所以可以通过共享计算的中间结果而

使计算量大为降低,进而发展出了BPA(也称SPA或MPA)。