CMMB中二级部分并行输入右移累加的LDPC编码器

申请号 CN201610963870.8 申请日 2016-11-04 公开(公告)号 CN106385262A 公开(公告)日 2017-02-08
申请人 荣成市鼎通电子信息科技有限公司; 发明人 张鹏;
摘要 本 发明 提供了一种CMMB中基于二级流 水 线的QC-LDPC 编码器 ,该编码器包括1个稀疏矩阵与向量的乘法器和1个向量与高 密度 矩阵的乘法器。稀疏矩阵与向量的乘法器实现稀疏矩阵与向量的乘法运算,向量与高密度矩阵的乘法器采用部分并行输入右移累加机制,实现向量与高密度矩阵的乘法运算。整个编码过程划分为2级流水线。本发明提供的CMMB系统中3/4码率QC-LDPC编码器具有成本低、吞吐量大等优点。
权利要求

1.一种CMMB中基于二级流线的QC-LDPC编码器,3/4码率QC-LDPC码的校验矩阵H是由c×t个b×b阶循环矩阵构成的阵列,其中,c=9,t=36,b=256,e=t-c=27,校验矩阵H可划分为2个子矩阵,H=[C D],C是由c×e个b×b阶循环矩阵构成,D是由c×c个b×b阶循环矩阵构成,ΦT=D–1,其中,上标T和-1分别表示转置和逆,矩阵C对应信息向量a,矩阵D对应校验向量p,以b比特为一段,信息向量a被等分为e段,即a=(a1,a2,…,ae),校验向量p被等分为c段,即p=(p1,p2,…,pc),sT=CaT,p=sΦ,向量s被等分为c段,即s=(s1,s2,…,sc),其特征在于,所述编码器包括以下部件:
稀疏矩阵与向量的乘法器,由t个b比特寄存器R1,1,R1,2,…,R1,t和c个多输入异或X1,1,X1,2,…,X1,c组成,用于计算向量s;
向量与高密度矩阵的乘法器,基于部分并行输入右移累加机制,由移位寄存器、生成多项式查找表、b位二进制乘法器、b位二进制加法器和累加器组成,用于计算校验向量p,移位寄存器对向量段sj循环右移,生成多项式查找表L1,L2,…,Lc分别预存矩阵Φ第1,2,…,c列中的所有循环矩阵生成多项式,生成多项式查找表L1,L2,…,Lc输出的生成多项式比特分别与移位寄存器的内容进行标量乘,这c个标量乘法分别通过b位二进制乘法器M1,M2,…,Mc完成,b位二进制乘法器M1,M2,…,Mc的乘积分别与累加器R1,R2,…,Rc的内容相加,这c个模2加法分别通过b位二进制加法器A1,A2,…,Ac完成,b位二进制加法器A1,A2,…,Ac的和分别存入累加器R1,R2,…,Rc,其中,1≤j≤c。
2.根据权利要求1所述的一种CMMB中基于二级流水线的QC-LDPC编码器,其特征在于,所述稀疏矩阵与向量的乘法器计算向量s的步骤如下:
第1步,输入信息段a1,a2,…,ae,将它们分别存入寄存器R1,1,R1,2,…,R1,e中;
第2步,寄存器R1,1,R1,2,…,R1,e同时循环左移1次,异或门X1,1,X1,2,…,X1,c分别将异或结果左移入寄存器R1,e+1,R1,e+2,…,R1,t中;
第3步,重复第2步b-1次,完成后,寄存器R1,e+1,R1,e+2,…,R1,t存储的内容分别是向量段s1,s2,…,sc,它们构成了向量s。
3.根据权利要求1所述的一种CMMB中基于二级流水线的QC-LDPC编码器,其特征在于,所述向量与高密度矩阵的乘法器计算校验向量p的步骤如下:
第1步,清零累加器R1,R2,…,Rc;
第2步,移位寄存器输入向量段sj,其中,1≤j≤c;
第3步,生成多项式查找表L1,L2,…,Lc分别输出矩阵Φ第j块行中第1,2,…,c块列的生成多项式比特,这些生成多项式比特分别通过b位二进制乘法器M1,M2,…,Mc与移位寄存器的内容进行标量乘,b位二进制乘法器M1,M2,…,Mc的乘积分别通过b位二进制加法器A1,A2,…,Ac与累加器R1,R2,…,Rc的内容相加,b位二进制加法器A1,A2,…,Ac的和分别存入累加器R1,R2,…,Rc;
第4步,移位寄存器循环右移一位,重复第3步b-1次;
第5步,以1为步长递增改变j的取值,重复第2~4步c-1次,直到整个向量s输入完毕,此时,累加器R1,R2,…,Rc存储的分别是校验段p1,p2,…,pc,它们构成了校验向量p=(p1,p2,…,pc)。
4.一种CMMB中基于二级流水线的QC-LDPC编码方法,3/4码率QC-LDPC码的校验矩阵H是由c×t个b×b阶循环矩阵构成的阵列,其中,c=9,t=36,b=256,e=t-c=27,校验矩阵H可划分为2个子矩阵,H=[C D],C是由c×e个b×b阶循环矩阵构成,D是由c×c个b×b阶循环矩阵构成,ΦT=D–1,其中,上标T和-1分别表示转置和逆,矩阵C对应信息向量a,矩阵D对应校验向量p,以b比特为一段,信息向量a被等分为e段,即a=(a1,a2,…,ae),校验向量p被等分为c段,即p=(p1,p2,…,pc),sT=CaT,p=sΦ,向量s被等分为c段,即s=(s1,s2,…,sc),其特征在于,所述编码方法包括以下步骤:
第1步,使用稀疏矩阵与向量的乘法器计算向量s;
第2步,使用向量与高密度矩阵的乘法器计算校验向量p。

