初识LDPC编译码

初识LDPC编译码

引言

LDPC是Low Density Parity Check Code英文缩写,意为低密度奇偶校验码,最早在20世纪60年代由 Gallager在他的博士论文中提出,但限于当时的技术条件,缺乏可行的译码算法,此后的35年间基本上被人们忽略。直到1993年Berrou等人发现了Turbo码,在此基础上,1995年前后MacKay和Neal等人对LDPC码重新进行了研究,提出了可行的译码算法,从而进一步发现了LDPC码所具有的良好性能,迅速引起强烈反响和极大关注。经过十几年来的研究和发展,研究人员在各方面都取得了突破性的进展,LDPC码的相关技术也日趋成熟,逐渐有了商业化的应用成果,如今LDPC码已经作为众多新一代通信标准中的信道编码方案:DVB-S2 (Digital Video Broadcasting)、IEEE 802.3an (Ethernet)、IEEE802.16e (WiMax)、IEEE 802.11n (WiFi)、3GPP 5G标准。

奇偶校验码

在了解奇偶校验码之前,先了解什么是信道编码,对整个信息传输有个大致、框图的了解,这样就能比较清晰的知道LDPC码在其中扮演的作用。

img

有了信道编码的相关知识就可以知道,信息传输的过程难免会出现错误,这里发生错误一般分为两种情况:

①比特翻转错误:举个例子,传输的序列(信息位)为 [ 0 1 0 1 1 ] ,接收端的序列变成[ 0 1 1 1 1],可以发现正确序列中的第三个位置上的信息 0 变成了 1 ,同理,在信息的传输过程中也有可能发生 1 变成 0 的情况。

②擦除错误:举个例子,传输的序列为 [ 0 1 0 1 1 ] ,接收端的序列变成[ 0 1 1 1],可以发现正确序列中的第三个信息 0 变成了 ?,这就表示第三个位置上的信息 0 经过噪声等干扰之后, 不清楚这个位置上的信息变成了啥。

类比于生活中,如果 A 听 B 讲话,A 没听清楚 B 讲的啥,那么 A 就会让 B 重新再讲一遍,还没听清楚,那么就再讲一遍,知道讲清楚为止。 这就是简单的重复,来保证信息的正确性。同理,在信息的传输的过程中也会用到”重复“的思想,叫做重复码,为方便理解,后续信道中出现的错误均为擦除错误:

重复码:举个例子,传输的序列为 [ 0 1 0 1 1 ],进行重复码编码之后的序列为 [0 1 0 1 1 0 1 0 1 1] ,增加的 0 1 0 1 1称之为保护位或校验位,进行信道传输过程中,出现了擦除错误,接收端收到的序列变为 [0 1 ? 1 1 0 1 0 ? 1],那么可以通过让校验位与信息位一一比对,来进行纠错,得到发送的信息。

0 1 ? 1 1

0 1 0 ? 1


0 1 0 1 1

[0 1 ? 1 1 0 1 0 ? 1] 进行纠错之后,就变成了 [0 1 0 1 1 0 1 0 1 1]

用重复码进行编码的话,会出现两个问题:

①码率低:若重复一次,码率 R = 50%,若重复两次,R = 33.33% 。这样就会导致传输效率很低。

②一个校验位只保护一个信息位:举个例子,传输的序列为 [ 0 1 0 1 1 ],进行重复码编码之后的序列为 [0 1 0 1 1 0 1 0 1 1],经过信道之后,接收端收到的序列为 [? 1 0 1 1 ? 1 0 1 1] ,这样就无法实现纠错译码的可能。

为提高传输效率,这时候就考虑用一个校验位保护一个信息块(包含多个信息序列),这样码率就提升上去了。

举个例子,若传输的序列为 [ 1 0 0 0 1 1] ,添加奇偶校验位之后,变成 [ 1 0 0 0 1 1 1] ,最后一个数字1,即校验位,保证整个序列中1的个数为偶数(包括自己)

在这里插入图片描述

假设,经过信道传输之后,序列变成 [1 0 0 0 ? 1 1 ],此时 1 的个数为 3,但是最后一位是校验位 1 ,那么序列中应该存在 4 个 1 ,即纠错之后的序列为 [1 0 0 0 1 1 1 ]

但是,这又会存在另一个问题,那就是假如经过信道传输之后,信息序列出现两个错误这时候就无法进行译码了。

举个例子,经过信道传输之后,序列变成 [1 0 0 0 ? ? 1 ],这时候奇偶校验位就无法判断?是0还是1了。

这时候就考虑,把信息序列分成不同的集合,而且包括多个校验位,利用级联效应进行纠错。

举个例子
在这里插入图片描述

以上图为例,信息序列分成了黑、红、蓝三组,假如信息序列出现了擦除错误,变成了[ 1 ? 1 ? 1 0 1],如果只有一个奇偶校验位,就无法进行译码,如果有三个奇偶校验位就可以进行译码了。

①黑色组,存在两个擦除错误,靠一个奇偶校验位无法译码,换其他组

②红色组,奇偶校验位是0,说明红色组1的个数是偶数已经满足了,所以擦除错误之后的译码为0,这时候序列就变成了[ 1 ? 1 0 1 0 1]。

③黑色组,奇偶校验位是1,说明黑色组1的个数是偶数已经满足,结合②,可以进行译码,译码之后的码字变成[ 1 0 1 0 1 0 1]。

可以看出,出现两个以上的擦除错误的时候,并不是一下子将擦除错误纠正过来,然后一次一次地用迭代的方式进行译码,但是这样的缺点就是,每一步至少有一个擦除的集合才会起作用,否则就有可能失效。

在这期间十多年人们都在寻找正确的奇偶校验排布,但是对于长的信息、许多大的重叠(也叫密度)子集合太过复杂,一个集合中只有一个擦除错误的概率太小。

在这里插入图片描述

LDPC码:①较小的奇偶校验集,这样一个集合中只有一个擦除的概率提高了,解码的速度也提高了(计算机中解决许多简单问题的时间小于解决一个复杂问题的时间)。②采用随机子集合排列的方式来构造奇偶校验位和信息之间的连接。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值