DTMB中二级部分并行输入累加左移的LDPC编码器的制作方法

文档序号:12489772阅读:169来源:国知局
DTMB中二级部分并行输入累加左移的LDPC编码器的制作方法与工艺

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



背景技术:

低密度奇偶校验(Low-Density Parity-Check,LDPC)码是高效的信道编码技术之一,而准循环LDPC(Quasi-Cyclic LDPC,QC-LDPC)码是一种特殊的LDPC码。QC-LDPC码的生成矩阵G和校验矩阵H都是由循环矩阵构成的阵列,具有分段循环的特点,故被称为QC-LDPC码。循环矩阵的首行是末行循环右移1位的结果,其余各行都是其上一行循环右移1位的结果,因此,循环矩阵完全由其首行来表征。通常,循环矩阵的首行被称为它的生成多项式。

DTMB标准采用了系统形式的QC-LDPC码,其生成矩阵G的左半部分是一个单位矩阵,右半部分是由e×c个b×b阶循环矩阵Gi,j(1≤i≤e,e<j≤t,t=e+c)构成的阵列,如下所示:

其中,I是b×b阶单位矩阵,0是b×b阶全零矩阵。G的连续b行和b列分别被称为块行和块列。由式(1)可知,G有e块行和t块列。DTMB标准采用了一种码率η=4/5的QC-LDPC码,对于该码,t=59,e=48,c=11,b=127。

DTMB标准中4/5码率QC-LDPC编码器的现有解决方案是基于c个I型移位寄存器加累加器(Type-I Shift-Register-Adder-Accumulator,SRAA-I)电路的串行编码器。由c个SRAA-I电路构成的串行编码器,在e×b个时钟周期内完成编码。该方案需要2×c×b个寄存器、c×b个二输入与门和c×b个二输入异或门,还需要e×c×b比特ROM存储循环矩阵的生成多项式。该方案有两个缺点:一是需要大量存储器,导致电路成本高;二是串行输入信息比特,编码速度慢。



技术实现要素:

DTMB系统中4/5码率QC-LDPC编码器的现有实现方案存在成本高、编码速度慢的缺点,针对这些技术问题,本发明提供了一种基于二级流水线的QC-LDPC编码器。

如图1所示,DTMB系统中基于二级流水线的QC-LDPC编码器主要由2部分组成:稀疏矩阵与向量的乘法器和向量与高密度矩阵的乘法器。编码过程分2步完成:第1步,使用稀疏矩阵与向量的乘法器计算向量s;第2步,使用向量与高密度矩阵的乘法器计算校验向量p。

关于本发明的优势与方法可通过下面的发明详述及附图得到进一步的了解。

附图说明

图1是基于二级流水线的QC-LDPC编码过程;

图2是稀疏矩阵与向量的乘法器;

图3是并行输入的乘加移位寄存器MASR电路的功能框图;

图4是由c个并行输入的MASR电路构成的一种基于部分并行输入累加左移的向量与高密度矩阵乘法器;

图5总结了编码器各编码步骤以及整个编码过程所需的硬件资源和处理时间。

具体实施方式

下面结合附图对本发明的较佳实施例作详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围作出更为清楚明确的界定。

循环矩阵的行重和列重相同,记作w。如果w=0,那么该循环矩阵是全零矩阵。如果w=1,那么该循环矩阵是可置换的,称为置换矩阵,它可通过对单位矩阵I循环右移若干位得到。QC-LDPC码的校验矩阵H是由c×t个b×b阶循环矩阵Hj,k(1≤j≤c,1≤k≤t,t=e+c)构成的如下阵列:

通常情况下,校验矩阵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’。

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,则

H=[C D] (3)

C是由c×e个b×b阶循环矩阵构成,D是由c×c个b×b阶循环矩阵构成。将式(3)和码字v=(a,p)代入HvT=0,整理可得

pT=ΦTCaT (4)

其中,ΦT=D–1,上标T–1分别表示转置和矩阵的逆,D必须满秩。众所周知,循环矩阵的逆、乘积、和仍然是循环矩阵。因此,Φ也是由循环矩阵构成的阵列。然而,虽然矩阵D是稀疏的,但Φ通常不再稀疏而是高密度的。

令sT=CaT和pT=ΦTsT,则p=sΦ。使用C计算s涉及稀疏矩阵与向量的乘法,使用Φ计算p涉及向量与高密度矩阵的乘法。根据以上讨论,可给出一种基于二级流水线的QC-LDPC编码过程,如图1所示。

令s=(s1,s2,…,sc),则sjT是矩阵C的第j块行与aT的乘积,即

其中,1≤i≤e,1≤j≤c。sj的第n比特sj,n(1≤n≤b)为

其中,上标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的步骤如下:

第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。

pT=ΦTsT等价于p=sΦ。Φ是由c×c个b×b阶循环矩阵Φj,u(1≤j≤c,1≤u≤c)构成的阵列。令循环矩阵Φj,u的首行gj,u是其生成多项式。由p=sΦ可知,第u段校验向量满足

pu=s1Φ1,u+s2Φ2,u+…+sjΦj,u+…+scΦc,u (7)

令生成多项式gj,u=(gj,u,1,gj,u,2,…,gj,u,b),则Φj,u可视为单位矩阵循环右移版本的加权和,即