说明书全文

CMMB中二级部分并行输入右移累加的LDPC编码器

技术领域

[0001] 本发明涉及信道编码领域,特别涉及一种CMMB系统中二级部分并行输入右移累加的QC-LDPC编码器。

背景技术

[0002] 低密度奇偶校验(Low-Density Parity-Check,LDPC)码是高效的信道编码技术之一,而准循环LDPC(Quasi-Cyclic LDPC,QC-LDPC)码是一种特殊的LDPC码。QC-LDPC码的生成矩阵G和校验矩阵H都是由循环矩阵构成的阵列,具有分段循环的特点,故被称为QC-LDPC码。循环矩阵的首行是末行循环右移1位的结果,其余各行都是其上一行循环右移1位的结果,因此,循环矩阵完全由其首行来表征。通常,循环矩阵的首行被称为它的生成多项式。
[0003] CMMB标准采用了系统形式的QC-LDPC码,其生成矩阵G的左半部分是一个单位矩阵,右半部分是由e×c个b×b阶循环矩阵Gi,j(1≤i≤e,e
[0004]
[0005] 其中,I是b×b阶单位矩阵,0是b×b阶全零矩阵。G的连续b行和b列分别被称为行和块列。由式(1)可知,G有e块行和t块列。CMMB标准采用了一种码率η=3/4的QC-LDPC码,对于该码,t=36,e=27,c=9,b=256。
[0006] CMMB标准中3/4码率QC-LDPC编码器的现有解决方案是基于9个I型移位寄存器加累加器(Type-I Shift-Register-Adder-Accumulator,SRAA-I)电路的串行编码器。由9个SRAA-I电路构成的串行编码器,在6912个时钟周期内完成编码。该方案需要4608个寄存器、2304个二输入与和2304个二输入异或门,还需要62208比特ROM存储循环矩阵的生成多项式。该方案有两个缺点:一是需要大量存储器,导致电路成本高;二是串行输入信息比特,编码速度慢。

发明内容

[0007] CMMB系统中3/4码率QC-LDPC编码器的现有实现方案存在成本高、编码速度慢的缺点,针对这些技术问题,本发明提供了一种基于二级流线的QC-LDPC编码器。
[0008] 如图1所示,CMMB系统中基于二级流水线的QC-LDPC编码器主要由2部分组成:稀疏矩阵与向量的乘法器和向量与高密度矩阵的乘法器。编码过程分2步完成:第1步,使用稀疏矩阵与向量的乘法器计算向量s;第2步,使用向量与高密度矩阵的乘法器计算校验向量p。
[0009] 关于本发明的优势与方法可通过下面的发明详述及附图得到进一步的了解。

附图说明

[0010] 图1是基于二级流水线的QC-LDPC编码过程;
[0011] 图2是稀疏矩阵与向量的乘法器;
[0012] 图3是II型移位寄存器加累加器SRAA-II电路的功能框图
[0013] 图4是由c个SRAA-II电路构成的一种基于部分并行输入右移累加的向量与高密度矩阵乘法器;
[0014] 图5总结了编码器各编码步骤以及整个编码过程所需的硬件资源和处理时间。

具体实施方式

[0015] 下面结合附图对本发明的较佳实施例作详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围作出更为清楚明确的界定。
[0016] 循环矩阵的行重和列重相同,记作w。如果w=0,那么该循环矩阵是全零矩阵。如果w=1,那么该循环矩阵是可置换的,称为置换矩阵,它可通过对单位矩阵I循环右移若干位得到。QC-LDPC码的校验矩阵H是由c×t个b×b阶循环矩阵Hj,k(1≤j≤c,1≤k≤t,t=e+c)构成的如下阵列:
[0017]
[0018] 通常情况下,校验矩阵H中的任一循环矩阵要么是全零矩阵(w=0)要么是置换矩阵(w=1)。令循环矩阵Hj,k的首行hj,k=(hj,k,1,hj,k,2,…,hj,k,b)是其生成多项式,其中hj,k,m=0或1(1≤m≤b)。因为H是稀疏的,所以hj,k只有1个‘1’,甚至没有‘1’。
[0019] H的前e块列对应的是信息向量a,后c块列对应的是校验向量p,码字v=(a,p)。以b比特为一段,信息向量a被等分为e段,即a=(a1,a2,…,ae);校验向量p被等分为c段,即p=(p1,p2,…,pc)。将H的前e块列和后c块列构成的矩阵分别记作C和D,则
[0020] H=[C D]  (3)
[0021] C是由c×e个b×b阶循环矩阵构成,D是由c×c个b×b阶循环矩阵构成。将式(3)和码字v=(a,p)代入HvT=0,整理可得
[0022] pT=ΦTCaT  (4)
[0023] 其中,ΦT=D–1,上标T和–1分别表示转置和矩阵的逆,D必须满秩。众所周知,循环矩阵的逆、乘积、和仍然是循环矩阵。因此,Φ也是由循环矩阵构成的阵列。然而,虽然矩阵D是稀疏的,但Φ通常不再稀疏而是高密度的。
[0024] 令sT=CaT和pT=ΦTsT,则p=sΦ。使用C计算s涉及稀疏矩阵与向量的乘法,使用Φ计算p涉及向量与高密度矩阵的乘法。根据以上讨论,可给出一种基于二级流水线的QC-LDPC编码过程,如图1所示。
[0025] 令s=(s1,s2,…,sc),则sjT是矩阵C的第j块行与aT的乘积,即
[0026]
[0027] 其中,1≤i≤e,1≤j≤c。sj的第n比特sj,n(1≤n≤b)为
[0028]
[0029] 其中,上标rs(n–1)和ls(n–1)分别表示循环右移n–1位和循环左移n–1位。既然任一循环矩阵生成多项式hj,i只有少量的‘1’甚至是全零,那么式(6)中的内积可通过对循环左移寄存器的抽头求和来实现,如图2所示的稀疏矩阵与向量的乘法器。稀疏矩阵与向量的乘法器由t个b比特寄存器R1,1,R1,2,…,R1,t和c个多输入异或门X1,1,X1,2,…,X1,c组成。寄存器R1,1,R1,2,…,R1,e用于加载和循环左移信息段a1,a2,…,ae,寄存器R1,e+1,R1,e+2,…,R1,t用于存储s的向量段s1,s2,…,sc。图2中的稀疏连接取决于矩阵C中的所有循环矩阵生成多项式。如果hj,i,m=1(1≤m≤b),那么信息段ai的第m比特连接到异或门X1,j。因此,寄存器R1,i的所有抽头取决于矩阵C第i块列中所有循环矩阵生成多项式的非零元素所在位置,而多输入异或门X1,j的输入取决于矩阵C第j块行中所有循环矩阵生成多项式的非零元素所在位置。如果C中的所有循环矩阵生成多项式共有α个‘1’,那么稀疏矩阵与向量的乘法器需要使用(α–c)个二输入异或门同时计算s1,n,s2,n,…,sc,n。s可在b个时钟周期内计算完毕。使用稀疏矩阵与向量的乘法器计算向量s的步骤如下:
[0030] 第1步,输入信息段a1,a2,…,ae,将它们分别存入寄存器R1,1,R1,2,…,R1,e中;
[0031] 第2步,寄存器R1,1,R1,2,…,R1,e同时循环左移1次,异或门X1,1,X1,2,…,X1,c分别将异或结果左移入寄存器R1,e+1,R1,e+2,…,R1,t中;
[0032] 第3步,重复第2步b-1次,完成后,寄存器R1,e+1,R1,e+2,…,R1,t存储的内容分别是向量段s1,s2,…,sc,它们构成了向量s。
[0033] pT=ΦTsT等价于p=sΦ。Φ是由c×c个b×b阶循环矩阵Φj,u(1≤j≤c,1≤u≤c)构成的阵列。令循环矩阵Φj,u的首行gj,u是其生成多项式。由p=sΦ可知,第u段校验向量满足
[0034] pu=s1Φ1,u+s2Φ2,u+…+sjΦj,u+…+scΦc,u  (7)
[0035] 令生成多项式gj,u=(gj,u,1,gj,u,2,…,gj,u,b),则Φj,u可视为单位矩阵循环右移版本的加权和,即
[0036] Φj,u=gj,u,1Ir(0)+gj,u,2Ir(1)+…+gj,u,bIr(b-1)  (8)其中,上标r()表示循环右移。那么,式(7)等号右边的第j项可展开为
[0037]
[0038] 式(9)是一个右移-乘-加-存储的过程,其实现用II型移位寄存器加累加器(Type-IIShift-Register-Adder-Accumulator,SRAA-II)电路。图3是SRAA-II电路的功能框图,向量s以b比特为一段并行送入该电路。当用SRAA-II电路对校验段pu(1≤u≤c)进行编码时,生成多项式查找表预先存储矩阵Φ的第u块列的所有生成多项式,累加器被清零初始化。当第1个时钟周期到来时,向量段s1移入移位寄存器,生成多项式查找表输出Φ的第1块行、第u块列的生成多项式Φ1,u的第1个比特g1,u,1,并与移位寄存器的内容 进行标量乘,乘积与累加器的内容0模2加,和 存回累加器。当第2个时钟周期到来时,移位寄存器循环右移1位,内容变为 生成多项式查找表输出Φ1,u的第2个比特g1,u,2,并与移位寄存器的内容 进行标量乘,乘积 与累加器的内容 模2加,和
存回累加器。上述右移-乘-加-存储过程继续进行下去。当第b个时钟周期结束时,生成多项式查找表已输出Φ1,u的最后一个比特g1,u,b,此时累加器存储的是部分和s1Φ1,u,这是向量段s1对pu的贡献。当第b+1个时钟周期到来时,向量段s2移入移位寄存器,重复上述右移-乘-加-存储过程。当生成多项式查找表已输出Φ2,u的最后一个比特g2,u,b时,累加器存储的是部分和s1Φ1,u+s2Φ2,u。重复上述过程,直到整个向量s全部并行移入电路。此时,累加器存储的是校验段pu。
[0039] 图4给出了由c个SRAA-II电路构成的一种基于部分并行输入右移累加的向量与高密度矩阵乘法器,由移位寄存器、生成多项式查找表、b位二进制乘法器、b位二进制加法器和累加器五种功能模块组成。移位寄存器对向量段sj(1≤j≤c)循环右移。生成多项式查找表L1,L2,…,Lc分别预存矩阵Φ第1,2,…,c块列中的所有循环矩阵生成多项式。生成多项式查找表L1,L2,…,Lc输出的生成多项式比特分别与移位寄存器的内容进行标量乘,这c个标量乘法分别通过b位二进制乘法器M1,M2,…,Mc完成。b位二进制乘法器M1,M2,…,Mc的乘积分别与累加器R1,R2,…,Rc的内容相加,这c个模2加法分别通过b位二进制加法器A1,A2,…,Ac完成。b位二进制加法器A1,A2,…,Ac的和分别存入累加器R1,R2,…,Rc。
[0040] 生成多项式查找表L1,L2,…,Lc存储矩阵Φ中的循环矩阵生成多项式。生成多项式查找表L1~Lc分别存储Φ的第1~c块列中的所有生成多项式,对于任一块列,依次存储第1,2,…,c块行对应的生成多项式。生成多项式查找表L1~Lc串行输出生成多项式的比特。
[0041] 使用向量与高密度矩阵的乘法器计算校验向量p的步骤如下:
[0042] 第1步,清零累加器R1,R2,…,Rc;
[0043] 第2步,移位寄存器输入向量段sj(1≤j≤c);
[0044] 第3步,生成多项式查找表L1,L2,…,Lc分别输出矩阵Φ第j块行中第1,2,…,c块列的生成多项式比特,这些生成多项式比特分别通过b位二进制乘法器M1,M2,…,Mc与移位寄存器的内容进行标量乘,b位二进制乘法器M1,M2,…,Mc的乘积分别通过b位二进制加法器A1,A2,…,Ac与累加器R1,R2,…,Rc的内容相加,b位二进制加法器A1,A2,…,Ac的和分别存入累加器R1,R2,…,Rc;
[0045] 第4步,移位寄存器循环右移一位,重复第3步b-1次;
[0046] 第5步,以1为步长递增改变j的取值,重复第2~4步c-1次,直到整个向量s输入完毕,此时,累加器R1,R2,…,Rc存储的分别是校验段p1,p2,…,pc,它们构成了校验向量p=(p1,p2,…,pc)。
[0047] 本发明提供了一种基于二级流水线的QC-LDPC编码方法,适用于CMMB系统中的3/4码率QC-LDPC码,其编码步骤描述如下:
[0048] 第1步,使用稀疏矩阵与向量的乘法器计算向量s;
[0049] 第2步,使用向量与高密度矩阵的乘法器计算校验向量p。
[0050] 图5总结了编码器各编码步骤以及整个编码过程所需的硬件资源消耗和处理时间。
[0051] 从图5不难看出,流水线充满时,整个编码过程共需max(t–c+b,cb)=cb个时钟周期,小于基于c个SRAA-I电路的串行编码方法所需的e×b个时钟周期。对于CMMB标准中3/4码率QC-LDPC编码器,本发明的编码速度是后者的3倍。
[0052] CMMB标准中3/4码率QC-LDPC编码器的现有解决方案需要e×c×b比特ROM,而本发明需要c2b比特ROM。本发明需要较少的ROM,是现有解决方案的1/3。
[0053] 综上可见,对于CMMB标准中3/4码率QC-LDPC编码器,与传统的串行SRAA法相比,本发明具有编码速度快、存储器消耗少等优点。
[0054] 以上所述,仅为本发明的具体实施方式之一,但本发明的保护范围并不局限于此,任何熟悉本领域的技术人员在本发明所揭露的技术范围内,可不经过创造性劳动想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书所限定的保护范围为准。
QQ群二维码
意见反馈