水聲信道可用頻帶窄,具有強(qiáng)多途、高噪聲,同時(shí)伴有明顯的隨機(jī)包絡(luò)起伏。這些特性使水聲信道具有典型的頻率選擇性衰落和時(shí)間選擇性衰落的特點(diǎn)。信號(hào)經(jīng)過(guò)復(fù)雜的水聲信道會(huì)出現(xiàn)隨機(jī)錯(cuò)誤和突發(fā)錯(cuò)誤。因此需要加入糾錯(cuò)編碼與交織相結(jié)合的時(shí)頻編碼方案進(jìn)行錯(cuò)誤糾正[1]。在水聲通信中,糾錯(cuò)編碼是不可或缺的技術(shù)之一。
目前通常采用的編碼方案有卷積碼、Turbo碼和LDPC碼等。后兩者具有接近香農(nóng)限的性質(zhì),在水聲OFDM系統(tǒng)中都表現(xiàn)出很好的糾錯(cuò)特性。在編碼增益上,卷積碼比Turbo碼和LDPC碼分別低3.8 dB和4 dB[2],但其實(shí)現(xiàn)簡(jiǎn)單,實(shí)時(shí)性好。因此從水聲OFDM系統(tǒng)硬件實(shí)現(xiàn)的角度綜合考慮,本文采用卷積碼作為系統(tǒng)的差錯(cuò)控制方案。
為提高系統(tǒng)性能和實(shí)時(shí)性,本文在方案中采用了卷積交織和Viterbi軟譯碼等方法。經(jīng)過(guò)大量仿真及水池實(shí)驗(yàn),確定了交織和編譯碼的最佳參數(shù)。在TMS320DM642上實(shí)現(xiàn)時(shí),通過(guò)采用蝶形運(yùn)算等優(yōu)化方法減少了譯碼復(fù)雜度,提高了運(yùn)算速度。最后通過(guò)海洋實(shí)驗(yàn)驗(yàn)證了其性能。
1 水聲OFDM通信系統(tǒng)原理及編譯碼方案確定
圖1為水聲OFDM基帶通信系統(tǒng)圖[3]。由于水聲信道存在嚴(yán)重的頻率選擇性衰落,采用卷積編碼實(shí)現(xiàn)各個(gè)子載波上的糾錯(cuò)。為了抵抗由于時(shí)變帶來(lái)的突發(fā)錯(cuò)誤,采用交織技術(shù)將突發(fā)錯(cuò)誤打散為隨機(jī)錯(cuò)誤。對(duì)卷積交織后的串行數(shù)據(jù)流進(jìn)行DQPSK映射、IFFT、插入循環(huán)前綴以及并串轉(zhuǎn)換后形成OFDM符號(hào),加入同步前導(dǎo)符號(hào)后經(jīng)水聲信道發(fā)送出去。在接收端提取同步信息后,經(jīng)過(guò)一系列與發(fā)送端相反的逆過(guò)程實(shí)現(xiàn)OFDM解調(diào),解調(diào)后的數(shù)據(jù)流再經(jīng)過(guò)解交織和Viterbi譯碼后還原數(shù)據(jù)信息。
卷積碼碼型的選擇主要根據(jù)系統(tǒng)的相干帶寬和相干時(shí)間來(lái)確定。為了提高水聲信道的頻帶利用率,通常采用1/2碼率的卷積碼。約束長(zhǎng)度的選擇以不同信噪比條件下卷積碼性能為參考。仿真和水池實(shí)驗(yàn)結(jié)果表明:信噪比較高時(shí),約束長(zhǎng)度越大卷積碼性能越好;信噪比較低時(shí),約束長(zhǎng)度越小卷積碼性能越好。由于水聲信道的信噪比較低,本文最終確定使用生成矩陣為[7,5]的(2,1,3)卷積碼,從復(fù)雜度與性能上折中考慮,譯碼回溯深度定為16,Viterbi軟譯碼量化級(jí)數(shù)定為3bit均勻量化。交織長(zhǎng)度和深度的確定要綜合考慮實(shí)時(shí)性和譯碼性能,仿真結(jié)果表明交織長(zhǎng)度為4個(gè)OFDM符號(hào)時(shí),最佳交織深度為96。
該系統(tǒng)在Matlab平臺(tái)上進(jìn)行水池實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖2所示。實(shí)驗(yàn)中對(duì)采用三個(gè)不同方案的OFDM系統(tǒng)進(jìn)行了性能比較,以示波器觀測(cè)到的接收端信號(hào)幅度作為SNR大小的參照。實(shí)驗(yàn)中噪聲幅度約為150 mV。從圖中可以明顯看出Viterbi軟譯碼性能最佳。
2 DSP優(yōu)化實(shí)現(xiàn)
2.1 交織的優(yōu)化
硬件實(shí)現(xiàn)時(shí)需考慮所使用的交織器類型。常見(jiàn)的交織器主要有塊交織器、卷積交織器和隨機(jī)交織器。在相同的交織長(zhǎng)度和交織深度下,卷積交織器與塊交織相比延時(shí)小,與隨機(jī)交織相比硬件復(fù)雜度低,是較實(shí)用的類型。
根據(jù)卷積交織原理[4],在DSP上實(shí)現(xiàn)時(shí),如果采用一般算法,則需要用到二維數(shù)組和多重嵌套循環(huán),DSP處理將耗費(fèi)大量時(shí)間和存儲(chǔ)空間。交織的實(shí)質(zhì)是改變?cè)夹蛄兄袛?shù)據(jù)的順序,一旦交織深度和寬度確定,其數(shù)據(jù)的順序改變規(guī)律即可相應(yīng)確定。因此為了節(jié)省處理時(shí)間和片內(nèi)存儲(chǔ)空間,本文采用查表的方法實(shí)現(xiàn)卷積交織。
2.2 Viterbi譯碼器的優(yōu)化
實(shí)現(xiàn)Viterbi譯碼可以分為初始化、度量值更新和回溯跟蹤三部分,其中最復(fù)雜的是第二部分。本文從兩個(gè)方面進(jìn)行了優(yōu)化:一是對(duì)計(jì)算量最多的蝶形運(yùn)算采用宏定義的方式,并在記錄度量長(zhǎng)度時(shí)采用雙數(shù)組,能夠加快譯碼計(jì)算速度;二是定義了一種軟判決量度,減少計(jì)算復(fù)雜度。
2.2.1 蝶形運(yùn)算
在Viterbi譯碼程序設(shè)計(jì)中,使用對(duì)稱的蝶形運(yùn)算實(shí)現(xiàn)。(2,1,3)卷積碼的蝶形結(jié)構(gòu)如圖3所示。每一個(gè)蝶形包括當(dāng)前狀態(tài)為i(i=0,1)和i+2的兩個(gè)節(jié)點(diǎn)的加_比較_選擇運(yùn)算,它們的0和1分支在籬笆圖的下一個(gè)節(jié)點(diǎn)合并。為了加快運(yùn)算速度,程序設(shè)計(jì)上對(duì)蝶形運(yùn)算采用宏定義的方式,定義兩個(gè)蝶形運(yùn)算的宏[5]。一個(gè)設(shè)當(dāng)前度量為old_pm[ ], 經(jīng)過(guò)分支度量計(jì)算后得到下一狀態(tài)度量new_pm[ ]。另一個(gè)則從下一狀態(tài)new_pm[ ]開(kāi)始,經(jīng)過(guò)分支度量計(jì)算后得到old_pm[ ]。
來(lái)源:電子技術(shù)應(yīng)用