前言

前面简要的介绍了LDPC相关知识,下面会参照NPTEL详细介绍一下。

分为8章,每章半个小时内容。8天左右的内容


目录:

1:   define

2: Tanner

3: protograph construction


一 定义

1.1 定义

LDPC码最早在20世纪60年代由Gallager在他的博士论文中提出,但限于当时的技术条件,缺乏可行的译码算法,此后的35年间基本上被人们忽略,其间由Tanner在1981年推广了LDPC码并给出了LDPC码的图表示,即后来所称的Tanner图。1993年Berrou等人发现了Turbo码,在此基础上,1995年前后MacKay和Neal等人对LDPC码重新进行了研究,提出了可行的译码算法,从而进一步发现了LDPC码所具有的良好性能,迅速引起强烈反响和极大关注。经过十几年来的研究和发展,研究人员在各方面都取得了突破性的进展,LDPC码的相关技术也日趋成熟,甚至已经开始有了商业化的应用成果,并进入了无线通信等相关领域的标准。

LDPC码是通过校验矩阵定义的一类线性码,为使译码可行,在码长较长时需要校验矩阵满足“稀疏性”,即校验矩阵中1的密度比较低,也就是要求校验矩阵中1的个数远小于0的个数,并且码长越长,密度就要越低。

1.2  LDPC为什么要等到30多年后才被应用起来

1960 那个时代由于硬件的限制 ,LDPC 译码是一种并行计算的思想,没有办法去验证实现。 但是现在CPU,TPU,GPU技术快速发展,其实现已经非常简单了。很多技术比如离散傅里叶变换,教科书上面一直让我们使用的是FFT,IFFT, 如果放在TPU,GPU上面DFT会更有优势。

