卷積碼因?yàn)槠渚幋a器簡(jiǎn)單、編碼增益高以及具有很強(qiáng)的糾正隨機(jī)錯(cuò)誤的能力,在通信系統(tǒng)中得到了廣泛的應(yīng)用。基于最大似然準(zhǔn)則的維特比算法(VA)是在加性高斯白噪聲(AWGN)信道下性能最佳的卷積碼譯碼算法,也是常用的一種算法[1~2].
一般來(lái)說(shuō),實(shí)現(xiàn)軟判決維特比譯碼可以有三種方案供選擇:專用集成電路(ASIC)芯片、可編程邏輯陣列(FPGA)芯片以及數(shù)字信號(hào)處理器(DSP)芯片。參考文獻(xiàn)[3]對(duì)這三種方案的優(yōu)劣做了詳細(xì)的比較。使用DSP芯片實(shí)現(xiàn)譯碼是最為靈活的一種方案,但速度也是最慢的,因?yàn)檎麄(gè)譯碼過(guò)程都是由軟件來(lái)實(shí)現(xiàn)的。
在近年來(lái)興起的軟件無(wú)線電技術(shù)中,要求采用可編程能力強(qiáng)的的器件(DSP、CPU等)代替專用的數(shù)字電路。對(duì)信道編解碼而言,這樣做的優(yōu)點(diǎn)在于只需要在程序上加以少量改動(dòng),就可以適應(yīng)不同的編碼速率以及各種通信系統(tǒng)所要求的不同的編解碼方法。然而速度的瓶頸限制了DSP譯碼在實(shí)時(shí)系統(tǒng)中的應(yīng)用,因此提高DSP的譯碼速度對(duì)于軟件無(wú)線電有著重要的意義。本文的目的就是通過(guò)對(duì)譯碼程序結(jié)構(gòu)優(yōu)化,來(lái)提高DSP芯片執(zhí)行VA算法的速度。
1 維特比譯碼器
首先,需要定義兩個(gè)將在本文中用到的術(shù)語(yǔ)[2]:
輸入幀——每次輸入譯碼器的比特;
輸出幀——對(duì)應(yīng)一個(gè)輸入幀,譯碼器輸出的比特。
圖1所示是卷積碼譯碼器(VA算法)的一種典型結(jié)構(gòu)。
![圖片點(diǎn)擊可在新窗口打開查看](http://embed.chinaitlab.com/UploadFiles_4615/200810/20081009101203448.gif)
以(2,1,7)卷積碼為例(輸入幀含2比特,輸出幀為1比特),來(lái)說(shuō)明譯碼器的三個(gè)主要部分。
1.1 支路度量計(jì)算單元(BMG)
計(jì)算當(dāng)前輸入幀對(duì)應(yīng)的128條支路的路徑度量值,并將其存入支路度量存儲(chǔ)單元(BMM)。
1.2 加比選單元(ACS)
將支路度量值與相連的前面的路徑度量值相加得到延伸后的新路徑的度量值;比較連接在同一個(gè)狀態(tài)上的兩條新路徑的度量值;選擇其中度量值較小的那條路徑(幸存路徑),并將它的度量值存儲(chǔ)到新路徑度量存儲(chǔ)器(SM)中,幸存路徑值(對(duì)應(yīng)編碼狀態(tài)的輸入比特)存儲(chǔ)到路徑存儲(chǔ)器(PM)中。