王宇翔
AMR系統(tǒng)中Viterbi譯碼的仿真與實現(xiàn)
王宇翔
(武漢郵電科學(xué)研究院,武漢,430074)
本文根據(jù)AMR技術(shù)在GSM系統(tǒng)中物理層信道卷積編碼規(guī)范,提出了一種可控制信道差錯,降低工程實現(xiàn)難度的譯碼MATLAB仿真方案。結(jié)果表明,通過該仿真方案適合AMR語音業(yè)務(wù)信道卷積碼的譯碼。
AMR;卷積編碼;Viterbi;MATLAB仿真
在GSM系統(tǒng)中,自適應(yīng)多速率(AMR,Adaptive MutiRate)編碼,是一種新的編解碼技術(shù),其核心思想是根據(jù)GSM空中接口上下行信號質(zhì)量的變化情況進(jìn)行動態(tài)地調(diào)整上下行語音編解碼速率,以此來提高語音質(zhì)量。與傳統(tǒng)增強(qiáng)型全速率(EFR)和半速率(HR)相比,AMR技術(shù)可隨著無線環(huán)境的改變而作相應(yīng)調(diào)整。這不僅提高用戶通話的感知質(zhì)量,還可以提高頻率的復(fù)用度。
本文通過對GSM物理層技術(shù)的研究,面向?qū)嶋H應(yīng)用,首先以AFS12.2速率的卷積編譯碼為例,介紹了GSM系統(tǒng)中物理層AMR語音業(yè)務(wù)信道的卷積碼的編譯碼原理,并在傳統(tǒng)卷積碼的Viterbi譯碼基礎(chǔ)上提出了適合AMR語音業(yè)務(wù)信道譯碼實現(xiàn)方案,給出了仿真結(jié)果,為工程仿真和實現(xiàn)提供了參考算法。
AMR 語音信道編碼包括12.2、10.2、7.95、7.40、6.70、5.90、5.15及4.75kbit/s等8種速率,其中12.2和10.2只用于全速率,7.40只用于半速率,其他5種可用于全速率和半速率。以12.2kbit/s為例說明卷積碼編譯碼原理。
根據(jù)協(xié)議,速率為12.2kbit/s的卷積編碼方式是將250比特的數(shù)據(jù)塊通過1/2率卷積編碼,其生成多項式定義為:
編碼結(jié)構(gòu)如圖1所示:
圖 1 編碼結(jié)構(gòu)
輸出可以表示為
根據(jù)上述描述,可以看出AMR語音業(yè)務(wù)信道的卷積編碼方式采用了“遞歸迭代”,即輸出的編碼比特會反饋到編碼的輸入端。最后,通過寄存器反饋端取出8bit來執(zhí)行終止。
同時,AMR語音業(yè)務(wù)信道的卷積編碼采取了打孔編碼處理。它的原理就是卷積編碼的輸出端有選擇的刪除冗余的校驗位以達(dá)到提高編碼效率的目的,被刪除的碼元的個數(shù)決定了最終的編碼速率。刪除的主要好處是利用相同的編碼器,通過改變刪除碼元的數(shù)目就能實現(xiàn)很大范圍內(nèi)的不同碼率。
2.1 Viterbi譯碼的原理
自1955年愛里斯(Elias)提出卷積碼之后,編碼界學(xué)者提出了各種卷積碼譯碼算法。其中,最為突出也是應(yīng)用最廣泛的是1967年由維特比提出的基于網(wǎng)格圖進(jìn)行路徑搜索的維特比譯碼。Viterbi譯碼的基本思想是根據(jù)接收到的數(shù)據(jù)符號,在狀態(tài)轉(zhuǎn)移圖中找出最大似然路徑的幸存路徑,即文獻(xiàn)4:
利用Beyesi公式,可得出結(jié)論:
為降低譯碼算法的計算量,利用兩條基本性質(zhì):
從而
考慮到在系統(tǒng)實現(xiàn)中往往采用對數(shù)形式的運算,則
定義:
上式可寫為:
求得譯碼的分支度量,接下來就是根據(jù)接收譯碼系統(tǒng)通過累加、比較、選擇最佳路徑,判決輸出碼字。
2.2 加比選運算
對于編碼速率為1/2,約束長度為K的情況下,加比選單元可以看成是一個蝶形運算單元,如圖2所示:
蝶形運算單元的運算可以分為三個主要的步驟:
(3) 選出分支度量最大的一條作為新狀態(tài)的幸存路徑。
在GSM的自適應(yīng)速率的話音信道中,其12.2Kbps/s是采用約束長度K=5的卷積編碼,每一個符號時間間隔內(nèi)有16種狀態(tài),一共可以構(gòu)成8個蝶形運算單元。
自適應(yīng)速率的卷積編碼進(jìn)行了打孔處理,所以處理支路量度的計算方法有一些差別。在進(jìn)行“加比選單元運算”時,根據(jù)循環(huán)隊列的元素值來計算支路量度。如果隊列中第一個元素均為1,則計算接收序列每組中兩個碼元與兩個支路輸出比特之間的漢明距離;反之,則只計算元素為1的對應(yīng)接收碼元和其他位置上的一個支路輸出比特之間的漢明距離,每進(jìn)行一次支路量度計算后將隊列循環(huán)移位,以進(jìn)行下一次運算。
2.3 回溯算法
幸存路徑的存取,是根據(jù)從加比選單元輸出的一系列狀態(tài)轉(zhuǎn)移矢量,搜索出一條譯碼路徑,并以正常的順序輸出譯碼結(jié)果,而實際上搜索的過程是在網(wǎng)格圖中回溯各個狀態(tài)點轉(zhuǎn)移的過程。
上述蝶形運算方法的回溯深度是所有符號時間間隔,即采用的全回溯方式來得到譯碼輸出,其具體實現(xiàn)為:
首先,在路徑度量列表中找到最大值對應(yīng)的末狀態(tài),作為回溯的起始狀態(tài)。
其次,回溯過程從狀態(tài)轉(zhuǎn)移列表的最后一步開始,根據(jù)回溯的起始狀態(tài)向前推導(dǎo)出幸存路徑,并且幸存路徑中每一步狀態(tài)對應(yīng)的第一個符號。
以12.2為例,利用MATLAB隨機(jī)生成一系列數(shù)據(jù),按規(guī)范中的1/2卷積編碼對數(shù)據(jù)編碼,通過打孔處理后,在接收端進(jìn)行相應(yīng)的維特比譯碼。
圖3 原始數(shù)據(jù)與譯碼輸出數(shù)據(jù)對比結(jié)果
圖3 為原始數(shù)據(jù)與譯碼輸出結(jié)果對比,可以看出,該譯碼算法可以很好的實現(xiàn)AMR系統(tǒng)的卷積譯碼。
在無線通信系統(tǒng)中,信道狀況并非理想狀態(tài),所以通過加入高斯白噪聲的信道來觀察譯碼效果。通過仿真結(jié)果可知,該譯碼方法在一定范圍內(nèi)可以實現(xiàn)低誤碼率的卷積譯碼。如圖4所示:
Simulation and implementation of Viterbi decoding in AMR System
Wang Yuxiang
(Wuhan Research Institute of Posts and Telecommunications,Wuhan,430074,China)
According to channel convolution coding standards in the physical layer of GSM system of AMR tec hnology,this paper proposed a decoding MATLAB simulation program that can control channel error and reduce difficulty of project implementation.The results show that the simulation program is appropriate for the de coding of channel convolution codes of AMR voice service.
AMR;Convolutional coding;Viterbi;MATLAB simulation