本發(fā)明涉及信道編碼領(lǐng)域,特別涉及一種DTMB系統(tǒng)中二級(jí)全并行輸入循環(huán)左移的QC-LDPC編碼器。
背景技術(shù):
低密度奇偶校驗(yàn)(Low-Density Parity-Check,LDPC)碼是高效的信道編碼技術(shù)之一,而準(zhǔn)循環(huán)LDPC(Quasi-Cyclic LDPC,QC-LDPC)碼是一種特殊的LDPC碼。QC-LDPC碼的生成矩陣G和校驗(yàn)矩陣H都是由循環(huán)矩陣構(gòu)成的陣列,具有分段循環(huán)的特點(diǎn),故被稱為QC-LDPC碼。循環(huán)矩陣的首行是末行循環(huán)右移1位的結(jié)果,其余各行都是其上一行循環(huán)右移1位的結(jié)果,因此,循環(huán)矩陣完全由其首行來(lái)表征。通常,循環(huán)矩陣的首行被稱為它的生成多項(xiàng)式。
通信系統(tǒng)通常采用系統(tǒng)形式的QC-LDPC碼,其生成矩陣G的左半部分是一個(gè)單位矩陣,右半部分是由e×c個(gè)b×b階循環(huán)矩陣Gi,j(1≤i≤e,e<j≤t,t=e+c)構(gòu)成的陣列,如下所示:
其中,I是b×b階單位矩陣,0是b×b階全零矩陣。G的連續(xù)b行和b列分別被稱為塊行和塊列。由式(1)可知,G有e塊行和t塊列。信息向量a=(a1,a2,…,ae×b)。DTMB標(biāo)準(zhǔn)采用了一種碼率η=4/5的QC-LDPC碼,對(duì)于該碼,t=59,e=48,c=11,b=127。
DTMB標(biāo)準(zhǔn)中4/5碼率QC-LDPC編碼器的現(xiàn)有全并行輸入解決方案如圖1所示,該方案的主要缺點(diǎn)是模2加法器有e×b個(gè)輸入端,加法運(yùn)算的延時(shí)長(zhǎng),會(huì)造成編碼器的工作頻率低、吞吐量小。
技術(shù)實(shí)現(xiàn)要素:
DTMB系統(tǒng)中4/5碼率QC-LDPC編碼器的現(xiàn)有實(shí)現(xiàn)方案存在工作頻率低、吞吐量小的缺點(diǎn),針對(duì)這些技術(shù)問(wèn)題,本發(fā)明提供了一種基于二級(jí)流水線的QC-LDPC編碼器。
如圖2所示,DTMB系統(tǒng)中基于二級(jí)流水線的QC-LDPC編碼器主要由2部分組成:稀疏矩陣與向量的乘法器和向量與高密度矩陣的乘法器。編碼過(guò)程分2步完成:第1步,使用稀疏矩陣與向量的乘法器計(jì)算向量s;第2步,使用向量與高密度矩陣的乘法器計(jì)算校驗(yàn)向量p。
關(guān)于本發(fā)明的優(yōu)勢(shì)與方法可通過(guò)下面的發(fā)明詳述及附圖得到進(jìn)一步的了解。
附圖說(shuō)明
圖1是現(xiàn)有的全并行輸入QC-LDPC編碼器;
圖2是基于二級(jí)流水線的QC-LDPC編碼過(guò)程;
圖3是稀疏矩陣與向量的乘法器;
圖4是一種基于全并行輸入循環(huán)左移的向量與高密度矩陣乘法器。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的較佳實(shí)施例作詳細(xì)闡述,以使本發(fā)明的優(yōu)點(diǎn)和特征能更易于被本領(lǐng)域技術(shù)人員理解,從而對(duì)本發(fā)明的保護(hù)范圍作出更為清楚明確的界定。
循環(huán)矩陣的行重和列重相同,記作w。如果w=0,那么該循環(huán)矩陣是全零矩陣。如果w=1,那么該循環(huán)矩陣是可置換的,稱為置換矩陣,它可通過(guò)對(duì)單位矩陣I循環(huán)右移若干位得到。QC-LDPC碼的校驗(yàn)矩陣H是由c×t個(gè)b×b階循環(huán)矩陣Hj,k(1≤j≤c,1≤k≤t,t=e+c)構(gòu)成的如下陣列:
通常情況下,校驗(yàn)矩陣H中的任一循環(huán)矩陣要么是全零矩陣(w=0)要么是置換矩陣(w=1)。令循環(huán)矩陣Hj,k的首行hj,k=(hj,k,1,hj,k,2,…,hj,k,b)是其生成多項(xiàng)式,其中hj,k,m=0或1(1≤m≤b)。因?yàn)镠是稀疏的,所以hj,k只有1個(gè)‘1’,甚至沒(méi)有‘1’。
H的前e塊列對(duì)應(yīng)的是信息向量a,后c塊列對(duì)應(yīng)的是校驗(yàn)向量p,碼字v=(a,p)。以b比特為一段,信息向量a被等分為e段,即a=(a1,a2,…,ae);校驗(yàn)向量p被等分為c段,即p=(p1,p2,…,pc)。將H的前e塊列和后c塊列構(gòu)成的矩陣分別記作C和D,則
H=[C D] (3)
C是由c×e個(gè)b×b階循環(huán)矩陣構(gòu)成,D是由c×c個(gè)b×b階循環(huán)矩陣構(gòu)成。將式(3)和碼字v=(a,p)代入HvΤ=0,整理可得
pΤ=ΦΤCaΤ (4)其中,ΦT=D–1,上標(biāo)T和–1分別表示轉(zhuǎn)置和矩陣的逆,D必須滿秩。眾所周知,循環(huán)矩陣的逆、乘積、和仍然是循環(huán)矩陣。因此,Φ也是由循環(huán)矩陣構(gòu)成的陣列。然而,雖然矩陣D是稀疏的,但Φ通常不再稀疏而是高密度的。
令sT=CaT和pT=ΦTsT,則p=sΦ。使用C計(jì)算s涉及稀疏矩陣與向量的乘法,使用Φ計(jì)算p涉及向量與高密度矩陣的乘法。根據(jù)以上討論,可給出一種基于二級(jí)流水線的QC-LDPC編碼過(guò)程,如圖2所示。
令s=(s1,s2,…,sc),則sjT是矩陣C的第j塊行與aT的乘積,即
其中,1≤i≤e,1≤j≤c。sj的第n比特sj,n(1≤n≤b)為
其中,上標(biāo)rs(n–1)和ls(n–1)分別表示循環(huán)右移n–1位和循環(huán)左移n–1位。既然任一循環(huán)矩陣生成多項(xiàng)式hj,i只有少量的‘1’甚至是全零,那么式(6)中的內(nèi)積可通過(guò)對(duì)循環(huán)左移寄存器的抽頭求和來(lái)實(shí)現(xiàn),如圖3所示的稀疏矩陣與向量的乘法器。稀疏矩陣與向量的乘法器由t個(gè)b比特寄存器R1,1,R1,2,…,R1,t和c個(gè)多輸入異或門X1,1,X1,2,…,X1,c組成。寄存器R1,1,R1,2,…,R1,e用于加載和循環(huán)左移信息段a1,a2,…,ae,寄存器R1,e+1,R1,e+2,…,R1,t用于存儲(chǔ)s的向量段s1,s2,…,sc。圖3中的稀疏連接取決于矩陣C中的所有循環(huán)矩陣生成多項(xiàng)式。如果hj,i,m=1(1≤m≤b),那么信息段ai的第m比特連接到異或門X1,j。因此,寄存器R1,i的所有抽頭取決于矩陣C第i塊列中所有循環(huán)矩陣生成多項(xiàng)式的非零元素所在位置,而多輸入異或門X1,j的輸入取決于矩陣C第j塊行中所有循環(huán)矩陣生成多項(xiàng)式的非零元素所在位置。如果C中的所有循環(huán)矩陣生成多項(xiàng)式共有α個(gè)‘1’,那么稀疏矩陣與向量的乘法器需要使用(α–c)個(gè)二輸入異或門同時(shí)計(jì)算s1,n,s2,n,…,sc,n。s可在b個(gè)時(shí)鐘周期內(nèi)計(jì)算完畢。使用稀疏矩陣與向量的乘法器計(jì)算向量s的步驟如下:
第1步,輸入信息段a1,a2,…,ae,將它們分別存入寄存器R1,1,R1,2,…,R1,e中;
第2步,寄存器R1,1,R1,2,…,R1,e同時(shí)循環(huán)左移1次,異或門X1,1,X1,2,…,X1,c分別將異或結(jié)果左移入寄存器R1,e+1,R1,e+2,…,R1,t中;
第3步,重復(fù)第2步b-1次,完成后,寄存器R1,e+1,R1,e+2,…,R1,t存儲(chǔ)的內(nèi)容分別是向量段s1,s2,…,sc,它們構(gòu)成了向量s。
pT=ΦTsT等價(jià)于p=sΦ。Φ是由c×c個(gè)b×b階循環(huán)矩陣Φj,u(1≤j≤c,1≤u≤c)構(gòu)成的陣列。令循環(huán)矩陣Φj,u的首行g(shù)j,u是其生成多項(xiàng)式。由p=sΦ可知,第u段校驗(yàn)向量滿足
pu=s1Φ1,u+s2Φ2,u+…+sjΦj,u+…+scΦc,u (7)
令生成多項(xiàng)式gj,u=(gj,u,1,gj,u,2,…,gj,u,b),則Φj,u可視為單位矩陣循環(huán)右移版本的加權(quán)和,即
Φj,u=gj,u,1Ir(0)+gj,u,2Ir(1)+…+gj,u,bIr(b-1) (8)
其中,上標(biāo)r()表示循環(huán)右移。那么,式(7)等號(hào)右邊的第j項(xiàng)可展開(kāi)為
既然將sj循環(huán)右移n位等價(jià)于將它循環(huán)左移b-n位,即其中,上標(biāo)l()表示循環(huán)左移,那么式(9)可改寫為
將式(10)代入式(7),整理可得
式(11)是一個(gè)乘-加-左移-存儲(chǔ)的過(guò)程,可推導(dǎo)出一種基于全并行輸入循環(huán)左移的向量與高密度矩陣乘法器。圖4是其功能框圖,由生成多項(xiàng)式查找表、b位二進(jìn)制乘法器、(c+1)位二進(jìn)制加法器和移位寄存器四種功能模塊組成。生成多項(xiàng)式查找表L1,L2,…,Lc分別預(yù)存矩陣Φ第1,2,…,c塊行中的所有循環(huán)矩陣生成多項(xiàng)式。生成多項(xiàng)式查找表L1,L2,…,Lc輸出的生成多項(xiàng)式比特分別與向量段s1,s2,…,sc進(jìn)行標(biāo)量乘,這c個(gè)標(biāo)量乘法分別通過(guò)b位二進(jìn)制乘法器M1,M2,…,Mc完成。b位二進(jìn)制乘法器M1,M2,…,Mc的乘積與移位寄存器R的內(nèi)容相加,該加法通過(guò)b個(gè)(c+1)位二進(jìn)制加法器A1,A2,…,Ab完成。(c+1)位二進(jìn)制加法器A1,A2,…,Ab的和被循環(huán)左移1位后的結(jié)果存入移位寄存器R。
生成多項(xiàng)式查找表L1,L2,…,Lc預(yù)存矩陣Φ的循環(huán)矩陣生成多項(xiàng)式。生成多項(xiàng)式查找表L1~Lc分別存儲(chǔ)Φ的第1~c塊行中的所有生成多項(xiàng)式,對(duì)于任一塊行,依次存儲(chǔ)第1,2,…,c塊列對(duì)應(yīng)的生成多項(xiàng)式。生成多項(xiàng)式查找表L1~Lc串行輸出生成多項(xiàng)式的比特。
使用向量與高密度矩陣的乘法器計(jì)算校驗(yàn)向量p的步驟如下:
第1步,全并行輸入向量s;
第2步,清零移位寄存器R;
第3步,生成多項(xiàng)式查找表L1,L2,…,Lc分別輸出矩陣Φ第u(1≤u≤c)塊列中第1,2,…,c塊行的生成多項(xiàng)式比特,這些生成多項(xiàng)式比特分別通過(guò)b位二進(jìn)制乘法器M1,M2,…,Mc與信息段s1,s2,…,sc進(jìn)行標(biāo)量乘,b位二進(jìn)制乘法器M1,M2,…,Mc的乘積通過(guò)b個(gè)(c+1)位二進(jìn)制加法器A1,A2,…,Ab與移位寄存器R的內(nèi)容相加,(c+1)位二進(jìn)制加法器A1,A2,…,Ab的和被循環(huán)左移1位后的結(jié)果存入移位寄存器R;
第4步,重復(fù)第3步b-1次,此時(shí),移位寄存器R存儲(chǔ)的是校驗(yàn)段pu;
第5步,以1為步長(zhǎng)遞增改變u的取值,重復(fù)第2~4步c-1次,移位寄存器R依次得到的是校驗(yàn)段p1,p2,…,pc,它們構(gòu)成了校驗(yàn)向量p=(p1,p2,…,pc)。
本發(fā)明提供了一種基于二級(jí)流水線的QC-LDPC編碼方法,適用于DTMB系統(tǒng)中的4/5碼率QC-LDPC碼,其編碼步驟描述如下:
第1步,使用稀疏矩陣與向量的乘法器計(jì)算向量s;
第2步,使用向量與高密度矩陣的乘法器計(jì)算校驗(yàn)向量p。
現(xiàn)有解決方案需要1個(gè)e×b位模2加法器,而本發(fā)明的第二級(jí)電路將模2加法平均分配給了b個(gè)(c+1)位模2加法器。對(duì)于DTMB標(biāo)準(zhǔn)中4/5碼率QC-LDPC編碼器,(c+1)遠(yuǎn)遠(yuǎn)小于e×b??梢?jiàn),本發(fā)明的加法器延時(shí)遠(yuǎn)小于現(xiàn)有解決方案。
綜上可見(jiàn),對(duì)于DTMB標(biāo)準(zhǔn)中4/5碼率QC-LDPC編碼器,與現(xiàn)有解決方案相比,本發(fā)明極大地縮短了邏輯電路的延時(shí),具有工作頻率高、吞吐量大等優(yōu)點(diǎn)。
以上所述,僅為本發(fā)明的具體實(shí)施方式之一,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本領(lǐng)域的技術(shù)人員在本發(fā)明所揭露的技術(shù)范圍內(nèi),可不經(jīng)過(guò)創(chuàng)造性勞動(dòng)想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求書所限定的保護(hù)范圍為準(zhǔn)。