顧天一,郭 英,張 波,蔡 斌
(空軍工程大學電訊工程學院,陜西 西安 710077)
自組網無線擴頻系統在信道傳輸過程中存在突發(fā)錯誤和隨機錯誤,影響了系統的抗干擾性能,降低了系統信息傳輸的可靠性。這就需要在自組網無線擴頻系統中加入糾錯編碼,以提高系統傳輸信道的性能和抗干擾能力。在無線通信中,糾錯編碼技術被用來檢查和糾正非理想無線信道帶來的信息差錯,它是提高信息傳輸可靠性的一種重要手段,其中RS碼是一種前向糾錯的信道編碼,既能糾正隨機錯誤,又能糾正突發(fā)錯誤,在同樣的編碼效率下,RS碼具有最強的糾錯能力。RS碼是現代數據通信和媒體中應用極其廣泛的信道糾錯編碼。自其研發(fā)至今的幾十年內,在IBM硬盤的編碼中,在阿波羅登月計劃中,在光盤的編碼和高清晰度電視信道編碼中都使用了RS編碼[1]。在RS編譯碼的過程中,BM迭代譯碼算法是決定RS譯碼過程中譯碼器的復雜度和譯碼速度的關鍵。1966年Berlekamp提出了由S求σ(x)的迭代譯碼算法,極大地加快了求σ(x)的速度,實現也比較簡單,且易于用計算機完成譯碼,因而從工程上解決了RS的譯碼問題。1969年Massey指出了迭代譯碼算法與序列的最短移位寄存器綜合之間的關系,并進行了簡化,自此稱這種譯碼算法為Berlekamp-Massey算法。
本文以自組網擴頻定位通信系統為設計應用背景,分析了系統中各個模塊的設計方式,并對RS碼譯碼中的BM迭代譯碼算法進行了優(yōu)化,最后對系統加載不同長度的RS碼進行仿真,驗證其降低系統誤碼率的效能。
無線擴頻通信系統原理圖如圖1所示。其中,信源采用二進制隨機數;信道編碼可采用RS編碼、卷積碼或更復雜的編碼組合;擴頻采用m序列、walsh碼、gold碼等,或者采用多進制的正交碼或軟擴頻方式;組幀設計合理的幀結構,包括幀頭、導頻碼、循環(huán)前綴的設計以及數據幀長度、目的地址等;成型濾波采用升余弦滾降濾波器;調制可采用DPSK,MSK,OFDM等;信道為AWGN信道、多徑信道等;下變頻DDS包括濾波器的設計;信號檢測用來檢測信號幀頭(判斷信號有無);信道估計用來估計信噪比、信道特性等參數;頻偏估計使用開環(huán)方法或costas環(huán)等閉環(huán)方法;頻偏校正與信道補償,頻偏校正采用開環(huán)方法或costas環(huán)等閉環(huán)方法,信道補償采用均衡方法,其中補償是因為信道的隨機性帶來的信號畸變;解擴用于擴頻信號捕獲、跟蹤階段;解調一般采用非相干解調方法;信道譯碼以糾正誤碼。
本文系統設計框圖如圖2所示。信號發(fā)射過程中,為適應無線信道的傳輸需求,對系統輸入二進制的隨機數據,先進行打包組幀,然后對每幀數據進行編碼以消除信道傳輸所帶來的譯碼錯誤;在此基礎上,對編碼后的信息數據擴頻,增加信號的抗噪聲性能;最后對擴頻后的數據進行成型濾波并調制于一定的頻帶上,發(fā)射出去。
圖1 擴頻通信系統原理圖
圖2 擴頻通信系統流程圖
接收過程中,將經過信道后帶有噪聲和衰減的信號解擴以提高信噪比,然后解調出數據,再對解調后的數據進行解碼,消除信道傳輸帶來的少量誤碼,得到一組一組的數據,再將這些數據去除組幀時所帶來的冗余,得到接收端的比特數據,并與原始數據對比,統計誤碼率。
如圖3所示,對二進制數據進行分段,在每段數據前加前導碼和標志位同步碼,以完成組幀。其中前導碼用來實現接收端對突發(fā)信號的檢測,并完成頻偏估計以使正交解調前完成載波同步;標志位同步碼的作用是標示數據段開始的準確位置,以實現粗略的位同步,為數據段的解調做準備。為了保證能在低信噪比下檢測到數據幀的出現,前導碼也采用擴頻方式,使用偽隨機性最好的m序列。標志位同步碼可以使用gold碼或其他可以區(qū)分不同用戶的偽隨機序列。在前導碼中,還必須完成載波同步。通常載波同步可分為兩種,開環(huán)載波同步和閉環(huán)載波同步。常用的開環(huán)載波同步方法有3種,即數據輔助(DA)、判決數據輔助(DDA)和非數據輔助(NDA)[2]。閉環(huán)方法有鎖相環(huán)和較為經典的costas環(huán)等。閉環(huán)算法通過信息的反饋不斷地調整環(huán)路,跟蹤輸入的變化,具有精度高,且能夠無誤差地捕獲頻偏和跟蹤頻偏變化的優(yōu)點。但閉環(huán)算法的載波恢復時間較長,存在“懸擱”現象,不適合需要快速載波恢復的場合。開環(huán)前饋算法在結構上沒有反饋環(huán),處理速度快,適合需要快速載波恢復的場合,如TDMA、調頻等突發(fā)載波調制信號中。
圖3 信號幀格式
本系統采用直接序列擴頻(DSSS)方式,直接序列擴頻是直接利用具有高碼率的擴頻碼序列采用各種調制方式在發(fā)送端擴展信號的頻譜,而在接收端用相同的擴頻碼序去進行解碼,把擴展寬的擴頻信號還原成原始的信息[3]。直擴通信速率可達 2 Mbit/s,8 Mbit/s,11 Mbit/s,無須申請頻率資源,建網簡單,網絡性能好。
針對直擴序列的信號處理,常采用PSK的調制方式,BPSK調制簡單易于實現,但BPSK信號的相位變化是以未調載波的相位作為參考基準,利用載波相位的絕對值來傳送數字信息,所以解調結果是否正確完全依賴于解調器中提取的相干載波的初始相位,因此進行載波提取時不能保證所提取的相干載波具有唯一的初始相位,結果出現了相位模糊。而DBPSK的調制方式利用相鄰碼元相位變化傳送信息,使得解調結果與相干載波相位初始值無關,從而消除相位模糊。因此本文的設計采用DBPSK的調制方式。
DBPSK調制時用前后相鄰碼元的相位變化來表示數字信息,相對相位是本碼元的初相與前一碼元的末相的相位差,即
如圖4所示,在實現時,先求出二進制數字基帶信號的差分碼,再按差分碼的規(guī)律進行BPSK調制即得DBPSK信號。
圖4 DBPSK調制
偽碼捕獲主要實現方法有2種:滑動相關法和匹配濾波法。
滑動相關法工作流程圖如圖5所示。滑動相關的作用就是讓本地參考擴頻碼產生器的時鐘頻率與接收擴頻碼時鐘頻率存在一定偏差,并且通過改變本地參考擴頻碼產生器的時鐘頻率來改變碼序列的相位。這樣兩個碼序列從相位上看,好像在相對滑動。當滑動到兩個碼序列的相位一致時停止滑動。
圖5 滑動相關器框圖
滑動相關法捕獲簡單,使用很少硬件資源就可實現,但同步捕獲平均需要的時間,耗時較長。
數字匹配濾波器的基本結構如圖6所示。主要由3部分組成:移位寄存器、乘法器和多輸入加法器,這是一個類似于FIR數字濾波器的結構。
圖6 數字匹配濾波器實現框圖
按照信號幀的結構,在標志位碼字完成捕獲后對通信數據解調。采用匹配濾波峰值搜索與定時判斷相結合的方法。信號通過匹配濾波器,對攜帶信息的偽碼進行檢測,對濾波器的輸出搜索最大峰值,即可搜索到最大峰值。然后根據DPSK的解調方式,將相鄰的兩個峰值作共軛相乘運算,取實部判斷其正負值即可判決解出數據。數據解調框圖如圖7所示,完成頻偏校正的零中頻信號首先通過匹配濾波器對攜帶信息的偽碼序列進行解擴,根據匹配濾波器長度,搜索匹配濾波器的輸出在一個周期內的最大峰值(包括正峰值與負峰值),由于在解調數據前已完成標志位碼同步,因此這里搜索最大峰值無須比較匹配相關后在一個周期相關值中找最大值,只需找出粗同步位置中的最值,即可搜索到最大峰值,然后將相鄰的兩個峰值作共軛相乘運算,取實部判斷正負值即可完成數據的解調。
圖7 數據解調框圖
在通信系統中的編碼過程包括兩種可能:為了加密和信道編碼。通過加入冗余編碼信息,利用冗余編碼與信息比特的特定運算規(guī)律糾正信道傳輸帶來的錯誤信息比特。本系統設計中考慮采用信道編碼完成對圖2幀格式信息的糾錯。
RS碼[4]是一種特殊的循環(huán)碼,無論是隨機錯誤還是突發(fā)錯誤,RS碼都具有很強的糾突發(fā)錯誤能力,并且構造方便、易實現,因此本系統設計考慮使用RS編碼方式。RS碼的編碼和普通的二進制循環(huán)碼編碼并沒有太多不同,只是移位寄存器中的系數和運算在有限域上進行。系統進行編碼時,要得到系統碼先將信息多項式d(x)乘以xn-k,變成 xn-kd(x),則
信息多項式和校驗多項式中的ci全為GF(2m)的域元素,且2t=n-k。則經過編碼后的碼字多項式(編碼輸出)為
因為RS碼也是一種循環(huán)碼,因此它的每個碼字c(x)必須是生成多項式g(x)的倍式。一個能糾正t個符號錯誤的RS編碼的生成多項式[4]為
用g(x)除xn-kd(x)得到重要的余數多項式r(x),再將其系數取負號即可得到相應的校驗多項式l(x)。
則RS編碼的碼字多項式為
由以上分析可知,RS編碼就是利用生成多項式g(x)除以xn-kd(x)所得到的余式r(x)確定校驗元,再加上信息組就組成了輸出碼字。
RS碼的譯碼算法有時域譯碼和頻域譯碼兩種。其中時域譯碼是把碼字看成時間軸上的信號序列,利用碼的代數結構進行譯碼。時域中的迭代譯碼方法是現在使用最為廣泛的RS碼譯碼算法。本文采用了時域譯碼方法中經典的BM[5-7]迭代譯碼算法,并進行了優(yōu)化,以提高譯碼速度。如圖8所示,RS碼的伴隨式譯碼算法設計主要包括4個步驟:伴隨式計算模塊、關鍵方程求解、求錯誤位置和錯誤值。
圖8 RS碼伴隨式譯碼器框圖
通過對接收碼字多項式進行求余運算實現碼字查錯:若余數為0,則接收碼字與發(fā)送碼字一致;若余數不為0,則接收碼字中有錯需進行求譯碼糾錯。首先用Homer[5]算法計算伴隨式 Sj(j=1,2,…,2t),把 a,a2,…,a2t依次代入余式即可求得;再用BM迭代法求得錯誤位置多項式 σ(x);最后由 Chien 搜索法[8]把 a,a2,…,an依次代入錯誤位置多項式σ(x)求得它的根,并且用Forney算法[9]求得各錯誤位置上對應的錯誤值。
在RS碼的譯碼過程中計算量最大最復雜的就是用BM迭代算法求錯誤位置多項式σ(x)。其迭代的步驟如下:
1)求初值
并計算dj+1,再進行下一次迭代。
如果dj≠0,則找出j之前的某一行i,它在所有j行之前各行中的i-D*(i)最大,而且di≠0,則有
3)計算dj+1,重復步驟2)計算下一次迭代。這樣2t次迭代后得到的σ(2t)(x)和ω(2t)(x)即為所求的σ(x)和ω(x)。
通過上述過程可知,當dj≠0時,迭代算法要找出j之前的某一行i,它在所有j行之前各行中的i-D*(i)最大,且di≠0;再分別計算σ(j+1)(x)和ω(j+1)(x),此即為第j+1的解。在未化簡的迭代算法中,當dj≠0時要找到此符合條件的某一行i,每次都要對 j行之前的所有行的i-D*(i)和di進行計算,并將各行的i-D*(i)進行比較,得到i-D*(i)最大且di≠0得第i行。此過程的計算量很大,而且存在很多重復運算,因此本文提出dj≠0的優(yōu)化算法。優(yōu)化算法提出兩個變量di和σ(i)(x)。當dj≠0時,第i行滿足在所有j行之前的各行中的i-D*(i)最大,且di≠0,因此不必再進行大量的重復運算和比較,直接讀取di及其所對應的錯誤位置多項式σ(i)(x)即可。在計算出σ(i+1)(x)和ω(i+1)(x)后,將當前第i行的i-D*(i)與第j行的j-D*(j)進行比較:若i-D*(i)>j-D*(j),則di和σ(i)(x)保持不變;若i-D*(i)<j-D*(j),則更新di和σ(i)(x),令di=dj且σ(i)(x)=σ(j)(x)。這一簡化有效地避免了dj≠0時原迭代算法中的大量重復運算,提高了迭代算法的效率和譯碼器的譯碼速度。
參數設置:調制方式為DPSK;采樣頻率為25 MHz;載波頻率為70 MHz;碼元速率為1 Mbit/s;成型濾波參數α=0.75;數據位采用64 bit的walsh碼擴頻。仿真次數:每次測試數據長度為80 bit,測試50000次,相當于做50000×80=4×106次仿真。
仿真分析:在上述參數設置下,如圖9所示,系統在無糾錯碼時,大概在-12 dB時,誤碼率可達到系統設計要求,約為4×10-6,而添加RS編碼后取N=31的編碼效果明顯優(yōu)于N=15的RS碼,誤碼率在10-6~10-5之間時,N=31的RS碼較N=15的RS碼性能提高了大約3 dB。
圖9 誤碼率曲線圖
通過仿真分析可以看出,RS編碼技術有效地改善了自組網擴頻系統的傳輸質量,降低了誤碼率。由于RS編碼實現的復雜度低于其他相同長度的編碼,并且其誤碼率更低,數據傳輸的可靠性和安全性有效提高,因此其在通信領域中得到了廣泛的應用。
[1]張杭,張邦寧,郭道省,等.數字通信技術[M].北京:人民郵電出版社,2008:142-206.
[2]吳湛擊.現代糾錯編碼與調制理論及應用[M].北京:人民郵電出版社,2008.
[3]LIN Shu,DANIEL J C.差錯控制編碼[M].晏堅,何元智,潘亞漢,等,譯.2版.北京:機械工業(yè)出版社,1986.
[4]聶宜違.自編碼擴頻通信同步技術的研究[D].哈爾濱:哈爾濱工業(yè)大學,2006.
[5]SARWATE D V,SHANBHAG N R.High-speed architecture for reedsolomon decoders[J].IEEE Trans.VLSI Systems,2001,9(5):641-655.
[6]REED I S,SHIH M T.VLSI design of inverse-free Berlekamp-Massey algorithm[J].IEEE Proceedings on Computers and Digital Techniques,1991,138(5):295-298.
[7]張建文,王宏遠.Reed-Solomon碼的原理和軟硬件實現[J].電視技術,2001,25(7):13-15.
[8]CHIEN R T.Cyclic decoding procedures for Bose-Chaudhuri-Hocquenghem codes[J].IEEE Trans.Information Theory,1964,10(4):357-367.
[9]FORNEY G D J.On decoding BCH codes[J].IEEE Trans.Information Theory,1965,11(4):549-557.