DFT(会远远比FFT()快,主要也是FFT 采用的是蝶形算法,放在TPU上面

可以充分利用GPU,TPU的张量运算的并行运算的优势,可以一步就完成。 但是FFT至少需要步。

1.3  码率

k: 原始的发送bit 数

N:   加过奇偶校验数后的bit 数

前面也介绍过了,纠错码和码率是一个冲突的问题,不仅要保证高码率也要保证纠错能力。

1.4    为什么要稀疏

这里面有大量的理论去证明这块,包括后面的Tanner图的路径规划。

这边简单的介绍一下便于理解

第一我们设计编码的时候必须要考虑码

  :为奇偶校验比特

: 为信息bit,最终就是需要正确解码出这些。

假设现在要解码,以BEC信道为例 

当其中任意一个SPC码,其中如果全部正确以及只有一个Erase的情况下

就能解码出,

根据二项分布(N=4,p=0.5) 这种概率为0.05+0.25= 0.3

无法解码的概率为0.7.如果两个全部解码出错的概率为 0.7*0.7=0.49

如果有15个这样的SPC码就能达到0.9953的正确概率了。

根据二项分布(N=20,p=0.5) 这种概率为0000010+0.0000191= 0.00003

前面提过,要保证码率,越多码率越低,所以列要保持稀疏。

# -*- coding: utf-8 -*-
"""
Created on Tue May 10 11:45:41 2022@author: chengxf2
"""
# -*- coding: utf-8 -*-
"""
Created on Sat May  7 12:00:44 2022@author: chengxf2
"""
from scipy.stats import binom
import numpy as np
import matplotlib.pyplot as plt'''
画出二项分布的图形
argsprob: 概率分布
'''
def drawProb(N,prob):p = 0.5info = 'probability {}  N {}'.format(p, N)plt.figure(figsize=(8,6), dpi=80)plt.subplot(1,1,1)N= len(prob)index = np.arange(N)width = 0.35plt.bar(index, prob, width, label =info,color="#87CEFA")plt.xlabel("k")plt.ylabel('probability')plt.title("binom")#plt.xticks(index)#plt.yticks()plt.legend(loc="upper right")plt.show()'''在n次独立重复的伯努利试验中,设每次试验中事件A发生的概率为p。用X表示n重伯努利试验中事件A发生的次数,则X的可能取值为0,1,…,n,且对每一个k(0≤k≤n),事件{X=k}即为“n次试验中事件A恰好发生k次,随机变量X的离散概率分布即为二项分布(Binomial Distribution)argsn : n次试验p: 单次实验中事件A发送的概率'''
def calc(n, p=0.5):prob =[]for  k in range(n+1):p_k= binom(n,p).pmf(k) #计算成功次数为i的概率prob.append(p_k)print("\n k: %d   概率:%8.7f "%(k,p_k))return prob
N=20
prob = calc(N,0.5)
drawProb(N,prob)  

二  Tanner 图

Tanner. RM , A recusrive approach to low complexity codes.

IEEE Tans.on Info Theory ,1981 ,27, 533-547

前面已经讲过Tanner 图怎么表示奇偶校验校验矩阵的,以及如何解码的。

图的左边圆圈     bit nodes,      对应奇偶校验矩阵H 中的列

图的右边方块    check nodes,对应奇偶校验矩阵H 中的行

Degree 代表本行或者本列中1的个数和


三  Protograph  Constructions

LDPC 奇偶校验矩阵通常都非常大,在很多标准里面都通过Protograph Constructions

去表示Tanner 图或者 H。

方法也很简单:

第一步按照 Expansion factor 生成一个单位矩阵I,比如上图的5

第二步按照 B矩阵,逐元素做  Expanded by right shift permutation matrices

比如第一行第一列元素

把单位矩阵向右循环1次,生成一个新的5*5矩阵,替代原来元素

就用一个全0 的矩阵替代

,  把单位矩阵向右循环3次,生成一个新的5*5矩阵,替代原来元素

其它的元素也是如此一次循环移位后,替代原来元素

NR 5G 中最大的Expansion 为384

4.1 Protograph  constructing

base graphs  for different rates

Expanded by right shift permutation matrices

optimised for performance vs complexity

NR

two base graphs

several expansions

shorteing and puncturing for multiple rates

it turns out the LDPC in standards are almost always Protograph Constructions.
so this is not the photograph in the sense of taking picture, this is protograph.
so what is a protograph, protograph is sort like an example graph which you repeat 
to make bigger graph.
     so the way they would define a protograph is as follows , so protograph construction
is basically a way of constructing your parity check matrix ,remember the parity check matrix
is usually big binary matrix right ,so 1000 by 2000 or some such matrix ,how do you specify
that , how do you specify whreas the ones are right ,how do you specify the Tanner graph.
  so for that the standards always use this protograph construction , there a lot of theoretical
reasons for why protograph constructions are very good, but let us just look at how they 
defined and how they sepcified.

NR LDPC 04 -definition, Tanner and Protograph Constructions相关推荐

  1. 5G NR LDPC码(2)—— 5G NR中的LDPC码标准化内容

    LDPC码由于可以达到更高的译码吞吐量和更低的译码时延,可以更好适应高数据速率业务的传输,从而替代LTE的Turbo码,被采纳为5G NR数据的编码方案. 1. 基图 (BG, Base Graph) ...

  2. 5G NR LDPC码(1)—— LDPC码设计原理

    5G NR中规定了控制消息和广播信道用Polar码,数据传输用LDPC码的方案. LDPC属于线性分组码,常用校验矩阵或者Tanner图来描述. 用校验矩阵来描述LDPC码,可以清晰的看到信息比特和校 ...

  3. NR LDPC 03- Tanner

    前言: 1963年,Gallager(麻省理工罗伯特·加拉格尔院士)在其博士论文中提出了LDPC码 1982年 Tanner 使用图来表示LDPC码,推广了LDPC码 LDPC属于线性分组码,常用校验 ...

  4. 5G NR LDPC编译码汇总

    1.LDPC概述 低密度校验码(LDPC码)是一种前向纠错码,LDPC码最早在20世纪60年代由Gallager在他的博士论文中提出,但限于当时的技术条件,缺乏可行的译码算法,此后的35年间基本上被人 ...

  5. 通信算法之四十:5G NR LDPC编码译码性能仿真

    1.码率1/5,增益14dB 2.码率1/12,增益17.8dB [ 相应MATLAB仿真代码.咨询qq:1279682290 ]

  6. 基于Matlab的LDPC码性能研究毕业设计(含源文件)

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 本科毕业设计(论文) 题 目    LDPC码性能研究 摘 要     信道编码是数字通信系统的 ...

  7. LDPC码的EXIT图

    LDPC码简介 LDPC码是一种线性分组码,具有硬件可实现的译码器,并在很多数据传输和数据存储上都表现出逼近信道容量的性能. LDPC码用校验矩阵或Tanner图表示. LDPC码的Tanner 图类 ...

  8. 初学者LDPC码扫盲

    LDPC码 关于LDPC码 信道编码 奇偶校验 优点 缺点 奇偶校验的改进 优点 缺点 小结 进一步的改进 开始编码 后记 关于LDPC码 关于LDPC码的介绍非常的多,有关的期刊和论文数不胜数,但是 ...

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

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

最新文章

  1. 从此以后,江湖有了它的传说!
  2. cuda 0 not supported xla
  3. GIS算法基础(四)平面坐标变换(变换矩阵算法实现)
  4. BA(free scale) network 小结
  5. BOOST_PREDEF_WORKAROUND宏相关的测试程序
  6. 机加工程序工时程序_准终工时、人工工时、机器工时,十个工程师九个会弄错...
  7. swift网络编程入门应用:天气预报
  8. flask json传输失败_GO小知识之实例演示 json 如何转化为 map 和 struct
  9. Android ScrollView 使用总结
  10. html如何调用function,请问HTML function函数怎么定义和调用?
  11. VS生成的C++项目常用目录设置
  12. 微信小程序查询数据库
  13. 磁记录材料和计算机0101,信息磁性功能材料
  14. mysql password_expired
  15. 线性代数学习笔记——第四十讲——n维向量空间的概念
  16. 雪碧图PHP,如何在小程序中使用雪碧图
  17. Linux系统下安装screen
  18. 蚁群算法(ACO)求解路径规划
  19. werfault.exe出现的原因与解决办法
  20. C++ 标准库之typeid

热门文章

  1. java中限制只能为正数_vue 限制input只能输入正数的操作
  2. WebMatrix之WebMatrix.Data
  3. webrtc发包和码率调整
  4. ESP8266获取网络时钟、天气
  5. python如何解决打不开txt文件的问题(UnicodeDecodeError)
  6. 新技术到底靠不靠谱?在中国用一下就知道了
  7. GoldenDict使用说明
  8. 暗黑破坏神练Key方法详解
  9. stm32 w5500以太网模块使用
  10. 福禄克Fluke DSX-8000 CableAnalyzer线缆分析仪介绍