引言

       LDPC编码中文全称叫做低密度奇偶校验码,是众多信道纠错编码中的一种。在系统的信息传输速率小于信道容量时,LDPC编译码技术可以在较高传输速率下将有噪信道下的突发错误尽可能无限减小,从而将系统的传输容量可以无限地逼近香农容限。由于 LDPC码校验矩阵的稀疏性使得相应编码及迭代译码算法复杂度降低,硬件实现较容易,具有很好的应用前景,在业界广受欢迎。本文将从LDPC编译码基本工作流程,校验矩阵的构造方法,硬判决译码方法,置信传播软判决译码方法等四个方面展开介绍。

1、LDPC编译码基本工作流程

LDPC码作为线性分组码中的一种,其发送码字是由信息码元和监督码元组成的,在接收端利用监督码元与信息码元之间的规律来进行纠错和译码,如下图所示。

其中,发送码字是由信息码字与生成矩阵相乘得到的,生成矩阵可由校验矩阵经过变换而得来,因此,整个LDPC编码过程其实就是一个校验矩阵的构造过程,如下图所示。

2、校验矩阵的构造方法

(1)Gallager 随机构造法

Gallager 随机构造法是使用确定的固定行重和列重(每行或每列所含 1 的个数)的稀疏矩阵进行随机置换和组合来构造 LDPC 码的校验矩阵。假若要使用 Gallager 随机构造法构造 维,且行重和列重分别为 的校验矩阵 H,此时行重和列重应尽可能小以保证校验矩阵的稀疏性,降低 LDPC 码编码及迭代译码复杂度。将校验矩阵 H 的行数平分成每 行为一块,列数为。在第一块子矩阵的构造中只有第 i 行列到列的连续 个元素为 1,其余位置上元素取 0 即完成了校验矩阵的基础子矩阵,之后将基础子矩阵按列随机置换得到其余部分矩阵并组合成最终的校验矩阵 H。

(2)准循环构造法

准循环构造法使用一组循环矩阵构造 LDPC 码的校验矩阵,一般选用单位阵为准循环 LDPC(QC-LDPC)码基矩阵。将基矩阵向左循环移位形成循环置换单位子矩阵,然后各子矩阵构成最终的校验矩阵。

得到校验矩阵后就可根据1中所提及的方法得到生成矩阵,然后生成发送码字。

3、硬判决译码方法

       LDPC 迭代译码过程即是通过校验码元和信息码元之间的校验规律在变量节点与校验节点之间不停进行消息迭代直至找到满足 的码字,输出 C 即为解码后的码字。 当在校验节点及变量节点之间传递的是 0,1 的硬解调信息时称作硬判决译码。

假设我们的校验矩阵构造如下图矩阵H,其Tanner图也如下图所示。

假设经过编码后发送的码字 C=[ 1 0 0 1 0 1 0 1],经过噪声污染接受码字为 Y=[ 1 1 0 1 0 1 0 1],整个译码过程简述如下:

(1)变量节点向校验节点传递消息:变量节点收到信息Y后认定C1,C2,C3,C4,C5,C6,C7,C8分别为1 1 0 1 0 1 0 1,然后变量节点根据Tanner图分别将值传给与之相连的校验节点,如 C1传递给 f2和 f4“C1=1”,C2传递给 f1和 f2“C2=1”。

(2)校验节点向变量节点传递消息:校验节点在上一轮接收到变量节点传递给它的信息,它综合信息根据校验规律对这些信息做出判断来确定C1,C2,C3,C4,C5,C6,C7,C8 的值。如要确定C2的值,就需要根据f1和f2在上一轮接收到的消息来进行判断,由f1=C2+C4+C5+C8=0及接收到的C2=1,C4=1,C5=0,C8=1,对C2做出判断就需要依据C4,C5,C8传递来的信息,然后可以确定C2=0,然后将C2=0传递给f2节点,由f2=C1+C2+C3+C6=0及接收到的C1=1,C3=0,C6=1,可知C2=0,最终根据多数意见可以取C2=0。

(3)对新码字验证 是否满足,若满足输出 C,上述新码字经过验证即为纠正后的码字,若不满足则重复上述迭代过程直到满足(或者达到最大迭代次数输出错误)。

4、置信传播软判决译码

      当校验节点及变量节点之间传递的是似然概率软解调信息时称作置信传播译码(或者软判决译码),LDPC 码译码一般用置信传播算法,算法复杂度相对较低。 软判决译码流程介绍如下图所示。

变量定义:

基本定理:

译码过程:

5、参考文献

[1] 周佳颖. 基于LDPC技术轨道角动量光通信的仿真研究[D]. 华中科技大学. 2015.

[2] https://wenku.baidu.com/view/da81feb2b6360b4c2e3f5727a5e9856a57122670.html

