伍建輝 王 毅
(西安電子工程研究所 西安 710100)
無線信道的數(shù)據(jù)傳輸非常復(fù)雜,存在著一些不確定的干擾因素使信號產(chǎn)生衰落,這樣就會使接收端恢復(fù)出來數(shù)據(jù)出現(xiàn)突發(fā)性的錯碼,嚴重干擾時所引起的信號深度衰落可能會引起大量的、成片突發(fā)性錯碼,由此數(shù)據(jù)傳輸會受到嚴重的影響。因此為了提高數(shù)據(jù)的抗干擾能力和傳輸?shù)目煽啃?,一般采用合適的信道編解碼技術(shù)來檢測和糾正信號衰落所產(chǎn)生的隨機和突發(fā)性錯碼,來保證數(shù)字信號的傳輸質(zhì)量[1]。
Shannon信道編碼定理指出,隨著碼長的增加,譯碼錯誤概率以指數(shù)方式趨近于零。因此為使糾錯碼有效就必須使用長碼,但碼長的增加使碼率相應(yīng)下降,譯碼設(shè)備復(fù)雜性與計算量也相應(yīng)增加以至于系統(tǒng)難以實現(xiàn)。為了解決碼長與系統(tǒng)實現(xiàn)之間的矛盾,1966年Forney提出了級聯(lián)碼的方案,它是用兩次或更多次編碼的方法組合成很長的分組碼,以實現(xiàn)Shannon信道編碼定理所要求的增加碼長實現(xiàn)有效而可靠通信的目的[2]。在實際工程應(yīng)用中,最常用的是兩級編碼和譯碼,其中第一級為外碼,第二級為內(nèi)碼,內(nèi)外碼有多種組合,工程上結(jié)合各種編碼方式的優(yōu)缺點,級聯(lián)碼主要采用以下幾種方式:
a.RS碼+分組碼
b.RS碼+卷積碼
c.RS碼+交織碼+卷積碼(超糾錯能力)
d.卷積碼+卷積碼
e.卷積碼+交織碼
其中方式c是一種具有超強糾錯能力的級聯(lián)碼形式,結(jié)構(gòu)如圖1所示。
圖1 典型的級聯(lián)碼結(jié)構(gòu)示意圖
無線通信系統(tǒng)可以根據(jù)對糾錯能力的要求選取圖1級聯(lián)碼的全部或者部分作為差錯控制方案,盡可能的消除數(shù)據(jù)傳輸過程中的隨機差錯與突發(fā)差錯,保證可靠的數(shù)據(jù)傳輸。
在本文涉及的無線通信系統(tǒng)中,上行幀格式64bit,通過RS編碼后的序列太長,如果采用圖1的級聯(lián)碼結(jié)構(gòu),編譯碼時間超出了系統(tǒng)所要求的通信時間,不符合指標(biāo)要求,經(jīng)權(quán)衡采用圖2所示的簡化級聯(lián)碼方案。
對于圖2的卷積碼+交織碼方式的級聯(lián)碼,下面分別從兩個方面來討論它的具體選型。
卷積碼的格式的選擇主要是考慮以下幾點:
圖2 簡化的級聯(lián)碼方案
a. 對于(n,k,m)的卷積碼,k為輸入位寬,n 為輸出位寬,m為約束長度。(n,k,m)格式的卷積碼共有2km個狀態(tài),viterbi譯碼器的復(fù)雜性隨2km指數(shù)增加,為了不使譯碼器太復(fù)雜、成本太高,一般要求約束長度m<10。
b.若采用m>10的卷積碼,譯碼須采用序列譯碼算法,它是基于碼樹結(jié)構(gòu)上的準(zhǔn)最佳概率譯碼,雖然誤碼率較m<10的viterbi譯碼算法有所下降,但從譯碼速度、復(fù)雜性、成本、資源占用等方面考慮,采用m<10的卷積碼更為有利。另外,m<10的viterbi譯碼算法是基于網(wǎng)格圖上的一種最大似然譯碼,同時也是一種最佳的概率譯碼方法,它比序列譯碼算法效率更高,速度更快,譯碼器也較為簡單。所以針對項目實際要求提出m<10的卷積碼方案。
c.在AWGN信道中viterbi譯碼器輸出的誤碼率可近似表示為:[3]
其中R是卷積碼的碼率;df是碼的自由距離;Bdf是卷積碼碼字中,所有重量為df碼字的非零信息位的總數(shù)。
由誤碼率公式可知,無論采用軟判決還是硬判決VB譯碼器的pb主要由df決定,隨著df的增加,pb指數(shù)下降。碼率R=1/2的卷積碼誤碼率的特征參數(shù)如下表1所示。
表1 卷積碼的特征參數(shù)(R=1/2)
由圖3可以看出,約束長度m=9對應(yīng)的誤碼率最小,所以選擇(2,1,9)格式的卷積碼是最佳選擇。
a.數(shù)據(jù)交織的必要性
在空間無線通信信道中不但存在隨機差錯,還存在由外來的脈沖干擾引起突發(fā)差錯,同時同頻道干擾、相位噪聲、多徑和衰落信道等都會引起突發(fā)差錯,這種干擾有一個共同的特點就是發(fā)生的差錯具有很強的相關(guān)性,當(dāng)發(fā)生一個差錯時,往往波及后面的很多數(shù)據(jù),導(dǎo)致一片數(shù)據(jù)都發(fā)生錯誤,使突發(fā)錯誤的數(shù)目超過了糾錯碼的糾錯能力。而且某些譯碼算法也會產(chǎn)生突發(fā)錯誤,比如Viterbi譯碼可能產(chǎn)生突發(fā)差錯的情況,添加交織編碼后,它可使突發(fā)錯誤分散化,使本不可糾的錯誤變?yōu)榭杉m的錯誤,系統(tǒng)的糾錯性能可以提高好幾個數(shù)量級。而且交織不會引入冗余碼,所以也就不會降低頻譜利用率。
圖3 不同約束長度下的誤碼率(R=1/2)
b.交織方式的選擇
交織編碼根據(jù)交織圖案形式的不同,可分為線性交織、卷積交織和偽隨機交織。其中線性交織是一種工程上比較常見的方式,實現(xiàn)較為容易[4,5]。本項目擬采用線性交織。線性交織編碼器就是把糾錯編碼的輸出信號均勻分成q個碼組,每個碼組由p段數(shù)據(jù)構(gòu)成,形成一個p×q的矩陣,即交織矩陣。數(shù)據(jù)按列依次進入,輸出按行依次讀出,其中p為交織深度。
交織器的設(shè)計基于以下考慮:
a.最大程度的置亂原來幀數(shù)據(jù)的排列順序,避免置換前相距較近的數(shù)據(jù)在置換后仍然相距較近,特別避免交織前數(shù)據(jù)在交織后再次相鄰。
b.級聯(lián)編碼是以幀為單位進行編譯碼,應(yīng)使交織深度在滿足系統(tǒng)時延的前提下必須根據(jù)信道中突發(fā)誤碼的長度、出現(xiàn)的頻率以及糾錯碼的約束長度、糾錯能力適當(dāng)選擇較大的交織圖案,以提高糾正突發(fā)差錯能力。
由于本文的通信系統(tǒng)上行幀數(shù)據(jù)為64 bit,它共有32×2、16×4、8×8、4×16、2×32五種塊交織方案供選擇。表2是隨機的產(chǎn)生多組數(shù)據(jù)經(jīng)卷積后采用不同的線性交織結(jié)構(gòu),數(shù)據(jù)不動點的個數(shù)與交織前后數(shù)據(jù)序列的互相關(guān)系數(shù)均值的比較。
表2 不同的線性交織結(jié)構(gòu)比較
由表2可以看出,16×4,8×8,4×16這三種交織方式互相關(guān)系數(shù)均值較小,從不動點數(shù)據(jù)個數(shù)考慮,16×4,4×16優(yōu)于8×8交織,最后根據(jù)卷積碼的約束長度,交織深度p應(yīng)大于(2,1,9)卷積碼的約束長度9(因為交織深度p大于約束長度可以有效的將連續(xù)誤碼分散成非連續(xù)誤碼,增大卷積碼的約束長度),最終確定16×4交織結(jié)構(gòu)是最為合理的交織方案。
卷積碼既可以用于糾錯又可以用于檢錯,即對于最小漢明距離為 dmin的(n,k,m)卷積碼,能在m個連續(xù)段內(nèi)糾正個隨機錯誤;若用于檢錯,則可以檢測出m個相鄰段內(nèi)的(dmin-1)個錯誤。特別是針對卷積碼的概率譯碼常用自由距離df來衡量糾錯性能,df越大,糾錯能力越強。
交織編碼的糾錯能力在于對本可糾正t個錯誤的卷積碼,經(jīng)交織深度為p的交織后,就可以糾正所有長度≤pt的突發(fā)錯誤[3]。
總體來說,煤樣在不同浸泡時間下的單軸壓縮曲線具有相似的特征,在受載初期單軸壓縮曲線均呈上凸型,達到峰值應(yīng)力以后又迅速跌落。說明無論是自然煤樣還是有機/酸復(fù)合溶液浸泡后煤樣均具有一定程度的壓密階段和脆性特征,不同的是,隨著浸泡時間的增加,煤樣的彈性模量和峰值強度逐漸減小,而峰值應(yīng)變和總應(yīng)變呈增加的趨勢。
根據(jù)以上理論對于本方案選定的(2,1,9)卷積碼,最小漢明距離為dmin≈df=12,所以它能在9個連續(xù)段內(nèi)糾正個隨機錯誤。
由以上討論可知,糾錯方案已選定為在發(fā)送端采用(2,1,9)格式的卷積碼與16×4的交織編碼,接收端采用對應(yīng)的解交織以及最大似然譯碼的viterbi譯碼,圖4是整個級聯(lián)碼方案用硬件語言實現(xiàn)后綜合的頂層電路圖。
圖4包括4 個模塊,convolution-219 是(2,1,9)格式的卷積編碼模塊,interleaver-16x4是16x4的線性交織模塊,interleaver-jie-16x4是16x4的解交織模塊,vb-decode-219是針對(2,1,9)卷積編碼的vb譯碼模塊。
級聯(lián)碼編譯碼模塊中的核心模塊是vb-decode-219譯碼器,圖5是VB譯碼器FPGA實現(xiàn)的總體架構(gòu)圖,它主要由BMG(分支度量發(fā)生器)、ACS(加比選)、RAM Metric(度量存儲單元)、RAM Survivor(幸存路徑存儲單元)、Traceback(回溯單元)、MMU(存儲管理單元)和 CONTROL(控制單元)七部分組成。
以上各個模塊的工作簡述如下:
a.BMG(分支度量發(fā)生器)是計算譯碼輸入和卷積碼網(wǎng)格圖各狀態(tài)分支之間的距離度量值,為后繼的ACS單元提供輸入。
b.ACS(加比選)是Viterbi算法中的基本運算單元,它根據(jù)VB譯碼原理,將支路度量和前一時刻相應(yīng)的路徑度量相加并比較,得到本時刻的新的路徑度量和相應(yīng)的判決比特。
d.RAM Survivor(幸存路徑存儲單元):存儲ACS單元生成的判決比特以供搜索幸存路徑用。
e.Traceback(回溯單元)是幸存路徑搜索的一種基本方式。
f.MMU(存儲管理單元)控制幸存路徑存儲單元的操作。
g.CONTROL(控制單元)產(chǎn)生VB譯碼所需的各種控制信號以控制和協(xié)調(diào)譯碼器各模塊的工作時序。
圖6是vb-decoder-219模塊的綜合展開電路圖。
圖7是對圖6中的分支度量模塊(METRICMEMORY)與加比選(ACS)兩個模塊放大圖。
針對上面各個模塊的仿真這里就不逐一進行,下面只對級聯(lián)碼的編譯碼頂層設(shè)計做一仿真。圖8為無線通信中上行一幀數(shù)據(jù)(64bits)經(jīng)過級聯(lián)編譯碼后在modesim中的仿真圖。
其中X為輸入信息碼元;Y為卷積編碼后信號;Y-jiaozhi是經(jīng)過線性交織后的信號;y-jiejiaozhi是接收端解交織后的數(shù)據(jù);DecodeOut是VB譯碼后的數(shù)據(jù);另外 VB譯碼時鐘為10M,數(shù)據(jù)速率為30Kbps。
圖6 vb-decoder-219模塊的綜合展開圖
由圖 8 可見原始信息數(shù)據(jù) X=(1,1,1,1,1,0,0,0,1,0,1,0,1,1,0…)經(jīng) viterbi譯碼后的 Decode-Out=(1,1,1,1,1,0,0,0,1,0,1,0,1,1,0…),兩者完全一致,且發(fā)送端從一幀數(shù)據(jù)的編碼到接收端譯碼結(jié)束大約需要8.4ms的時間(未考慮信道傳輸時間等)。
另外通過用大量的實采數(shù)據(jù)作為參考,系統(tǒng)在不加級聯(lián)碼與系統(tǒng)采用級聯(lián)碼兩種方式下的誤碼率進行對比發(fā)現(xiàn),在相同的信噪比條件下,采用級聯(lián)碼糾錯方案后信道傳輸?shù)恼`碼率從原來10-5降至10-6左右,很好的改善了系統(tǒng)的糾錯性能。
無線通信信道在接收端既有由高斯白噪聲引發(fā)的隨機性錯誤又有由脈沖噪聲帶來的突發(fā)性錯誤。為保證信息傳輸?shù)目煽啃院蜏?zhǔn)確性,借助本文所述的級聯(lián)碼方案,通過計算機仿真,結(jié)果表明級聯(lián)碼對于衰落的無線通信信道來說確實是一種十分有效的差錯控制手段。
[1]傅祖蕓,趙建中.信息論與編碼[M].北京:電子工業(yè)出版社,2006.
[2]王育民,李暉,梁傳甲.信息論與編碼理論[M].北京:高等教育出版社,2005.
[3]王新梅,肖國鎮(zhèn).糾錯碼原理與方法[M].西安:西安電子科技大學(xué)出版社,2001.
[4]付天暉,王永斌,張文娟.級聯(lián)碼與交織技術(shù)在甚低頻對潛通信中的性能研究[J].無線通信技術(shù),2006,(4).
[5]王霞,張傳生.級聯(lián)碼結(jié)合交織技術(shù)的糾錯性能研究[J].無線通信技術(shù),2000,(2).