LDPC码简介【定义、特点、算法、Tanner】
LDPC码简介
低密度校验码(LDPC码)是一种前向纠错码,LDPC码最早在20世纪60年代由Gallager在他的博士论文中提出,但限于当时的技术条件,缺乏可行的译码算法,此后的35年间基本上被人们忽略,其间由Tanner在1981年推广了LDPC码并给出了LDPC码的图表示,即后来所称的Tanner图。1993年Berrou等人发现了Turbo码,在此基础上,1995年前后MacKay和Neal等人对LDPC码重新进行了研究,提出了可行的译码算法,从而进一步发现了LDPC码所具有的良好性能,迅速引起强烈反响和极大关注。经过十几年来的研究和发展,研究人员在各方面都取得了突破性的进展,LDPC码的相关技术也日趋成熟,甚至已经开始有了商业化的应用成果,并进入了无线通信等相关领域的标准。
LDPC码的特点
LDPC码是一种分组码,其校验矩阵只含有很少量非零元素。正是校验矩阵的这种稀疏性,保证了译码复杂度和最小码距都只随码长呈现线性增加。除了校验矩阵是稀疏矩阵外,码本身与任何其它的分组码并无二致。其实如果现有的分组码可以被稀疏矩阵所表达,那么用于码的迭代译码算法也可以成功的移植到它身上。然而,一般来说,为现有的分组码找到一个稀疏矩阵并不实际。不同的是,码的设计是以构造一个校验矩阵开始的,然后才通过它确定一个生成矩阵进行后续编码。而LDPC的编码就是本文所要讨论的主体内容。对于LDPC码而言,校验矩阵的选取十分关键,不仅影响LDPC码的纠错性能力,也影响LDPC编译码的复杂度及硬件实现的复杂度。准循环 LDPC 码(Quasi-Cycle,QC-LDPC)是 LDPC 码中重要的一类,是指一个码字以右移或左移固定位数的符号位得到的仍是一个码字。QC-LDPC 码的校验矩阵是由循环子矩阵的阵列组成,相对于其他类型的 LDPC 码,在编码和解码的硬件实现上具有许多优点。编码可以通过反馈移位寄存器有效实现,采用串行算法,编码的复杂度与校验比特位数成正比,而采用并行算法,编码复杂度与码字长度成正比。对硬件解码实现,准循环的结构简化了消息传递的路径,可以部分并行解码,实现了解码复杂度和速率的折中。这些优点,使得 QC-LDPC 码作为未来通信和存储系统应用的主要 LDPC 码。译码算法的选择
译码方法是LDPC码与经典的分组码之间的最大区别。经典的分组码一般是用ML类的译码算法进行译码的,所以它们一般码长较小,并通过代数设计以减低译码工作的复杂度。但是LDPC码码长较长,并通过其校验矩阵H的图像表达而进行迭代译码,所以它的设计以校验矩阵的特性为核心考虑之一。由于 LDPC 码校验矩阵的稀疏性,其译码复杂度与码长不是指数关系,而是线性关系,因而 LDPC 码的码长可以很长,可以达到几千到几万甚至更高,这样带来的一个好处是:一个码字内各比特之间的关联长度比较长,一般通过迭代译码方法进行译码,充分利用码字内各比特的关联性以提高译码准确度,并且还充分利用了信道的特征。本课题采用的译码算法为置信传播(BP)译码算法,置信传播算法是基于 Tanner 图的迭代译码算法。在迭代过程中,可靠性信息,即“消息”通过 Tanner图上的边在变量节点和校验节点中来回传递,经多次迭代后趋于稳定值,然后据此进行最佳判决,BP译码算法有着非常好译码性能。Tanner图
LDPC码常常通过图来表示,而Tanner图所表示的其实是LDPC码的校验矩阵。Tanner图包含两类顶点:n个码字比特顶点(称为比特节点),分别与校验矩阵的各列相对应和m个校验方程顶点(称为校验节点),分别与校验矩阵的各行对应。校验矩阵的每行代表一个校验方程,每列代表一个码字比特。所以,如果一个码字比特包含在相应的校验方程中,那么就用一条连线将所涉及的比特节点和校验节点连起来,所以Tanner图中的连线数与校验矩阵中的1的个数相同。以下图是矩阵的Tanner图,其中比特节点用圆形节点表示,校验节点用方形节点表示,加黑线显示的是一个6循环:
Tanner图中的循环是由图中的一群相互连接在一起的顶点所组成的,循环以这群顶点中的一个同时作为起点和终点,且只经过每个顶点一次。循环的长度定义为它所包含的连线的数量,而图形的围长,也可叫做图形的尺寸,定义为图中最小的循环长度。如上图中,图形的尺寸,即围长为6,如加黑线所示。
LDPC编码
- 基于校验矩阵H直接编码方案
首先推导出根据校验矩阵直接编码的等式。将尺寸为(m,n)校验矩阵写成如下形式:
H=[H1H2]H=[H1H2]H=[H1H2]H=[H1 H2]H=[H1 H2] H=[H_1 \ H_2]H=[H1 H2]H=[H1 H2]H=[H1 H2]Kij是校正因子,使每次计算出的
LDPC码简介【定义、特点、算法、Tanner】相关推荐
- LDPC码简介(一)
目录 一.LDPC码背景 二.LDPC码的定义 三.LDPC码的分类 一.LDPC码背景 低密度奇偶校验码(LDPC)是一种高效的前向信道纠错码,也是一种线性分组码.它最早由麻省理工学院的Gall ...
- 通信算法之三:LDPC码的研究
<源自:http://www.chinadata.com.cn/jishujcshow.asp?id=1159 > LDPC码的研究现状与发展动态 1 引言 自从Shannon提出信道 ...
- LDPC码的EXIT图
LDPC码简介 LDPC码是一种线性分组码,具有硬件可实现的译码器,并在很多数据传输和数据存储上都表现出逼近信道容量的性能. LDPC码用校验矩阵或Tanner图表示. LDPC码的Tanner 图类 ...
- 基于Matlab的LDPC码性能研究毕业设计(含源文件)
欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 本科毕业设计(论文) 题 目 LDPC码性能研究 摘 要 信道编码是数字通信系统的 ...
- C语言实现LDPC的校验矩阵,LDPC码及其译码实现….doc
LDPC码及其译码实现 LDPC码简介 LDPC码最早在20世纪60年代由Gallager在他的博士论文中提出,但限于当时的技术条件,缺乏可行的译码算法,此后的35年间基本上被人们忽略,其间由Tann ...
- 5G NR LDPC码(1)—— LDPC码设计原理
5G NR中规定了控制消息和广播信道用Polar码,数据传输用LDPC码的方案. LDPC属于线性分组码,常用校验矩阵或者Tanner图来描述. 用校验矩阵来描述LDPC码,可以清晰的看到信息比特和校 ...
- LDPC码的编译码原理简述
关于fpga调用ldpc IP core的相关参数问题可以看我的另一篇文章 LDPC码由Gallager在1962年提出,全称为 Low Density Parity-check Codes 低密度奇 ...
- 二进制LDPC码的构造及译码算法
构造好的LDPC码校验矩阵和设计性能优异的译码算法是LDPC码研究领域的重点. 常见的LDPC码一般分为两类,一类是随机LDPC码,一般由随机化方法构造:另一类是准循环LDPC码,一般由 ...
- LDPC码Gallager论文解读
本文主要是解读Gallager关于LDPC码的论文<Low-Density Parity-Check Codes>,也记录了一些论文里不包含但是很重要的相关资料. 最近研究点涉及到LDPC ...
最新文章
- Ubuntu 14.04 64位升级搜狗拼音输入法linux版本
- 线上接口经常超时,我用线程池+ FutureTask解决了,YYDS
- linux expect日期加减,如何“输出”出命令“日期”? (linux/expect/sftp)
- 跟vczh看实例学编译原理——二:实现Tinymoe的词法分析
- 怎么安装python_零基础入门必看篇:浅析python,PyCharm,Anaconda三者之间关系
- 纪念互联网第一本众筹电子书Mycat权威指南获得成功
- 修改 IIS 队列长度
- python求极值(极大值、极小值)
- sklear中IsolationForest的使用场景
- VC++ 求绝对值函数
- 这么狠,私塾在线架构师系列课程全都免费发放
- Scrapy: 爬虫返回403错误
- Spring事务管理A方法内部调用B方法的回滚问题(springboot事务管理)
- 石河子大学计算机专业录取分数线,石河子大学2020年录取分数线(附2017-2020年分数线)...
- 如何做投资--入门篇
- 【脑洞大开】从哲学角度看人工智能:介绍徐英瑾的《心智、语言和机器》
- 解决:严重: Compilation error org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
- 挂载NTFS分区的两种方法
- IOS13破解屏幕使用时间,无需电脑,不丢数据
- 初学者:java练习题———含答案-------类与对象(2)