LDPC编译码原理介绍相关推荐

  1. ldpc译码讲解_LDPC码编译码原理及应用

    LDPC 码编译码原理及应用 下一代移动通信系统的设计能力将远远超过当前的第三代移动通信系统的 能力 , 其中一个最重要的特点表现在需要在 20M 赫兹的带宽内 , 实现高达 100Mbps 的数据传 ...

  2. LDPC码的编译码原理简述

    关于fpga调用ldpc IP core的相关参数问题可以看我的另一篇文章 LDPC码由Gallager在1962年提出,全称为 Low Density Parity-check Codes 低密度奇 ...

  3. ccsds ldpc matlab,CCSDS标准的LDPC编译码仿真

    文档采用MATLAB发布,仿真没有跑完. CCSDS标准的LDPC编译码仿真 本脚本完成了CCSDS标准(o1)版本中适用于深空通信任务的LDPC编译码过程的仿真, 同时给出了在信息位长度为1024, ...

  4. 基于matlab的LDPC编译码误码率仿真,调制方式为64QAM

    目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 "LDPC编译码 低密度校验码(LDPC码)是一种前向纠错码,LDPC码最早在20世纪60年代由Gallager在他 ...

  5. SSD ECC中的LDPC编解码原理

    转自:http://blog.csdn.net/zhuzongpeng/article/details/78899198 目前SSD中ECC纠错代码主要两种BCH和LDPC.不过,随着SSD对ECC纠 ...

  6. IEEE802.16e 协议中LDPC编解码原理说明

    信道编码 ​ 信号传输过程中,考虑到稳定性的需要,发送端可以对信息进行编码.目前在数据传输中,主要有三种误码控制的方法,即自动请求重发(ARQ).前向纠错(FEC)和混合纠错(HEC)方式. ​ 在传 ...

  7. ITU-T H.264/MPEG-4 AVC编解码原理介绍

    本文档适合基本了解数字图像处理的初学者,仅用于研究交流,由于资料来源较多,只能尽量在相关章节注明出处. 转载本文请注明出处http://blog.csdn.net/chinadragon76/arti ...

  8. G.726音频编解码原理介绍

    一.PCM 脉冲编码调制(Pulse-code modulation,PCM)是一种模拟信号的数码化方法.PCM将信号的强度依照同样的间距分成数段,然后用独特的数码记号(通常是二进制)来量化.PCM常 ...

  9. 基于MATLAB的LDPC编译码误码率仿真,仿真调制为64QAM,对比不同译码迭代次数

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 LDPC码是麻省理工学院Robert Gallager于1963年在博士论文中提出的一种具有稀疏校验 ...

最新文章

  1. CSS3学习手记(1) 选择器
  2. 分布式数据库解决方案Apache ShardingSphere毕业成为顶级项目
  3. SpringBoot学习笔记(一)整合Mybatis
  4. Laravel_post访问【419】问题解决方法
  5. haproxy 作为反向代理被攻击
  6. mysql启动和关闭外键约束的方法(FOREIGN_KEY_CHECKS)
  7. python读取Excel工作簿、工作表
  8. 一叶知秋:基于“单目标域样本”的领域自适应方法
  9. python的变量名可以是中文吗_Python中用中文变量名、函数名,会影响性能吗?
  10. 修复Winsock(转)
  11. Linux C编程Makefile编写初步-转
  12. DB2中修改表字段类型或者长度
  13. 【计算机网络】实验报告三:Cisco Packet Tracer 实验
  14. 分析方法选讲期末复习脉络图---完结版
  15. 程序员的思维模型指南
  16. Java基础加强重温_06:可变参数、集合工具类Collections类、冒泡排序、Map集合、Map集合遍历、Map案例、LinkedHashMap集合、图书管理系统
  17. 资管过程日报指标异常分析
  18. 《精进》(采铜)——读书笔记
  19. iOS开发 --- AlipaySDK接入(version:15.6.4 motify:2019.06.11)
  20. 用ado把excel数据写入oracle,如何将excel表格数据导入到oracle数据库对应的表中?!oracle导出excel文件...

热门文章

  1. RDD简介,spark-shell,spark-submit提交任务简单示例
  2. python请输入星期几的第一个字母来判断_【Python 实例】面向对象 | 请输入一周中某天的名称的第一个字母来判断以下是星期几,如果第一个字母一样则继续判断第二个字母...
  3. python大写数字转阿拉伯数字脚本
  4. Struts2 ognl判断集合对象是否为空的方法
  5. 计算机用户被锁定如何解除,计算机被锁定怎样解除?用户受限又怎样解除?
  6. pythonGUI之wxpython控件总结
  7. iOS---学习研究大牛Git高星项目YYCategories(四)
  8. 绝地求生登录计算机需要授权,绝地求生计算机授权收不到怎么办 | 手游网游页游攻略大全...
  9. 领卓教育:QT图片转换器
  10. 《圈外课程学习记录》3.2 数据化强力说服