用FPGA在數(shù)字電視系統(tǒng)中進行級聯(lián)編碼
數(shù)字電視地面?zhèn)鬏斚到y(tǒng)是一個無線通信系統(tǒng)。無線信道中,由于環(huán)境的影響,以及外來無線信號的干擾,通信質量較有線信道差許多。為了提高系統(tǒng)的抗噪聲性能,必須設計合理的信道編譯碼部分,要求不但可以糾隨機錯,更重要是可以糾突發(fā)錯。因為在許多同時出現(xiàn)隨機錯誤和突發(fā)錯誤的復合信道上,往往發(fā)生一個錯誤會波及后面一串數(shù)據(jù),導致突發(fā)誤碼超過糾錯碼的糾錯能力。
糾正突發(fā)錯誤的一種有效方法是以一個可以糾正隨機錯誤的碼為內碼,而以一個糾正突發(fā)錯誤性能良好的碼作為外碼,構成兩級級聯(lián)的編碼方式。內碼起到為外碼糾正突發(fā)錯誤而清除離散誤碼的作用,從而提高信道整體糾錯能力。本文基于數(shù)字電視地面?zhèn)鬏斚到y(tǒng)的基帶編碼方案來介紹串型級聯(lián)碼的應用。
原理
由信道編碼理論可知,隨著碼長n的增加,譯碼錯誤概率以指數(shù)方式趨近于零。因此為提高糾錯碼有效性,就必須使用長碼。但碼長增加,碼率會相應下降,譯碼設備復雜性與計算量也相應增加,以致難以實現(xiàn)。FORNEY于1966年提出了級聯(lián)碼的概念,有針對性的解決了這一矛盾。該方法將編碼過程分為前后串行的幾級完成,可以滿足信道糾錯對編碼長度的要求,得到與長碼相同的糾錯能力和高的編碼增益;而且不增加編/譯碼復雜度。利用級聯(lián)碼,通過合理的構造方法可以達到信道編碼定理給出的碼限,構造出漸近好碼(SHANNON碼)。
如圖1所示,級聯(lián)碼一般由內碼和外碼兩級組成,內碼是GF(2)上的一個[n,k]碼,外碼是GF(2k)上的[N,K]碼,編碼規(guī)則如下:
(1)先將Kk個二進制信息元劃分成K段,每段有k個信息元。
(2)每段的k個信息元可看成是GF(2k)上的一個符號。將K個符號按外碼的編碼規(guī)則編成一個外碼,碼長為N,有K個信息符號,N-K個校驗符號,最小碼距為do,碼率Ro=K/N。
(3)外碼的每一個符號,看成是k個二進制碼元的碼組,輸入內碼編碼器,得到一個內碼,碼長為n,有n-k個校驗元,最小碼距為di,碼率Ri=k/n,由此得到N個[n,k]內碼的碼字序列。兩級編碼總共得到Nn個二進制碼元,Kk個信息元,組成[Nn,Kk,dodi]級聯(lián)碼的碼。
由上可知二級級聯(lián)碼是一個[Nn,Kk,dodi]二進制線性分組碼,碼率R=RoRi。
級聯(lián)碼的譯碼也對應采用分級處理。先按內碼的規(guī)則譯碼,得到N個有k個碼元組成的碼后,再送入外譯碼器,最后由外譯碼器輸出的是經過糾錯的Kk個信息元。
兩級級聯(lián)編碼時,如果信道產生少量的隨機錯誤,通過內碼就可以糾錯,當產生較長的突發(fā)錯誤或隨機錯誤很多,已經超過內碼的糾錯能力時,內譯碼器輸出的碼子會有少量的幾個錯誤。這僅相當于外碼的幾個符號錯誤,所以外碼譯碼器能較容易地糾錯??梢钥闯?,級聯(lián)碼用來糾正錯誤情況嚴重的組合信道錯誤非常有效。
級聯(lián)碼的實現(xiàn)中,內碼既可以做純糾錯,也可以用做糾錯與檢錯,但一般情況下,級聯(lián)碼被用在組合信道中,內碼中的某些碼子錯誤很多,往往超過了內碼的糾錯能力。所以,內碼通常僅用來糾正少量錯誤,其主要能力用來檢錯,指出錯誤位置;糾錯任務則由外碼譯碼器完成。這樣兩級譯碼的結果,得到了好的糾錯效果,還使得內/外譯碼器均較簡單,內譯碼器是檢錯譯碼器,外譯碼器是糾錯譯碼器。 本質上講,級聯(lián)碼編碼是一種直接序列擴頻系統(tǒng),它把每個外碼的碼元,用碼長為n的內碼碼子填充,使得系統(tǒng)的帶寬擴展,從而提高了系統(tǒng)的抗干擾能力。
FPGA設計
在數(shù)字電視地面?zhèn)鬏斚到y(tǒng)中,所用的級聯(lián)碼是外碼為RS(204,188)線性分組碼,內碼為碼率可變的(2,1,6)卷積碼,交織為卷積交織。
這里只介紹編碼器端設計,至于譯碼端電路,由于譯碼方法比較多,電路設計不同,不同方案譯碼性能也有很大差距,這里就不作介紹了。
Reed_Solomen碼(簡稱RS碼)是一種多進制的BCH碼,在線性分組碼中它的糾錯能力和編碼效率是最高的,所以選擇它作為外碼。本方案中的RS(204,188,T=16)是RS(255,239,T=16)的截斷碼。將188字節(jié)的數(shù)據(jù)傳送包隨機化后,輸入編碼器,通過RS編碼生成16字節(jié)的監(jiān)督元,最后和188字節(jié)信息元組成RS碼。其碼長204字節(jié),可糾8字節(jié)長的隨機錯誤或突發(fā)錯誤,每個碼元都是有限域GF(256)上的元素。若設m(x)是信息多項式,g(x)是碼生成多項式,C(x)是碼多項式,整個編碼步驟如下。
(1)先用X乘m(x),實際上是把信息碼后附加(n-k)個“0”。
(2)再用g(x)除X,得到商Q(x)和余式r(x),即
Xm(x)/g(x)=Q(x)+r(x)/g(x)
(3)編出碼多項式C(x)
C(x)=Xm(x)+r(x)
根據(jù)其編碼步驟,采用有限域除法電路即可實現(xiàn)RS編碼,如圖2所示。
編碼電路的工作過程是,首先對所有寄存器置零,開關接至數(shù)據(jù)處,此時門連通;然后數(shù)據(jù)依次送入電路,同時送到輸出端;當188字節(jié)信息輸入完畢后,開關切換至校驗端,此時門斷開,b0,b1,…,b15里寄存的數(shù)據(jù)就是所需的校驗碼元,順序輸出后就得到全部204字節(jié)的RS編碼碼字。
卷積碼是一種有記憶的編碼,在任意給定的時間單元,編碼器的n個輸出碼字不僅與此時間單元的k個輸入有關,而且也與前m個輸入有關。目前國際上很多通信系統(tǒng)中首選的標準卷積碼為(2,1,6)碼,該碼能使誤碼率達到最小,且能克服相位誤差。所以在本方案中內碼采用(2,1,6)碼,子生成元為(171,133)均為8進制。若通過一個鑿孔單元對(2,1,6)碼刪余,還可實現(xiàn)高碼率傳輸,且在提高碼率的情況下不增加譯碼器的復雜性。所以整個電路主要由主卷積編碼電路、控制電路和鑿孔單元電路構成。主卷積編碼實現(xiàn)碼率R=1/2的卷積編碼,然后用一個鑿孔電路按規(guī)則要求對輸出碼字中的特定位置予以刪除,以產生較高碼率,例如2/3,3/4等碼率的卷積碼。主卷積碼(1/2碼率)的實現(xiàn)由6個移位寄存器構成,如圖3示。
在兩級編碼之間,還進行了數(shù)據(jù)交織,以進一步提高編碼抗干擾性能。可以采用分組交織器,通過一個讀寫地址產生器控制數(shù)據(jù)按照不同的順序寫入和讀出存儲器,從而達到數(shù)據(jù)亂序的目的,交織深度M=102,可以滿足使用要求。
結論
在現(xiàn)代通信系統(tǒng)中,信道編碼技術已經得到了廣泛的應用。編碼問題就是在一定的抗干擾能力要求下,合理設計和選擇多余度最小碼字的問題,也就是如何使可靠性和有效性能夠合理兼顧的問題。串型級聯(lián)編碼很好地解決了組合信道錯誤,使通信系統(tǒng)具有良好的抗干擾能力,短碼的利用也提高了傳輸碼率(相對同樣糾錯效果的長碼),串型級聯(lián)碼還有效地控制了信道編碼設備的復雜性。
參考文獻
1 王新梅,肖國鎮(zhèn).《糾錯碼原理與方法》.西安電子科技大學出版社,1996
2 Digital Video Broadcasting (DVB),1997
3 張鳴瑞,鄒世開.《編碼理論》.北京航空航天大學出版社,1990
4 鄒翊匡鏡明,利用FPGA技術實現(xiàn)數(shù)字通信中的交織器和解交織器,《電子技術應用》
評論