《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 水聲OFDM系統(tǒng)中卷積碼譯碼設(shè)計(jì)及其DSP實(shí)現(xiàn)
水聲OFDM系統(tǒng)中卷積碼譯碼設(shè)計(jì)及其DSP實(shí)現(xiàn)
來(lái)源:電子技術(shù)應(yīng)用2011年第2期
肖 靜,,胡曉毅,,王德清,,鄭少語(yǔ)
廈門大學(xué) 水聲通信與海洋技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,福建 廈門361005
摘要: 糾錯(cuò)編碼是水聲OFDM通信系統(tǒng)必須采用的關(guān)鍵技術(shù),。本文從譯碼性能和工程實(shí)現(xiàn)角度出發(fā),采用卷積交織,、卷積編碼和Viterbi軟譯碼相結(jié)合的差錯(cuò)控制方案,,通過(guò)仿真和水池實(shí)驗(yàn)確定其參數(shù),并在TMS320DM642上實(shí)現(xiàn),。在DSP實(shí)現(xiàn)時(shí),,卷積交織采用查表法,Viterbi譯碼采用蝶形運(yùn)算宏定義等處理方法,,極大地提升了運(yùn)算速度,,保證了卷積碼的實(shí)時(shí)性。最后通過(guò)海洋實(shí)驗(yàn)驗(yàn)證了其譯碼性能,。
關(guān)鍵詞: DSP 水聲通信 OFDM 卷積碼
中圖分類號(hào): TN914.3
文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 0258-7998(2011)02-0036-03
Convolutional decoder design and DSP implementation of underwater acoustic OFDM system
Xiao Jing,,Hu Xiaoyi,Wang Deqing,,Zheng Shaoyu
Key Laboratory of Underwater Acoustic Communication and Marine Information Technology,, Xiamen University,Xiamen 361005,,China
Abstract: Error correction coding is a key technology in underwater acoustic OFDM communication system. Convolutional interleaving, convolutional coding and Viterbi soft decoding are implemented on TMS320DM642 in underwater acoustic OFDM system. Look-up table method used in convolutional interleaving and definition of butterfly macro in Viterbi decoding improve DSP computing speed and ensure real-time communication. Finally, the performance of the decoder in sea test is given.
Key words : Under water acoustil communication,;OFDM;convolutional code,;DSP


    水聲信道可用頻帶窄,,具有強(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[ ],。

    通過(guò)宏定義,,大量的蝶形運(yùn)算在編譯時(shí)間里進(jìn)行宏展開(kāi)代入表達(dá)式,這樣運(yùn)算速度會(huì)比子程序設(shè)計(jì)快,, 而且不需要大量的寄存器變量,。程序中還定義了兩個(gè)記錄度量長(zhǎng)度的數(shù)組,循環(huán)進(jìn)行數(shù)組更新,,不需要再定義中間變量或指針進(jìn)行數(shù)組的更新,,可以提升DSP運(yùn)算速度。
2.2.2 軟判決量度
    計(jì)算接收到的比特與理論輸出比特的距離度量公式為:bm[i0 i1]=metric[i0 r0]+metric[i1 r1],。其中i0,、i1為理論輸出數(shù)據(jù),r0,、r1為接收到的數(shù)據(jù), metric[ ]為分支度量,。軟判決的分支度量值為歐氏距離,即metric[A B]=,,如果直接計(jì)算,,將大大增加計(jì)算復(fù)雜度。從DSP實(shí)現(xiàn)角度考慮,,用另一個(gè)軟判決量度來(lái)代替歐氏距離,。此量度必須滿足兩個(gè)要求:(1)其大小要體現(xiàn)歐氏距離的大小,;(2)計(jì)算簡(jiǎn)單,,易于DSP實(shí)現(xiàn)??梢杂脷W氏距離平方代替歐氏距離,,即metric[A B]=(A+B)2=A2+B2+2AB。由于i0,、i1的值為1或-1,,可以證明,,對(duì)于給定的r0、r1,,不同的i0,、i1,計(jì)算bm[i0 i1]=metric[i0 r0]+metric[i1 r1],,其分解后的平方項(xiàng)都是相等的,,區(qū)別僅在于2r0、2r1項(xiàng)前符號(hào)的正負(fù),。因此可以將軟判決距離度量公式修改為bm[i0 i1]=i0×r0+i1×r1,。
    優(yōu)化后的程序流程如圖4所示。先對(duì)譯碼器的各種參數(shù)初始化,,然后讀入輸入字節(jié),,每次取兩位計(jì)算分支度量, 進(jìn)行加_比較_選擇,,從當(dāng)前度量old_pm[ ]計(jì)算后得到下一狀態(tài)度量new_pm[ ],再讀取兩位計(jì)算分支度量,,調(diào)用蝶形運(yùn)算2,,從new_pm[ ]計(jì)算后得到old_pm[ ]。循環(huán)進(jìn)行上述數(shù)組更新運(yùn)算,,直到所有輸入字節(jié)處理結(jié)束,。中間加入一些判斷語(yǔ)句以控制程序進(jìn)行回溯,將得到的譯碼輸出位存儲(chǔ)到輸出字節(jié)[5],。
    比較Viterbi譯碼DSP優(yōu)化前后所需時(shí)鐘周期數(shù),,以發(fā)送1個(gè)OFDM符號(hào)為參考,如表1所示,。由表中數(shù)據(jù)可知,,優(yōu)化后發(fā)送接收一個(gè)OFDM符號(hào)節(jié)省了1 027 692個(gè)時(shí)鐘周期。TMS320DM642主頻600 MHz,,可以計(jì)算出所節(jié)省的時(shí)延為1.7 ms,。

3 海洋實(shí)驗(yàn)
    該DSP系統(tǒng)在廈門五緣灣海域進(jìn)行點(diǎn)對(duì)點(diǎn)通信實(shí)驗(yàn),通信距離為800 m,,收發(fā)換能器距海面2.5 m,。海洋實(shí)驗(yàn)發(fā)送的總數(shù)據(jù)量為32 640 bit,選取了3組典型數(shù)據(jù),,將DSP譯碼結(jié)果與Matlab譯碼結(jié)果進(jìn)行對(duì)比,,如表2所示。
    由表2可以看出,,原始誤碼個(gè)數(shù)在2 800~3 100范圍內(nèi)時(shí),,DSP硬譯碼糾錯(cuò)個(gè)數(shù)為2 200左右,,軟譯碼糾錯(cuò)個(gè)數(shù)為2 400左右,并且DSP譯碼與Matlab譯碼性能相當(dāng),。

    本文將卷積交織,、卷積編碼和Viterbi譯碼引入了水聲OFDM系統(tǒng),根據(jù)水聲信道特點(diǎn)和多次水池實(shí)驗(yàn)確定其參數(shù),。在TMS320DM642上實(shí)現(xiàn)時(shí),,對(duì)于卷積交織采用查表法,對(duì)于Viterbi譯碼采用蝶形運(yùn)算宏定義和雙數(shù)組循環(huán)更新以減小時(shí)延,,保證了譯碼實(shí)時(shí)性,。通過(guò)海洋實(shí)驗(yàn)驗(yàn)證了DSP實(shí)現(xiàn)軟硬譯碼的性能。
參考文獻(xiàn)
[1] 王新梅,,肖國(guó)鎮(zhèn).糾錯(cuò)碼——原理與方法[M].西安:西安電子科技大學(xué)出版社,,2001.
[2] 吳沫,楊華,,盧偉.幾種信道編碼方式的編碼增益比較分析[J].通信技術(shù),,2007,40(11).
[3] 王德清.OFDM高速水聲通信系統(tǒng)的DSP實(shí)現(xiàn)及同步技術(shù)研究[D].廈門大學(xué)學(xué)報(bào),,2005(6).
[4] 吳子彧,,余松煜,管云峰,,等.基于卷積交織的SDRAM控制器的設(shè)計(jì)[J].Circuits and their applications,,2006(12).
[5] 張海勇.一種卷積碼維特比譯碼算法的軟件實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2005,,33(6).

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。