LDPC码及其译码实现.docx
- 文档编号:2322725
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:19
- 大小:21.18KB
LDPC码及其译码实现.docx
《LDPC码及其译码实现.docx》由会员分享,可在线阅读,更多相关《LDPC码及其译码实现.docx(19页珍藏版)》请在冰豆网上搜索。
LDPC码及其译码实现
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。
LDPC码的奇偶校验矩
阵H是一个稀疏矩阵,相对于行与列的长度,校验矩阵每行、列中非
零元素的数目(我们习惯称作行重、列重)非常小,这也是LDPC码之所
以称为低密度码的原因。
由于校验矩阵H的稀疏性以及构造时所使用
的不同规则,使得不同LDPC码的编码二分图(Taner图)具有不同的闭
合环路分布。
而二分图中闭合环路是影响LDPC码性能的重要因素,它
使得LDPC码在类似可信度传播(Belief ProPagation)算法的一类迭
代译码算法下,表现出完全不同的译码性能。
当H 的行重和列重保持不变或尽可能的保持均匀时,我们称这样
的LDPC码为正则LDPC码,反之如果列、行重变化差异较大时,称为
非正则的LDPC码。
根据校验矩阵H中的元素是属于GF
(2)还是
GF(q)(q=2p),我们还可以将LDPC码分为二元域或多元域的LDPC码。
二、LDPC译码算法
2.1、Gallager概率译码算法
Gallager当初为了介绍LDPC码,同时还提出了一种迭代的概率译
码算法,Gallager概率译码算法,后来在此基础上又发展出了置信度
传播译码算法(BPA,也称SPA或者MPA)。
假设一个二进制序列是一个LDPC码字,那么这n个比特就要满足
由该码字的校验矩阵所确定的一系列的校验方程。
并且,包含某一比
特 C 的校验方程可能不止一个,这些校验方程中的其他比特又可能包
i
含在其他更多的校验方程中。
为了直观的表示这种关系,Gallager引
入了校验集合树的概念。
图 2.1 所示为某一比特的校验集合树。
(1,1)(1,2)(1,3)(2,1)(2,2)(2,3)(3,1)(3,2)(3,3)
d
图 2.1校验集合树
根节点表示比特d,和d相连的每一条边表示包含d的一个校验方
程,在图 2.1 中,d包含在 3 个校验方程中;第一层中的每一线段上
的节点表示这一校验方程中除d以外的其他比特,因此包含d的 3 个校
验方程分别是:
C
C
C
d
d
d
+ C
+ C
+ C
1,1
2,1
3,1
+ C
+ C
+ C
1,2
2,2
3,2
+ C
+ C
+ C
1,3
2,3
3,3
= 0
= 0
= 0
校验方程中的加法是模 2 加。
C 即为比特d的数值,C 即为比特
d1,1
(1,1)的数值。
与第一层各节点相连接的每条边同样表示包含该比特的一个校
验方程,第二层中的每一线段上的节点同样表示该校验方程中除第一
层比特以外的其他比特。
以比特(2,2)为例,和比特(2,2)相连接
的边有 3 条,其中一条与本层节点(2,1),(2,3),及根节点d相连,
另外两条与第二层中节点u,v,w和x,y,z相连。
因此包含比特(2,2)的 3
个校验方程分别为:
C
2,2
+ C
2,1
+ C
2,3
+ C
d
= 0
C
C
2,2
2,2
+ C
+ C
u
x
+ C
+ C
v
y
+ C
+ C
w
z
= 0
= 0
第三层(图中未画出)及以后的各层依此类推,每个比特都有相
应的以该比特为根节点的校验集合树。
假设信道是无记忆信道, y
i
仅与 c
i
及信道噪声有关,考虑根
节点 d 和第一层节点组成的集合,这些比特组成了包含比特 d 的
j 个校验方程,每个校验方程由 k 个比特组成(包含比特 d ),显
然发送的这些比特满足这 j 个校验方程。
因此假设当发送的码字是
c = ( c, c , L, c
01
n - 1
) 时,那么在以上情况下接收到的符号即
为 y = ( y, y , L, y
01
n - 1
) 。
这样在传送码字 c 时,码字中的各比特满足包含比特 d 的 j
个校验方程。
当接收到相应的符号序列 y时,比特 d 为 1 的条件
概率可以表示为 P ( c
d
= 1 | y , c ) 。
同理,比特d 为 0 的条件
概率表示为 P ( c
d
= 0 | y , c ) 。
又令当不考虑发送比特间的相
关性时, d 为 1 的概率表示为 P ( c
有关。
d
= 1 | y ) ,它与信道模型
令 P
d
= P ( c
d
= 1 | y ) , P
il
表示 d 的校验集合树第一
层中包含 d 的第 i 个校验方程的第 l 个比特为 1 的概率,那么有:
P [ c
P [ c
d
d
= 0 | y , c ] 1 - P il
= l = 1
= 1 | y , c ] k - 1
d
k - 1
il
(2.1 )
P
il
根据式 2.1,只要知道了图 2.1 的第一层中各比特为 1 的概率
,就可以算出比特 d 的条件概率。
在其他根节点的校验树里比
特 d 又作为一个节点参与到根节点的概率计算中去,即比特 d 从
与其有关的节点中获取信息计算出概率,再将其计算出的概率信息传
出用于计算其他的节点 c,由于在计算其他节点 c时同样会用到
ii
计算比特 d 时所用过的运算,所以可以通过共享计算的中间结果而
使计算量大为降低,进而发展出了BPA(也称SPA或MPA)。
2.2BP算法(也称SP或MP算法)
校验集合树虽然比较直观,但对于每一个节点都有不同的校验集
合树,因此在描述并行计算整个码字各比特的后验概率时,使用校验
集合树并不方便,因此介绍一种新的图形表示法,Tanner图。
对应于
图 2.1 的Tanner图如图 2.2 所示。
该图仅画出部分变量节点和校验节
点。
Tanner图中变量节点对应于校验集合树中的节点,校验节点对应
于校验集合树中的边。
(1,1)(1,2)(1,3)(2,1)(2,2)(2,3)(3,1)(3,2)(3,3)d
S
1 S
2 S
3 S
4
图 2.2对应于图 2.1 校验集合树的部分Tanner图
由Tanner图可看出,信息是在变量节点和校验节点之间来回传递
的,变量节点d将自身的固有信息再加上与它有关的 S , S , S 校验
123
节点传给它的额外信息一起传递给校验节点 S 。
同理,校验节点 c 也
4j
是将自身的固有信息再加上与它有关的除某一变量节点v 以外的其
i
余变量节点所传给 c 的额外信息一起传递给变量节点 v ,如此信息便
ji
在变量节点和校验节点之间来回传递,不断更新变量节点和校验节点
的值,所有变量节点和校验节点更新完一次称之为一次迭代结束,直
到变量节点译码成功或者达到最大的迭代次数译码输出。
因此,完整的BPA(也称SPA或MPA)表述如下:
1) 初始化:
q1 = p1 = f 1 , q0 = 1 - q1 ,其中 f 1 表示的是信道的先验
mlllmlmll
概率。
2) 校验节点更新:
δ q≡ q 0 - q1 , δ r ≡ r 0 - r1 ,则有
mlmlmlmlmlml
δ r ≡ (-1)z
ml
m
∏ δ q
ml'
(2.2)
l'∈L(m)/ l
r 0 = (1+ δ r ) / 2
mlml
r1 = (1+ δ r ) / 2
mlml
3) 变量节点更新:
(2.3)
(2.4)
q0 ≡ αp0
mlmll
q1 ≡ αp1
mlmll
∏
m'∈M (l )/ m
∏
r 0
m'l
r1
m'l
(2.5)
(2.6)
m'∈M (l )/ m
其中 α 是一个使得 q 0 + q1 = 1的值
mlmlml
4) 似后验概率更新
q0 ≡ α p0
lll
∏
r 0
ml
(2.7)
q1 ≡ α p1
lll
m∈M (l )
∏ r1
ml
(2.8)
m∈M (l )
同样 α 是一个使得 q 0 + q1 = 1 的值
lll
∧∧(
5) 比特判决:
如果 q0 > 0.5 ,判决 x = 0 ;否则判 x = 1 , i = 1,2,L , N )
iii
x
若 H Tx = 0 ,或者迭代次数达到最大迭代次数,则结束迭代,将∧
作为译码输出;否则返回到步骤 2)继续迭代。
2.3Log-BP算法
由 2.2 介绍的BP算法可以看出BP算法比较复杂,且该算法需要很
多连乘运算,需要大量的运算时间和消耗大量的硬件资源,不便于硬
件实现,因此,又发展出了一种更加简便的对数域的BP算法,简称
Log-BP算法。
考虑一个二值随机变量 x ,它的对数似然比 L( x) 定义为
L( x) = ln P( x = 0)
P( x = 1)
根据对数似然比的定义,令
f 0
v0 = lnl
l
l
v= ln
ml
q0
ml
q1
ml
q1
q0
v = lnl
l
l
u= ln rml
ml
ml
再对以上的BP算法在对数域内进行一系列的化简,最终可获得
Log-BP算法的完整表述:
1) 初始化:
v= v0
mll
2) 校验节点更新:
(2.9)
ml
3) 变量节点更新:
l'∈L(m)/ l'
ml'
(2.10)
v= v0 +
mll
∑ u
m'l
(2.11)
m'∈M (l )/ m
4) 似后验概率更新:
v = v0 +
ll
∑ u
ml
(2.12)
若 H Tx = 0 ,或者迭代次数达到最大迭代次数,则结束迭代,将x
m∈M (l )
∧∧
5) 比特判决:
如果v > 0 ,则判 x = 0 ;否则判 x = 1 ,( l = 1,2,L , N )
lll
∧
作为译码输出;否则返回到步骤 2)继续迭代。
2.4Min_Su
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LDPC 及其 译码 实现