专利名称:Qc-ldpc码的高度并行编码器和编码方法
技术领域:
本发明涉及通 信领域,特别涉及一种通信系统中QC-LDPC码编码器的高度并行实现方法。
背景技术:
由于在传输信道中存在的各种失真和噪声会对发送信号产生干扰,接收端不可避免地会出现数字信号产生误码的情况。为了降低误码率,需要采用信道编码技术。低密度奇偶校验(Low-Density Parity-Check, LDPC)码以其逼近Shannon限的优异性能成为信道编码领域的研究热点。准循环LDPC码(Quasic-LDPC,QC-LDPC)码是一种特殊的LDPC码,其编码可采用移位寄存器加累加器(Shift-Register-Adder-Accumulator,SRAA)加以实现。SRAA法是利用生成矩阵G进行编码。QC-LDPC码的生成矩阵G是由aXt个bXb阶循环矩阵Gi^ (I彡i彡a, I彡j彡t)构成的阵列,t=a+c。与信息向量对应的一部分生成矩阵是单位矩阵,与校验向量对应的其余部分生成矩阵是高密度矩阵。假设b不是素数,可被分解为b=ux。au路高度并行SRAA法完成一次编码需要x+t个时钟周期,需要(auc+t)b个寄存器、aucb个二输入与门和aucb个二输入异或门。当采用FPGA实现超高速编码时,如此多的资源需求意味着功耗大、成本高。
发明内容
针对QC-LDPC码超高速编码的现有实现方案中存在的资源需求量大缺点,本发明提供了一种基于查找表的高度并行编码方法,充分利用FPGA逻辑资源中的查找表功能,能在保持编码速度不变的前提下,有效减少资源需求。如图I所示,QC-LDPC码的高度并行编码器主要由4部分组成寄存器、查找表、be位二输入异或门和b位二输入异或门。整个编码过程分4步完成第I步,输入信息向量S,保存至寄存器R1 Ra,清零寄存器Ra+1 R t ;第2步,寄存器R1 Ra串行左移u位,查找表L1 La分别输入向量Ii1'和输出向量V广va,bc位二输入异或门B1 Bp1对向量V1^a求和,得到向量va+1,b位二输入异或门A1 (I彡I彡c)将向量va+1的第I段b比特与寄存器Ra+1串行循环左移u位的结果相加,和存回寄存器Ra+1 ;第3步,重复第2步X次;第4步,并行输出码字(s,P)。本发明提供的QC-LDPC高度并行编码器兼容多码率,能在保持编码速度不变的前提下有效减少资源需求,从而达到降低硬件成本和功耗的目的。关于本发明的优点与精神可通过接下来的发明详述及附图得到进一步的了解。
图I是QC-LDPC码的高度并行编码器整体结构;图2比较了传统的au路高度并行SRAA法与本发明的资源消耗。
具体实施例方式下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。QC-LDPC码是一类特殊的LDPC码,它的生成矩阵G和校验矩阵H都是由循环矩阵构成的阵列,具有分段循环特点,故被称为准循环LDPC码。从行的角度看,循环矩阵的每一行都是上一行(首行是末行)循环右移一位的结果;从列的角度看,循环矩阵的每一列都是前一列(首列是末列)循环下移一位的结果。循环矩阵的行向量构成的集合与列向量构成的集合完全相同,因此,循环矩阵完全可由它的首行或首列来表征。QC-LDPC码的生成矩阵G是由aXt个bXb阶循环矩阵Gi,」(I彡i彡a, I彡j彡t)构成的阵列
IO …O Gha+l Gha+2 …Gu-
O I …O G2^1 G2m+2 …Glj ij -(I)
O O ··· I Gaa+l Gaa+2 ··■ Gat_G(或H)的连续b行和b列分别被称为块行和块列。假设循环矩阵的阶数b不是素数,可被分解为b=ux,其中,u和X皆为非I的正整数。那么,生成矩阵G第m (KmSa)块行、后c块列中所有循环矩阵的前u行构成了一个uXbc阶矩阵,称之为子块行矩阵,记作II。U111可视为由be个u维列向量构成的,所有的Uni构成了一个auXbc阶子块矩阵U。生成矩阵G对应码字(S,P),G的前a块列对应的是信息向量S,后c块列对应的是校验向量P。Wb比特为一段,信息向量s被等分为a段,即S= (S1, S2,…,sa);校验向量P被等分为c段,即P= (P1, p2,…,p。)。对于第i (I彡i彡a)段信息向量Si,有Si=Gi,
I,si,2)…,Si,b)。由式⑴、⑵和循环矩阵的特点,图I给出了 QC-LDPC码的高度并行编码器,它主要由寄存器、查找表、be位二输入异或门和b位二输入异或门四种功能模块组成。寄存器R1 Ra用于缓存信息向量S= (Sl,S2, -,Sa),寄存器Ra+1 Rt用于计算和存储校验向量P= (P1, P2, ···, Pc)。查找表L1 La均有u位输入和be位输出,分别完成不同的u位信息比特与子块行矩阵U广Ua的乘积。并行输入的u位信息比特sm,m+1,s_+2,…,s_+u( I彡m彡a, O彡n〈x)构成向量hm={sm,m+1,s_+2,…,sm,m+u}。查找表Lm的输入是hm,每一路输出是hm与子块行矩阵Um对应列的乘积,总输出构成了向量vm。如果将查找表的基本查找单元视为一个二输入与门,那么共需acb个二输入与门。be位二输入异或门B1-Bp1将向量V广Va加在一起,得到向量va+1。实际上,va+1中的每个元素是向量与子块矩阵U对应列的乘积,va+1是向量O^h2,…,ha}与子块矩阵U的乘积。b位二输入异或门A1 (I彡I彡c)将向量va+1的连续b比特累加到寄存器Ra+1中。所有的be位二输入异或门和b位二输入异或门的二输入异或门总数是acb个。本发明提供了一种基于查找表的QC-LDPC高度并行编码方法,结合QC-LDPC码的高度并行编码器(如图I所示),其编码步骤描述如下第I步,输入信息向量s,保存至寄存器R1 Ra,清零寄存器Ra+1 Rt ;
第2步,寄存器R1 Ra串行左移u位,查找表L1 La分别输入向量Ii1'和输出向量Vl、a,be位二输入异或门B1 Bp1对向量V1'求和,得到向量va+1,b位二输入异或门A1CI彡I彡c)将向量va+1的第I段b比特与寄存器Ra+1串行循环左移u位的结果相加,和存回寄存器Ra+1 ;第3步,重复第2步X次,完成后,寄存器R1 Ra存储的是信息向量s= (s” S2,...,sa),寄存器Ra+1 Rt存储的是校验向量P= (Pl, P2, ...,pc);第4步,并行输出码字(S,P)。从以上步骤不难看出,整个编码过程共需x+t个时钟周期,这与传统的au路高度并行SRAA法完全相同。图2比较了传统的au路高度并行SRAA法与本发明的资源消耗。注意,这里将查找表的基本查找单元视为一个二输入与门。从图2可清楚看到,与au路高度并行SRAA法相比,本发明使用了较少的寄存器、异或门和与门,耗费量分别是au路高度并行SRAA法的t/ (auc+t)、1/u 和 1/u。综上可见,与传统的au路高度并行SRAA法相比,本发明保持了编码速度,能充分利用FPGA逻辑资源中的查找表功能,具有控制简单、资源消耗少、功耗小、成本低等优点。以上所述的实施例,只是本发明较优选的具体实施方式
,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
权利要求
1.一种QC-LDPC码的高度并行编码器,QC-LDPC码的生成矩阵G是由aXt个bXb阶循环矩阵Gi,」构成的阵列,其中,a、t和b皆为正整数,t=a+c, I彡i彡a, I彡j彡t, b被分解为b=ux,u和X皆为非I的正整数,生成矩阵G对应码字(S,P),G的前a块列对应的是信息向量S,后c块列对应的是校验向量P,以b比特为一段,信息向量s被等分为a段,即S=G1, S2,…,sa),第i段信息向量Si= (Si,P si;2,…,Sijb),校验向量P被等分为C段,即P= (P1, P2,…,P。),其特征在于,所述编码器包括以下部件 寄存器R1 Rt,寄存器R1 Ra用于缓存信息向量S= (S1, S2,-, Sa),寄存器Ra+1 Rt用于计算和存储校验向量P= (P1, Pb…,Pc); 查找表L1 La,分别并行输入u位信息比特构成的向量hm={sm,m+1,Snij m+2,…,sm,m+u},并行输出be位向量Vm,其中,I ^ m ^ a,O ^ n〈x ; be位二输入异或门B1 Bp1,将向量V1^a加在一起,得到向量va+1 ; b位二输入异或门A1 (A1将向量va+1的第I段连续b比特累加到寄存器Ra+1中,其中,I < I < C。
2.如权利要求I所述的高度并行编码器,其特征在于,所述查找表L1 La分别完成不同的u位信息比特与子块行矩阵U1Ua的乘积,查找表Lm的输入是hm,每一路输出是hm与子块行矩阵Um对应列的乘积,总输出构成了向量vm。
3.如权利要求I所述的高度并行编码器,其特征在于,所述向量va+1中的每个元素是向量ΙΧ,Ι^,···,]^}与子块矩阵U对应列的乘积,va+1是向量ΙΧ,Ι^,···,]^}与子块矩阵U的乘积。
4.一种QC-LDPC码的高度并行编码方法,QC-LDPC码的生成矩阵G是由aXt个bXb阶循环矩阵Gi, j构成的阵列,其中,a、t和b皆为正整数,t=a+c, I彡i彡a, I彡j彡t, b被分解为b=ux,u和X皆为非I的正整数,生成矩阵G对应码字(S,P),G的前a块列对应的是信息向量S,后c块列对应的是校验向量P,以b比特为一段,信息向量s被等分为a段,即S=G1, S2,…,sa),第i段信息向量Si= (Si,P si;2,…,Sijb),校验向量P被等分为C段,即P= (P1, P2,…,P。),其特征在于,所述编码方法包括以下步骤 第I步,输入信息向量s,保存至寄存器R1 Ra,清零寄存器Ra+1 Rt ; 第2步,寄存器R1 Ra串行左移u位,查找表L1 La分别输入向量Ii1Ia和输出向量V1^Va, be位二输入异或门B1 Riri对向量V1^Va求和,得到向量va+1, b位二输入异或门A1将向量va+1的第I段b比特与寄存器Ra+1串行循环左移u位的结果相加,和存回寄存器Ra+1,其中,I彡I彡c ; 第3步,重复第2步X次,完成后,寄存器R1 Ra存储的是信息向量S= (Sl,S2,…,sa),寄存器Ra+1 Rt存储的是校验向量P= (P1, P2, ...,Pc); 第4步,并行输出码字(s, P)。
全文摘要
本发明涉及一种解决QC-LDPC码高度并行编码的方案,其特征在于,所述系统的QC-LDPC码的高度并行编码器主要由寄存器、查找表、bc位二输入异或门和b位二输入异或门四部分组成。本发明提供的QC-LDPC高度并行编码器兼容多码率,能充分利用FPGA逻辑资源中的查找表功能,在保持编码速度不变的条件下有效减少资源需求,具有控制简单、资源消耗少、功耗小、成本低等优点。
文档编号H03M13/11GK102932010SQ20121047635
公开日2013年2月13日 申请日期2012年11月21日 优先权日2012年11月21日
发明者张鹏, 杨刚, 杨霏, 郑正 申请人:苏州威士达信息科技有限公司