Φj,u=gj,u,1Ir(0)+gj,u,2Ir(1)+…+gj,u,bIr(b-1) (8)其中,上标r()表示循环右移。那么,式(7)等号右边的第j项可展开为

既然将sj循环右移n位等价于将它循环左移b-n位,即那么式(9)可改写为

式(10)是一个乘-加-左移-存储的过程,其实现用并行输入的乘加移位寄存器(Multiplier-Adder-Shift-Register,MASR)电路。图3是并行输入的MASR电路的功能框图,向量s以b比特为一段并行送入该电路。当用并行输入的MASR电路对校验段pu(1≤u≤c)进行编码时,生成多项式查找表预先存储矩阵Φ的第u块列的所有生成多项式,移位寄存器被清零初始化。当第1个时钟周期到来时,向量段s1移入电路,生成多项式查找表输出Φ的第1块行、第u块列的生成多项式Φ1,u的第0个比特g1,u,1,并与向量段s1进行标量乘,乘积g1,u,1s1与移位寄存器的内容0模2加,和g1,u,1s1循环左移1位的结果(0+g1,u,1s1)l(1)存回移位寄存器。当第2个时钟周期到来时,生成多项式查找表输出Φ1,u的第2个比特g1,u,2,并与向量段s1进行标量乘,乘积g1,u,2s1与移位寄存器的内容(0+g1,u,1s1)l(1)模2加,和(0+g1,u,1s1)l(1)+g1,u,2s1循环左移1位的结果((0+g1,u,1s1)l(1)+g1,u,2s1)l(1)存回移位寄存器。上述乘-加-左移-存储过程继续进行下去。当第b个时钟周期结束时,移位寄存器存储的是部分和s1Φ1,u,这是向量段s1对pu的贡献。当第b+1个时钟周期到来时,向量段s2移入电路,重复上述乘-加-左移-存储过程。当生成多项式查找表已输出Φ2,u的最后一个比特g2,u,b时,累加器存储的是部分和s1Φ1,u+s2Φ2,u。重复上述过程,直到整个向量s全部并行移入电路。此时,累加器存储的是校验段pu

图4给出了由c个并行输入的MASR构成的一种基于部分并行输入累加左移的向量与高密度矩阵乘法器,由生成多项式查找表、b位二进制乘法器、b位二进制加法器和移位寄存器四种功能模块组成。生成多项式查找表L1,L2,…,Lc分别预存矩阵Φ第1,2,…,c块列中的所有循环矩阵生成多项式。生成多项式查找表L1,L2,…,Lc输出的生成多项式比特分别与向量段sj(1≤j≤c)进行标量乘,这c个标量乘法分别通过b位二进制乘法器M1,M2,…,Mc完成。b位二进制乘法器M1,M2,…,Mc的乘积分别与移位寄存器R1,R2,…,Rc的内容相加,这c个模2加法分别通过b位二进制加法器A1,A2,…,Ac完成。b位二进制加法器A1,A2,…,Ac的和被循环左移1位后的结果分别存入移位寄存器R1,R2,…,Rc

生成多项式查找表L1,L2,…,Lc存储矩阵Φ中的循环矩阵生成多项式。生成多项式查找表L1~Lc分别存储Φ的第1~c块列中的所有生成多项式,对于任一块列,依次存储第1,2,…,c块行对应的生成多项式。生成多项式查找表L1~Lc串行输出生成多项式的比特。

使用向量与高密度矩阵的乘法器计算校验向量p的步骤如下:

第1步,清零移位寄存器R1,R2,…,Rc

第2步,输入向量段sj(1≤j≤c);

第3步,生成多项式查找表L1,L2,…,Lc分别输出矩阵Φ第j块行中第1,2,…,c块列的生成多项式比特,这些生成多项式比特分别通过b位二进制乘法器M1,M2,…,Mc与向量段sj进行标量乘,b位二进制乘法器M1,M2,…,Mc的乘积分别通过b位二进制加法器A1,A2,…,Ac与移位寄存器R1,R2,…,Rc的内容相加,b位二进制加法器A1,A2,…,Ac的和被循环左移1位后的结果分别存入移位寄存器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)。

本发明提供了一种基于二级流水线的QC-LDPC编码方法,适用于DTMB系统中的4/5码率QC-LDPC码,其编码步骤描述如下:

第1步,使用稀疏矩阵与向量的乘法器计算向量s;

第2步,使用向量与高密度矩阵的乘法器计算校验向量p。

图5总结了编码器各编码步骤以及整个编码过程所需的硬件资源消耗和处理时间。

从图5不难看出,流水线充满时,整个编码过程共需max(t–c+b,cb)=cb个时钟周期,小于基于c个SRAA-I电路的串行编码方法所需的e×b个时钟周期。对于DTMB标准中4/5码率QC-LDPC编码器,本发明的编码速度是后者的4倍。

DTMB标准中4/5码率QC-LDPC编码器的现有解决方案需要e×c×b比特ROM,而本发明需要c2b比特ROM。本发明需要较少的ROM,是现有解决方案的1/4。

综上可见,对于DTMB标准中4/5码率QC-LDPC编码器,与传统的串行SRAA法相比,本发明具有编码速度快、存储器消耗少等优点。

以上所述,仅为本发明的具体实施方式之一,但本发明的保护范围并不局限于此,任何熟悉本领域的技术人员在本发明所揭露的技术范围内,可不经过创造性劳动想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书所限定的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1