基于矩阵分块的高速LDPC译码器实现方法技术

技术编号:3478086 阅读:334 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种基于矩阵分块的高速LDPC译码器实现方法,属于信道编码技术领域。本发明专利技术的方法包括以下具体步骤:(1)构造具有分块校验矩阵的LDPC码:首先利用代数的方法构造一个校验矩阵,该校验矩阵中没有小环,以保证所构造码字的性能;然后按照一定的规则,对该校验矩阵的行进行重排,使得重排后的校验矩阵具有分块的结构。(2)在LDPC码的校验矩阵具有分块结构的情况下,对其实现高速并行译码。本发明专利技术的方法,可以在工程上实现LDPC码的高速并行译码,译码复杂度很低,所构造的码字中无小环,性能非常好,与随机构造的码字性能相当。

【技术实现步骤摘要】

本专利技术涉及一种LDPC译码方法,特别涉及一种基于矩阵分块的高速LDPC 译码器实现方法,属于信道编码

技术介绍
在卫星通信、深空通信及各种无线通信系统中,为了提高系统的抗噪声能 力,信道编码是必不可少的。在目前所有的信道编码中,LDPC码是最接近香农 限的好码,其性能比Turbo码还好。LDPC码的译码采用BP(Belief Propagation) 迭代译码算法,不仅具有很好的译码性能,而且具有线性的译码复杂度,更为 重要的是,这是一种并行译码算法,可以极大地提高译码速度。但是在工程实 现时,对于完全随机构造的码字而言,对迭代信息的读写速度会相对较慢,以 至于限制了并行译码的进行。BP迭代译码算法分为概率域迭代译码与对数域迭代译码两种实现方式,对 数域迭代译码是在概率域迭代译码的基础上发展而来的,通过取对数,可以将 大量乘法运算变为加法运算,有利于硬件实现,因此工程上大都采用对数域迭 代译码算法。译码器的输入为来自解调器的软解调信息"',z'-l…W;输出即为译码的硬判决结果。迭代译码过程可以看成是在由校验矩阵决定的双向图上进 行的消息传递过程,双向图又称为Tanner图,如图1所示。图1中右边的节点 是变量节点,代表码字中的一个比特或校验矩阵中的一列;左边的节点是校验 节点,代表一个校验方程或校验矩阵中的一行,当码字中某一比特包含在某一 校验方程中,即校验矩阵中相应位为1时,图1中的左右节点间存在连线。译 码中间变量为两组用对数似然比(LLR)定义的迭代信息丄(^.)和"。)。其中z' 表示变量节点,/表示校验节点,丄(^.)为变量节点到校验节点的迭代信息,"。) 为校验节点到变量节点的迭代信息。令M(O表示与变量节点z'相连的校验节点的集合,w(y)表示与校验节点7相连的变量节点的集合。迭代时"^)和i:(。)之间信息的传递过程如图2所示,具体译码步骤为 (1)初始化i(^)初始化为信道输入对数似然比(LLR)丄(",当信道为加性高斯白噪 声信道时,有<formula>formula see original document page 4</formula>(1)(2)迭代(a)校验节点迭代运算(CNUP, check node update processing),由CNU 单元完成ZWA))](2)<formula>formula see original document page 5</formula>(3)(4)<formula>formula see original document page 5</formula>(5)若采用加修正因子的最小和算法,则CNUP变为式(6)中7为修正因子,其值与校验矩阵的行重有关, 一般取0.7 0.8之间。(b)变量节点迭代运算(VNUP, variable node update processing),由VNU 单元完成(7)(8)(3)判决对丄(^)判决:<formula>formula see original document page 5</formula>(9)若版T-0,译码正确,退出本次译码;否则继续迭代,直到最大迭代次数。 实际中,为了省去计算W的过程,在完成变量节点迭代运算后,不进行判决和 校验而直接进行校验节点迭代运算,直到达到最大迭代次数后,再进行判决。从加修正因子的最小和算法可以看出,初始化的式(1)可以用下式来代替= (10)此时不需要知道噪声的大小,在实际应用上就省去了信噪比估计的麻烦。 通过调整修正因子77的值,可以使最小和算法的性能和原算法的性能几乎一样。从BP迭代译码算法可以看出,当校验节点迭代时,各个校验节点(即校验 矩阵的每一行)可以同时进行迭代,即可以有多个CNU单元同时工作;同样当变量节点迭代时,各个变量节点(即校验矩阵的每一列)也可以同时进行迭代。即BP迭代译码算法是一种并行算法,可以实现高速译码。但在工程上,却不一 定可以并行实现。在BP迭代译码的过程中,需要存储中间变量i^,)和"。,), 在CNU运算时,需要用到"《,)信息;在VNU运算时,需要用到Z(。,)信息。假 如将丄(^)存储在1个存储单元的话,则在读取或写入丄(&)时,每个对钟周期都 只能操作1个数;对丄(。)的操作也一样。此时虽然可以有多个CNU单元和VNU 单元同时工作,但由于从"&)或i:(。,)读写数的速度较慢,大部分时候都处于等 待状态,不能有效工作,并行运算也就不能实现。一种解决的办法是将Z(^)和丄(。,)中的每一个数据都用一个寄存器来存储, 则此时在任意时钟都可以对Z(&.)和丄^)中的任意数据进行读写操作,此时CNU 单元和VNU单元可以实现完全地并行工作,译码器可以达到很高的速度,但这 种方法会耗费大量的资源,在码长较长时是不可能实现的,在通常的中等速度 系统也不实用。
技术实现思路
针对LDPC译码器在工程实现时遇到的上述困难,本专利技术提出了一种在硬 件实现时的资源和译码速度方面都可以接受的并行译码方法。如果将"&)和"r》存储在多个存储单元的话,则每一个时钟可以读写 和丄(。,)中的多个数据,从而送给几个CNU单元和VNU单元同时工作,通过对 这几个CNU单元和VNU单元复用,可以实现部分并行译码。但对于随机构造 的码字,即使将£(^)和丄(。,.)存储在多个存储单元,也不能保证每个时钟从Z^) 和丄0>)中读写的多个数据在校验矩阵的同一行或同一列,CNU单元和VNU单 元也只好处于等待状态,这时也不能实现部分并行译码。本专利技术的方法是将校 验矩阵设计成具有分块矩阵的结构,如图3所示。图3中p为最大行重,《为最 大列重,每一个分块矩阵《,」满足每一行最多只有一个1,每一列也最多只有一 个l。对于规则LDPC码,p即为行重,《即为列重,此时《,,为方阵,且它的每一行和每一列都恰好只有一个l。对于非规则LDPC码,根据码字的最大行重p 和最大列重《,首先构造一个行重为p、列重为《的规则码,然后按照非规则码 的度分布规则,通过删除规则码的校验矩阵对应位置上的1来实现。因此本发 明以下讨论的都是规则LDPC码的情况。由于A^)和"。,)中的元素是和校验矩阵中有1的位置一一对应的,将校验 矩阵设计成具有分块矩阵的结构后,部分并行译码在工程上即可以实现。本发 明的方法是以将校验矩阵设计成分块结构为基础的,并给出了分块结构校验矩 阵的构造方法。本专利技术提出了一种基于矩阵分块的高速LDPC译码器实现方法,包括以下 具体步骤第一步构造具有分块校验矩阵的LDPC码(1) 根据所需构造码字的最大行重p与最大列重《确定所构造校验矩阵的分块数,为/7《个分块。(2) 取/7个自然数"',......"p,满足GCD(fl乂,M)"且(9-l)^ 〈M,y-l,2…p;同时还要根据消除小环的条件,对该p个数"i,"2......"P进行选取,使得所构造的校验矩阵无小环。(3) 按方法~="/( 10£1^ + 1, '、1,2…M, y-l,2…户得到(l,2,…,M〉的; 个重新排列,本文档来自技高网
...

【技术保护点】
一种基于矩阵分块的高速LDPC译码器实现方法,包括以下步骤: 第一步构造具有分块校验矩阵的LDPC码: (1)根据所需构造码字的最大行重p与最大列重q确定所构造校验矩阵的分块数,为pq个分块; (2)取p个自然数a↓[1],a↓[2]……a↓[p],满足GCD(a↓[j],M)=1且(q-1)a↓[j]<M,j=1,2…p;同时还要根据消除小环的条件,对该p个数a↓[1],a↓[2]……a↓[p]进行选取,使得所构造的校验矩阵无小环; (3)按方法b↓[ji]=a↓[j]i(modM)+1,i=1,2…M,j=1,2…p得到{1,2,…,M}的p个重新排列,式中M为校验矩阵的行数;然后构造矩阵H↓[i,j],j=1,2…p,方法为:H↓[i,j]第一列中非0元素所在的行号为b↓[j1],b↓[j2]……b↓[jq],第二列中非0元素所在的行号为b↓[j(q+1)],b↓[j(q+2)]……b↓[j(2q)],依此类推,再将p个H↓[i,j]合并起来,即得到校验矩阵H; (4)对第(3)步所构造的校验矩阵的行进行重排,使重排后的校验矩阵具有分块的结构,重排规则为:将H↓[i,1]第j列中非0元素所在的行b↓[1[(j-1)q+i]]=[(j-1)q+i]a↓[1](modM)+1移至第j+(i-1)M/q行,i=1,2…q,j=1,2…M/q; (5)对于规则LDPC码,到第(4)步后具有分块结构的校验矩阵即已构造完成;对于非规则LDPC码,只需再按照度分布规则将对应分块中的1变成0即可; 第二步在LDPC码的校验矩阵具有分块结构的情况下,对其实现高速并行译码: (1)根据所要求的并行度及校验矩阵的分块数,确定需要的存储单元的数目:设每个分块矩阵分存在n个存储单元中,则需要npq个存储L(q↓[ij])和npq个存储L(r↓[ji])的存储单元; (2)利用公式L(q↓[ij])=-r↓[i]初始化L(q↓[ij]),初始化在npq个存储单元中同时并行进行; (3)利用式(6) L(r↓[ji])=(*α↓[i′j])φ[*φ(β↓[i′j])]≈(*α↓[i′j])*(*β↓[i′j])*η (6) 进行校验节点迭代,设存储器用的是双口RAM,则有2nq个CNU单元同时并行工作; (4)利用式(7)和式(8) L(q↓[i])=L(c↓[i])+*L(r↓[ji]) (7) L(q↓[ij])=L(q↓[i])...

【技术特征摘要】

【专利技术属性】
技术研发人员:安建平刘策伦卜祥元王忠勇
申请(专利权)人:北京理工大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1