C语言实现LDPC的校验矩阵,LDPC码及其译码实现….doc

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。LPC码的奇偶校验矩阵H是一个稀疏矩阵,相对于行与列的长度,校验矩阵每行、列中非零元素的数目(我们习惯称作行重、列)非常小,这也是LDPC码之所以称为低密度码的原因。由于校验矩阵H的稀疏性以及构造时所使用的不同规则,使得不同LDPC码的编码二分图(Taner图)具有不同的闭合环路分布。而二分图中闭合环路是影响LDPC码性能的重要因素,它使得LDPC码在类似可信度传播(Belief ProPagation)算法的一类迭代译码算法下,表现出完全不同的译码性能。

当H的行重和列重保持不变或尽可能的保持均匀时,我们称这样的LDPC码为正则码,反之如果列、行重变化差异较大时,称为非正则的LDP码。根据校验矩阵H中的元素是属于GF(2)还是GF(q)(q=2p),我们还可以将LDPC码分二元域或多元域的LDPC码。

2.1、Gallager概率译码算法

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

你可能感兴趣的:(C语言实现LDPC的校验矩阵)