纠错LDPC
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LDPC码
1
(Low Density Parity Check)
LDPC (低密度校验)码
基本思路: 校验矩阵是稀疏矩阵,极长码。只对“1”迭代Turbo 译码 LDPC码历史
Robert Gallager 1960 年在MIT Ph. D. 论文中提出,但由于 1. 计算量大 2. RS码的引入 3. RS+卷积码被认为是最佳搭配 因此该码被忽视了几十年 MacKay (1999) 和Richardson/Urbanke(1998) 重新发现了 该码的优点和利用方式.
2
LDPC 码性能
逼近Shannon限,例如在二元输入的AWGN信道,码率 1/2的非正则(Irregular) LDPC码可具有离香农限不到 0.06dB的性能;计算机仿真结果表明,最好的非正则LDPC 码(长度为106)可获得在 BER=10-6时仅偏离容量0.13 dB 的性能,优于迄今所知道的最佳turbo码 (Richardson,2001) 当码长为107、R=1/2时,性能距香农限只差0.0045dB的 次数分布对已经找到. (Chung,2001) 纠码字差错block error的性能好 差错平台error floor低(误码率随信噪比的增加而下降减 速甚至不再下降,称为error floor现象) 最小距离正比于码长 译码复杂度与码长是线性关系 适合并行译码运算 3
16
一个简单LDPC 码的例子
1100… 0000… 0110… 0000… 1011… H= 1000… 0001… 0000… 0101… 0010… . .. . … . .. . … 本例中 Wc = 3 任何两列至多有一个“1”在位置上是 重叠的(处于同一行)。稀疏的特点使 我们能够做到这点。 矩阵的列线性无关, 即从列的线性组合得不出全“0”列。 上列特点使该码的 dmin 较大; G 可以用高斯消去法求得 校验矩阵H 可以写成H =[ PT ¦I ]形式 生成矩阵G 可以写成G =[I ¦P ]
5
LDPC 码结构特点(1)
非正则(不规则)LDPC码: 行和列中“1”的个数不是常数。 非正则码的性能可以优于正则码。
解释理由:因为在非正则码中,相连边数多的信息节点迅 速得到它们的正确译码,这样它们可以给相邻的校验节点更 加有效的概率信息,而这些校验节点又可以给与它们相邻的 次数少的信息节点更多的信息,从而产生波浪效应,次数高 的信息节点首先得到它们的正确译码,接着是次数稍低的信 息节点,然后是次数更低的节点,如此继续下去,直到译出 所有的信息节点。由于这种波浪效应,使非正则码可以获得 较正则码更好的性能。 m (m-1) LDPC码码长n的上限: n wc(wc-1)
18
一般线性分组码的译码方法: 当C是码字时,有CHT = 0 对于BSC信道, R=CE,其中E是差错矢量。译码器的 任务是要找出E,把它加到接收码上C=R E。 译码算法一般是基于线性代数, 运算量随码长指数上升。 LDPC 码通常采用基于图的译码算法,比如 1. 和-积(Sum-product)算法 (用在基于一般图的编码) 2.MAP (BCJR)算法 (用在基于网格图的编码) 3.消息传递( Message passing)算法 (用在基于二分图的码)
~〕 = 〔i ( n k) i
i 1
i i ( 1 r( , ))n i i 1
( 1 r( , )) n
( 1 r( , )) i
i 1
n
ห้องสมุดไป่ตู้
(6)
15
令 为上的一个排列。若我们将左边第 i 个插孔与右边第(i)个插孔相连接,这样就 将二分图与插孔上的排列对应起来。令取 遍 [s] 的排列集合得到一个二分图集合。若 所有这些排列都有相等的出现概率就得到 码集。因此,如果我们从集合中随机的选 择一个图这就暗含着取到任一个二分图的 概率都相等。
i x 信息节点分布 (x)
i 1 dc
dr
i 1
dr是信息节点最大度数
校验节点分布 (x) i x i 1 dc是校验节点最大度数
i 1
上述两多项式具有非负实系数且系数之和归一,即满足 (x)|x=1=1 和 (x)|x=1=1。从概念上说,多项式项 ixi-1 表示与 度数为i的信息节点相连的边 在所有边的总数中所占的比例 10 是 i。
Tanner 图
比特节点(列) c0
c1
c2
c3
c4
c5
c6
c7
Tanner图反映了伴随矩阵的运算关系: RHT=CHT+EHT=0+ EHT=S
9
二分图中,节点连线的条数称作该节点的“度数” 。 规则LDPC码的所有信息节点具有相同度数,所有校验节点 也具有相同度数,且满足条件 信息节点数×信息节点度数=校验节点数×校验节点度数 不规则LDPC码各节点度数并不相同,仔细选择节点度数的 分布能极大改善码的性能。通常,可用下列两个多项式分别 描述信息节点和校验节点的度数分布
~
14
可见,当码长n和(, )对确定之后,i度节点的数目 也就确定了,然而i度节点的具体位置与顺序排列并未确 定,可以有多种排列组合。将所有可能组合的集合写作 Cn(,),则每一种构码都是集合Cn(,)的元素之一。 在二分图中,信息节点侧和校验节点侧的连线数应 该是相等的,即
i ~ n n (i ni) i n i i i 1 i 1 i 1
线性分组码基础
可用一个生成矩阵G或校验矩阵H来描述The structure 纠错能力由最小距离dmin 决定。 最小距离dmin 等于生成矩阵G中最轻行的重量 最小距离dmin也等于校验矩阵H的秩加1 比如 (7, 4)汉明码 1000111 1110100 0100110 1101010 G= 0010101 H= 1011001 0001011 非稀疏矩阵 码字和校验矩阵的关系:CHT=0 或HCT=0
例:码长 n 的 LDPC 码的 H 矩阵有 n 列,对应二分图有 n 个 信息节点。设其中一半节点的度数为 3,另一半节点的度 数为4,则二分图上“边”的总数是(n2)×3+ (n2)×4, 4n 3n 4n 4 3n 3n 4n 3 系数3 = , 4 = 2 2 2 7 2 2 2 7 描述信息节点分布的多项式为
4
说(n,k)分组码校验矩阵H (n-k行n列)是稀疏矩阵,指其 每行每列只有极少个“1”而最小距离dmin又较大。 正则(规则)的LDPC码: Wr Wc 指H矩阵每列(column)有同样wc个“1”, n m 每行(row) 有同样wr个“1”,且 = 这里m=n-k,wc << m, wr << n。 对于一个好码,应有wc 3 。 校验矩阵H共有矩阵元素(n-k)×n个,正比于n2。 若保持每列“1”的个数wc不变,则矩阵H中非零元“1” 的个数为wc · n,即 “1”的个数随码长n线性增长。 矩阵元素的个数随n平方增长,而其中非零元“1”的个 数呈线性增长,则当码长n时,“1”的个数必将远远 小于0的个数,校验矩阵将成为稀疏矩阵。
12
=
同理,用 表示总校验节点数n-k与总边数之比
则最小码率为:
(n k) / r( , ) 1 1 n/
k n
(3)
对于规则码,实际码率就等于最小码率
例如对于度数分布对(x2,x5) 的规则码来说,分布对 (x2,x5)对应的正是(3,6)规则码,此时 3 1 6 1 = (3) =(1), , = ( ) =(1), 6 3 3 6 6 可计算得最小码率即实际码率为 1 2 5 r(x ,x )=(1 ) 2
对于不规则码,实际码率大于等于最小码率
13
定义i 度信息节点数与总信息节点数n的比值为
,
i 度校验节点数与总校验节点数n-k的比值为 i , ~ ~ i 则必有 i i 及 (4) i i i 这是因为 i i度节点数 i / 总边数 i度信息节点数 ~ i i n / 总边数 n i 同理 i i度校验节点数 ~ i nk i ~ 于是可知,度数为i的信息节点数是ni , ~ ,而 度数为i 的校验节点数是 (n k) i nk ~ k ~ ~ ~ (n k) i i 1 n i 1 r , n i (5) n n
8
Tanner图 Tanner图里有两类节点:消息比特(message bit)节点和校 验(check)节点。 例如一个(8,4)乘积码, 11100000 CHT:(1×8)(8×4)=1×4, H = 0 0 0 1 1 1 0 0 10010010 01001001
校验节点(行) f0 f1 f2 f3 fj ci
(x )=3/7 x2+ 4/7 x3
用矢量表示是
=( 3 4 ) = ( 3/7 , 4/7 )
同理,可令描述校验节点边分布的多项式为(x ), 系数矢量为。
因此,度数分布对(, )完全确定了节点的度数分布。
11
由于信息节点的总边数等于校验节点总边数,若总边数及 其分布确定,则检验节点数(n-k)不可能是任意的,码率也 不是任意的。 设所有校验约束是线性独立的,则 LDPC码可取码率范围 的最小值(最小码率)称为预期码率。最小码率与度数分 布对(, )存在一定关系,可计算得出,方法如下。
T
若H是稀疏矩阵,方程组每行仅留下少数非零项相加。 若H是规则的,即每行包含同样数量个“1”,那么上述 每个方程是同样多个项的相加。 如用若干条线的相汇代表加,就得出Tanner图,该图 含(n-k)个校验节点s0~ sn-k-1 ,n个消息比特节点r0~ rn-1 , 7
描述LDPC码基本工具之一是二分图 (Bipartite graph), 二分图是一种无向图, 基本元素是节点(node)和边(edge)。节点分 成两类(class),一条边所连接的两个节点必须 分属不同的两类。 Tanner图是二分图的具体化。Tanner图里 有两类节点:消息比特(message bit)节点和 校验(check)节点,节点间连线表示关联。
令
2 ( x ) dx ( x x )dx 3 1 2 0 0 1 1
(
1 x
1
2 x 2
2
3 x 3
3
) |
1 0 i 1
i
i
(2)
表示信息节点数n与总边数之比。这是因为
i 1
i
i
=
1度点数 度数1 / 总边数 2度点数 度数2 / 总边数 + + 1 2 1度点数 2度点数 信息节点数n 总边数 总边数
消息传递messagepassing算法用在基于二分图的码20消息传递messagepassing算法是一种最大似然mlmaximumlikelihood译码约束条件ch消息传递的内容是取1或0的概率似然度与mapbcjr算法中的外信息extrinsicinformation类似消息传递分两个阶段第一阶段是比特节点的概率第二阶段是校验节点的概率上述过程中假设后验posterior概率互相独立prij从比特节点cji从校验节点f1的概率比如2022计算仅涉及到h矩阵的非零元素即ij符合hijij01p1rjiij1p这里kij的选择应能保证或迭代次数超限算法结束
17
一般系统线性分组码的编码 C = mG = [ m ¦mP ]
LDPC 码的编码
一般编码方法用于 LDPC码会产生的问题 G的维数巨大,G一般也并不稀疏。比如一个(10000 ,5000) LDPC码,P矩阵将是5000×5000矩阵。假设 “1”的密度是0.5,编码所作的运算也有 0.5×(5000×5000)=12.5×106 次 (注:H在系统化之前是稀疏矩阵,系统化后不一定。 若H在系统化后是稀疏矩阵,G是稀疏的) 简化编码的方法之一是利用代数或几何途径来设计 LDPC码 ,使之能用移位寄存电路实现编码.
6
若R=(rn-1, rn-2,… r0), S=(sn-k-1 , … , s1, s0)
h( n k 1 )( n 1 ) h( n k 1 )1 h( n k 1 )0 H= h11 h10 h1( n 1 ) h h h 0( n 1 ) 01 00 sn-k-1 = rn-1h(n-k-1)(n-1) +…+ r1 h(n-k-1)1 + r0 h(n-k-1)0 则 s1 = rn-1h1(n-1) +… + r1 h11 + r0 h10 s0 = rn-1h0(n-1) +… + r1 h01 + r0 h00
1
(Low Density Parity Check)
LDPC (低密度校验)码
基本思路: 校验矩阵是稀疏矩阵,极长码。只对“1”迭代Turbo 译码 LDPC码历史
Robert Gallager 1960 年在MIT Ph. D. 论文中提出,但由于 1. 计算量大 2. RS码的引入 3. RS+卷积码被认为是最佳搭配 因此该码被忽视了几十年 MacKay (1999) 和Richardson/Urbanke(1998) 重新发现了 该码的优点和利用方式.
2
LDPC 码性能
逼近Shannon限,例如在二元输入的AWGN信道,码率 1/2的非正则(Irregular) LDPC码可具有离香农限不到 0.06dB的性能;计算机仿真结果表明,最好的非正则LDPC 码(长度为106)可获得在 BER=10-6时仅偏离容量0.13 dB 的性能,优于迄今所知道的最佳turbo码 (Richardson,2001) 当码长为107、R=1/2时,性能距香农限只差0.0045dB的 次数分布对已经找到. (Chung,2001) 纠码字差错block error的性能好 差错平台error floor低(误码率随信噪比的增加而下降减 速甚至不再下降,称为error floor现象) 最小距离正比于码长 译码复杂度与码长是线性关系 适合并行译码运算 3
16
一个简单LDPC 码的例子
1100… 0000… 0110… 0000… 1011… H= 1000… 0001… 0000… 0101… 0010… . .. . … . .. . … 本例中 Wc = 3 任何两列至多有一个“1”在位置上是 重叠的(处于同一行)。稀疏的特点使 我们能够做到这点。 矩阵的列线性无关, 即从列的线性组合得不出全“0”列。 上列特点使该码的 dmin 较大; G 可以用高斯消去法求得 校验矩阵H 可以写成H =[ PT ¦I ]形式 生成矩阵G 可以写成G =[I ¦P ]
5
LDPC 码结构特点(1)
非正则(不规则)LDPC码: 行和列中“1”的个数不是常数。 非正则码的性能可以优于正则码。
解释理由:因为在非正则码中,相连边数多的信息节点迅 速得到它们的正确译码,这样它们可以给相邻的校验节点更 加有效的概率信息,而这些校验节点又可以给与它们相邻的 次数少的信息节点更多的信息,从而产生波浪效应,次数高 的信息节点首先得到它们的正确译码,接着是次数稍低的信 息节点,然后是次数更低的节点,如此继续下去,直到译出 所有的信息节点。由于这种波浪效应,使非正则码可以获得 较正则码更好的性能。 m (m-1) LDPC码码长n的上限: n wc(wc-1)
18
一般线性分组码的译码方法: 当C是码字时,有CHT = 0 对于BSC信道, R=CE,其中E是差错矢量。译码器的 任务是要找出E,把它加到接收码上C=R E。 译码算法一般是基于线性代数, 运算量随码长指数上升。 LDPC 码通常采用基于图的译码算法,比如 1. 和-积(Sum-product)算法 (用在基于一般图的编码) 2.MAP (BCJR)算法 (用在基于网格图的编码) 3.消息传递( Message passing)算法 (用在基于二分图的码)
~〕 = 〔i ( n k) i
i 1
i i ( 1 r( , ))n i i 1
( 1 r( , )) n
( 1 r( , )) i
i 1
n
ห้องสมุดไป่ตู้
(6)
15
令 为上的一个排列。若我们将左边第 i 个插孔与右边第(i)个插孔相连接,这样就 将二分图与插孔上的排列对应起来。令取 遍 [s] 的排列集合得到一个二分图集合。若 所有这些排列都有相等的出现概率就得到 码集。因此,如果我们从集合中随机的选 择一个图这就暗含着取到任一个二分图的 概率都相等。
i x 信息节点分布 (x)
i 1 dc
dr
i 1
dr是信息节点最大度数
校验节点分布 (x) i x i 1 dc是校验节点最大度数
i 1
上述两多项式具有非负实系数且系数之和归一,即满足 (x)|x=1=1 和 (x)|x=1=1。从概念上说,多项式项 ixi-1 表示与 度数为i的信息节点相连的边 在所有边的总数中所占的比例 10 是 i。
Tanner 图
比特节点(列) c0
c1
c2
c3
c4
c5
c6
c7
Tanner图反映了伴随矩阵的运算关系: RHT=CHT+EHT=0+ EHT=S
9
二分图中,节点连线的条数称作该节点的“度数” 。 规则LDPC码的所有信息节点具有相同度数,所有校验节点 也具有相同度数,且满足条件 信息节点数×信息节点度数=校验节点数×校验节点度数 不规则LDPC码各节点度数并不相同,仔细选择节点度数的 分布能极大改善码的性能。通常,可用下列两个多项式分别 描述信息节点和校验节点的度数分布
~
14
可见,当码长n和(, )对确定之后,i度节点的数目 也就确定了,然而i度节点的具体位置与顺序排列并未确 定,可以有多种排列组合。将所有可能组合的集合写作 Cn(,),则每一种构码都是集合Cn(,)的元素之一。 在二分图中,信息节点侧和校验节点侧的连线数应 该是相等的,即
i ~ n n (i ni) i n i i i 1 i 1 i 1
线性分组码基础
可用一个生成矩阵G或校验矩阵H来描述The structure 纠错能力由最小距离dmin 决定。 最小距离dmin 等于生成矩阵G中最轻行的重量 最小距离dmin也等于校验矩阵H的秩加1 比如 (7, 4)汉明码 1000111 1110100 0100110 1101010 G= 0010101 H= 1011001 0001011 非稀疏矩阵 码字和校验矩阵的关系:CHT=0 或HCT=0
例:码长 n 的 LDPC 码的 H 矩阵有 n 列,对应二分图有 n 个 信息节点。设其中一半节点的度数为 3,另一半节点的度 数为4,则二分图上“边”的总数是(n2)×3+ (n2)×4, 4n 3n 4n 4 3n 3n 4n 3 系数3 = , 4 = 2 2 2 7 2 2 2 7 描述信息节点分布的多项式为
4
说(n,k)分组码校验矩阵H (n-k行n列)是稀疏矩阵,指其 每行每列只有极少个“1”而最小距离dmin又较大。 正则(规则)的LDPC码: Wr Wc 指H矩阵每列(column)有同样wc个“1”, n m 每行(row) 有同样wr个“1”,且 = 这里m=n-k,wc << m, wr << n。 对于一个好码,应有wc 3 。 校验矩阵H共有矩阵元素(n-k)×n个,正比于n2。 若保持每列“1”的个数wc不变,则矩阵H中非零元“1” 的个数为wc · n,即 “1”的个数随码长n线性增长。 矩阵元素的个数随n平方增长,而其中非零元“1”的个 数呈线性增长,则当码长n时,“1”的个数必将远远 小于0的个数,校验矩阵将成为稀疏矩阵。
12
=
同理,用 表示总校验节点数n-k与总边数之比
则最小码率为:
(n k) / r( , ) 1 1 n/
k n
(3)
对于规则码,实际码率就等于最小码率
例如对于度数分布对(x2,x5) 的规则码来说,分布对 (x2,x5)对应的正是(3,6)规则码,此时 3 1 6 1 = (3) =(1), , = ( ) =(1), 6 3 3 6 6 可计算得最小码率即实际码率为 1 2 5 r(x ,x )=(1 ) 2
对于不规则码,实际码率大于等于最小码率
13
定义i 度信息节点数与总信息节点数n的比值为
,
i 度校验节点数与总校验节点数n-k的比值为 i , ~ ~ i 则必有 i i 及 (4) i i i 这是因为 i i度节点数 i / 总边数 i度信息节点数 ~ i i n / 总边数 n i 同理 i i度校验节点数 ~ i nk i ~ 于是可知,度数为i的信息节点数是ni , ~ ,而 度数为i 的校验节点数是 (n k) i nk ~ k ~ ~ ~ (n k) i i 1 n i 1 r , n i (5) n n
8
Tanner图 Tanner图里有两类节点:消息比特(message bit)节点和校 验(check)节点。 例如一个(8,4)乘积码, 11100000 CHT:(1×8)(8×4)=1×4, H = 0 0 0 1 1 1 0 0 10010010 01001001
校验节点(行) f0 f1 f2 f3 fj ci
(x )=3/7 x2+ 4/7 x3
用矢量表示是
=( 3 4 ) = ( 3/7 , 4/7 )
同理,可令描述校验节点边分布的多项式为(x ), 系数矢量为。
因此,度数分布对(, )完全确定了节点的度数分布。
11
由于信息节点的总边数等于校验节点总边数,若总边数及 其分布确定,则检验节点数(n-k)不可能是任意的,码率也 不是任意的。 设所有校验约束是线性独立的,则 LDPC码可取码率范围 的最小值(最小码率)称为预期码率。最小码率与度数分 布对(, )存在一定关系,可计算得出,方法如下。
T
若H是稀疏矩阵,方程组每行仅留下少数非零项相加。 若H是规则的,即每行包含同样数量个“1”,那么上述 每个方程是同样多个项的相加。 如用若干条线的相汇代表加,就得出Tanner图,该图 含(n-k)个校验节点s0~ sn-k-1 ,n个消息比特节点r0~ rn-1 , 7
描述LDPC码基本工具之一是二分图 (Bipartite graph), 二分图是一种无向图, 基本元素是节点(node)和边(edge)。节点分 成两类(class),一条边所连接的两个节点必须 分属不同的两类。 Tanner图是二分图的具体化。Tanner图里 有两类节点:消息比特(message bit)节点和 校验(check)节点,节点间连线表示关联。
令
2 ( x ) dx ( x x )dx 3 1 2 0 0 1 1
(
1 x
1
2 x 2
2
3 x 3
3
) |
1 0 i 1
i
i
(2)
表示信息节点数n与总边数之比。这是因为
i 1
i
i
=
1度点数 度数1 / 总边数 2度点数 度数2 / 总边数 + + 1 2 1度点数 2度点数 信息节点数n 总边数 总边数
消息传递messagepassing算法用在基于二分图的码20消息传递messagepassing算法是一种最大似然mlmaximumlikelihood译码约束条件ch消息传递的内容是取1或0的概率似然度与mapbcjr算法中的外信息extrinsicinformation类似消息传递分两个阶段第一阶段是比特节点的概率第二阶段是校验节点的概率上述过程中假设后验posterior概率互相独立prij从比特节点cji从校验节点f1的概率比如2022计算仅涉及到h矩阵的非零元素即ij符合hijij01p1rjiij1p这里kij的选择应能保证或迭代次数超限算法结束
17
一般系统线性分组码的编码 C = mG = [ m ¦mP ]
LDPC 码的编码
一般编码方法用于 LDPC码会产生的问题 G的维数巨大,G一般也并不稀疏。比如一个(10000 ,5000) LDPC码,P矩阵将是5000×5000矩阵。假设 “1”的密度是0.5,编码所作的运算也有 0.5×(5000×5000)=12.5×106 次 (注:H在系统化之前是稀疏矩阵,系统化后不一定。 若H在系统化后是稀疏矩阵,G是稀疏的) 简化编码的方法之一是利用代数或几何途径来设计 LDPC码 ,使之能用移位寄存电路实现编码.
6
若R=(rn-1, rn-2,… r0), S=(sn-k-1 , … , s1, s0)
h( n k 1 )( n 1 ) h( n k 1 )1 h( n k 1 )0 H= h11 h10 h1( n 1 ) h h h 0( n 1 ) 01 00 sn-k-1 = rn-1h(n-k-1)(n-1) +…+ r1 h(n-k-1)1 + r0 h(n-k-1)0 则 s1 = rn-1h1(n-1) +… + r1 h11 + r0 h10 s0 = rn-1h0(n-1) +… + r1 h01 + r0 h00