譚澤富 謝 紅
(1.重慶郵電大學(xué)通信與信息工程學(xué)院,重慶 400065)
(2.重慶三峽學(xué)院物理與電子工程學(xué)院,重慶 404100)
全球移動由中國國家廣電總局發(fā)布的行業(yè)標(biāo)準(zhǔn)CMMB(China Mobile Multimedia Broad-Casting,中國移動多媒體廣播)采用衛(wèi)星和地面網(wǎng)絡(luò)相結(jié)合的“天地一體、星網(wǎng)結(jié)合、統(tǒng)一標(biāo)準(zhǔn)、全國漫游”的技術(shù)體系,可實現(xiàn)我國幅員遼闊,環(huán)境復(fù)雜的有效覆蓋.其核心技術(shù)——STiMi技術(shù),與大多數(shù)其他移動多媒體標(biāo)準(zhǔn)一樣,采用具有高性能的RS碼作為外碼.不同的是,它采用LDPC碼作為內(nèi)碼,與RS碼一起構(gòu)成CMMB的兩級信道編碼體系,兩級信道編碼在通信系統(tǒng)中可以有效抵抗干擾,其支持移動性的能力要好于一級信道編碼.
RS碼是一種特殊的分組線性碼,由于它編碼簡單、構(gòu)造方便,并且代數(shù)結(jié)構(gòu)非常嚴(yán)格,所以在同樣的編碼冗余度下,RS碼的糾錯能力最強,特別是在短的中等碼長下,其編碼性能幾乎接近于理論值,[1]故在無線通信領(lǐng)域中得到非常廣泛的應(yīng)用.本文探討了CMMB系統(tǒng)中RS編碼的基本原理,并根據(jù)其原理,給出了基于FPGA的RS編碼器的設(shè)計.
RS(Reed Solomon)碼是一類糾錯能力極強的多進制BCH循環(huán)碼,能糾正多個錯誤,特別針對大容量的存儲設(shè)備,無線和移動通信設(shè)施,數(shù)字電視(DTV),衛(wèi)星通信,數(shù)字視頻廣播(DVB)和寬帶調(diào)制解調(diào)器等突發(fā)性錯誤.
在CMMB系統(tǒng)中,RS編碼器并不是完全獨立的,通常和字節(jié)交織器一起使用,如圖1所示.來自上層的比特數(shù)據(jù)流按低位優(yōu)先的方式劃分為字節(jié),逐字節(jié)從左至右按列填滿字節(jié)交織器的信息區(qū)(圖1中白色區(qū)域),然后按行進行RS編碼,字節(jié)交織器的校驗區(qū)(圖1中灰色區(qū)域)為RS碼字的校驗字節(jié),每個RS碼字的校驗序列和該碼字的信息序列在字節(jié)交織器的同一行,當(dāng)編碼完成之后,字節(jié)交織器中的數(shù)據(jù)就會逐字節(jié)按列從左至右取出.CMMB中采用的編碼長為240字節(jié)的RS(240, K)截短碼,該RS碼由原始RS(255, I)系統(tǒng)碼通過截短產(chǎn)生,其中 I=K+15.K為一個碼字中信息序列的字節(jié)數(shù),校驗字節(jié)數(shù)為240-K.RS(240, K)碼有4種工作模式,分別對應(yīng)的K值為240,224,192,176.其中碼的糾錯能力為(240-K)/2個字節(jié).很明顯,K越小,該RS碼的糾錯能力就越強,但信息冗余會相應(yīng)地增大.[2]
根據(jù)CMMB標(biāo)準(zhǔn)規(guī)定每個經(jīng)過隨機化的K = 240,K = 224,K = 192,K = 176字節(jié)的傳輸包都要進行RS編碼.經(jīng)過RS編碼,每個傳輸包后面分別增加0,l6,48,64個校驗字節(jié),成為240個字節(jié)組成的錯誤保護包,記為RS(240, K).當(dāng)K = 224時,RS (240, 224)就具有t = (240-224)/2 = 8字節(jié)的糾錯能力.
圖1 字節(jié)交織和RS編碼
RS (255, K)碼是基于有限域GF (256)的循環(huán)碼,集合GF (256)包含的元素為:
截短碼RS(240, K)的生成多項式表示為:
輸入的信息序列多項式表示為:
輸出的系統(tǒng)碼多項式為:
其中
在一些特定的應(yīng)用域中,RS碼的設(shè)計與實現(xiàn)是比較困難的.RS碼由于在有限域上進行的代數(shù)運算,因而與其他常用的二進制系統(tǒng)有所不同,實現(xiàn)相對復(fù)雜一些,其復(fù)雜度主要取決于有限域的大小、碼字的長度、采用的編碼算法等.編碼器的實現(xiàn)方式主要有:微處理器實現(xiàn)、DSP實現(xiàn)、ASIC實現(xiàn)和FPGA實現(xiàn).[3]其中利用FPGA實現(xiàn)CMMB系統(tǒng)中RS編碼是最簡單的方法.FPGA能夠既快速又經(jīng)濟地將電路描述轉(zhuǎn)化為硬件實現(xiàn),而且對設(shè)計的修訂也比較方便.而通常的ASIC需要的設(shè)計時間較長,成本高,靈活性差,所以本文是基于FPGA設(shè)計RS編碼的結(jié)構(gòu).
令CMMB系統(tǒng)中RS (240, K)碼的K個信息符號序列m=(mk-1,mk-2,…,m1,m0),該信息的多項式可以用(1)式表示,首先將 m(x)左移240-k位得到多項式 m(x)x240-k,然后將它與生成多項式 g(x)相除,就可以得到RS編碼后的多項式c(x),其中 r(x)為效驗多項式,是 m(x)x240-k除以g(x)后的余式,其次數(shù)低于240-k.當(dāng)且僅當(dāng)域元素(c0 ,c1, …,c 239)組成的向量是生成多項式g(x)的倍數(shù)時,此向量才能為碼字,當(dāng)在 CMMB系統(tǒng)中能完全糾正(24 0-k)/2個錯誤時,RS編碼的生成多項式的表達(dá)式為:
其中α是有限域 GF (2m)的元素.設(shè)輸入信息碼為 m(x),編碼后的碼組為 c(x),則
因為c(x )=m(x)x240-k+ r(x ),r(x)為多項式
m(x)x240-k除以 g(x)的余式.因此可以用240-k階除法電路構(gòu)成編碼器.又由于生成多項式
所以RS編碼器的結(jié)構(gòu)圖可以設(shè)計為如圖2所示.
圖2 RS編碼器結(jié)構(gòu)圖
此編碼器的工作原理為:
1)將寄存器b0,b1 , …, b 239-k全部清零,打開門1,關(guān)閉門2,然后送入信息碼組 m0, m1 , … ,mk-1.信息碼組在電路中被分為兩路,一路經(jīng)過數(shù)據(jù)選擇器直接輸出,一路乘以 x240-k后進入 g(x)除法電路并移位,每個時鐘移一個字節(jié).
2)經(jīng)k次移位后,信息碼組全部進入電路,然后完成除法運算,此時電路中移位寄存器內(nèi)保存的就是余式 r(x)的系數(shù),也就是RS碼的效驗碼組.
3)當(dāng)k+1個時鐘到來時,信息碼組暫停輸入,關(guān)閉門1,打開門2,這時經(jīng)過240-k次移位后的數(shù)據(jù)全部移出,得到240-k個效驗碼組,跟在原來長為k的信息碼組后面,就組成(24 0,k)碼輸出,這就完成了RS碼的一組編碼.
4)寄存器 b0,b1 , …, b 239-k全部清零,重復(fù)步驟(1)、(2)、(3),繼續(xù)對下一組RS碼進行編碼.
從 RS編碼器結(jié)構(gòu)圖可以看出編碼器包含240-k個有限域乘法器,有限域乘法器是實現(xiàn)RS編碼器的關(guān)鍵.它一般可以用查表法,線性反饋移位寄存器法[4],Messey-Omura法[5]和Berlekamp位串法[1,6]實現(xiàn).為了實現(xiàn)高速可靠的計算,本文所使用的乘法器為并行結(jié)構(gòu),乘數(shù)與被乘數(shù)均使用標(biāo)準(zhǔn)基表示,不需要基與基之間的轉(zhuǎn)換,其應(yīng)用廣泛,結(jié)構(gòu)簡單,且易于擴展至高階有限域中.
CMMB系統(tǒng)中的RS碼是基于有限 GF (28)的,GF (28)域中,本原多項式為x8+ x 4+ x3+ x2+1=0設(shè)a,b,c ∈GF (28),且c=a×b, GF (28)中的任何元素都可以表示為x的0~7次方的組合.
式中的⊕表示異或運算,可見結(jié)構(gòu)中的乘法運算轉(zhuǎn)換成了一組數(shù)字邏輯運算,而且結(jié)構(gòu)簡單,易于實現(xiàn).盡管在實現(xiàn)邏輯運算時需要較多的門數(shù),但可以節(jié)約大量的寄存器,從而可以明顯減少芯片的面積.
當(dāng)傳輸CMMB信號數(shù)據(jù)流時,傳輸信道中存在著各種干擾,嚴(yán)重影響傳輸信號的質(zhì)量.為了提高數(shù)據(jù)的抗干擾能力及傳輸?shù)目煽啃?,必須對信號?shù)據(jù)進行RS糾錯編碼處理,這種編碼具有發(fā)現(xiàn)和修正信號在傳輸過程中產(chǎn)生誤碼的功能,從而提高了CMMB的通信質(zhì)量.本設(shè)計實現(xiàn)了CMMB系統(tǒng)中RS(240, K)的編碼器設(shè)計,并通過FPGA來實現(xiàn),與其他實現(xiàn)方法相比,用FPGA實現(xiàn)的RS編碼電路更為簡單,成本更低.其中乘法器是電路中的關(guān)鍵部分,合理的選擇乘法器可以高速可靠的完成乘法運算,最終完成差錯率低,延遲小的RS編碼.
[1]王新梅,肖國鎮(zhèn)編著.糾錯碼-原理與方法[M].西安:西安電子科技大學(xué)出版社,2002.
[2]中華人民共和國廣播電影電視行業(yè)標(biāo) GY/T 220.1-2006,CMMB廣播信道幀結(jié)構(gòu)、信道編碼和調(diào)制[S]. 2006.
[3]何秋陽.基于FPGA的RS編碼器的設(shè)計與實現(xiàn)[J].電子科技,2009,22(2):44-46.
[4]Laws Jr BA,Rushforth C K.. A cellular-array multiplier for GF(2m)[J]. IEEE Trans Computer.1971.
[5]Wang C C.. VLSI architectures for computing multiplications and inverses in GF(2m)[J].IEEE Trans Computer,1985,34(8).
[6]Berlekamp E R.. Bit-serial Reed-Solomon encoders[J]. IEEE Trans Information Theory,1982,28(6).