唐貴林等
針對LTE通信系統(tǒng)采用的卷積編碼,介紹了采用TI公司多核定點(diǎn)DSP芯片TMS320C6670中內(nèi)嵌的VCP2協(xié)處理器實(shí)現(xiàn)快速Viterbi譯碼的原理和方法,并在DSP硬件平臺上對VCP2的譯碼性能進(jìn)行了實(shí)驗(yàn)與分析。
【關(guān)鍵詞】TMS320C6670 VCP2 Viterbi譯碼 誤碼率
1 引言
卷積編碼是3G和LTE等無線通信系統(tǒng)中廣泛應(yīng)用的信道編碼方式,可以增強(qiáng)數(shù)字信號的抗干擾能力,提高通信系統(tǒng)的可靠性。本文介紹了一種新的快速信道譯碼的方案,即基于TI公司高速多核定點(diǎn)DSP芯片TMS320C6670中嵌入的第二代維特比譯碼協(xié)處理器(VCP2)實(shí)現(xiàn)卷積信道譯碼。
卷積碼的Viterbi 譯碼算法通過使整個碼序列成為一個最大似然序列,同時利用網(wǎng)格圖的重復(fù)性結(jié)構(gòu),減少譯碼所需的計(jì)算次數(shù)。TMS320C6670中的Viterbi譯碼協(xié)處理器VCP2在333MHz時鐘工作頻率時能夠處理76212.2Kbps的AMR語音信道,支持限制長度K為5、6、7、8、9,碼速率為1/2、1/3和1/4的Viterbi譯碼。它使用歐氏距離衡量接收信號同分支標(biāo)號之間的差異,即分支度量(Branch Metric)??紤]到對稱性,對于限制長度K,輸入n比特,碼速率1/R的卷積碼,譯碼的每個時刻需要預(yù)先計(jì)算2(R?1)個分支度量作為輸入。每個時刻均有2(K?1)個狀態(tài)??梢酝ㄟ^比較進(jìn)入某一狀態(tài)不同路徑的狀態(tài)度量來決定幸存路徑,并可以靈活地設(shè)置生成多項(xiàng)式及輸出軟判決或硬判決的譯碼結(jié)果。
VCP控制寄存器負(fù)責(zé)控制整個譯碼過程,VCP2通過直接存儲器訪問單元EDMA3與片內(nèi)L2存儲器進(jìn)行數(shù)據(jù)交換,從而和CPU協(xié)同完成譯碼任務(wù)。
2 VCP2譯碼的實(shí)現(xiàn)
VCP2的譯碼需要進(jìn)行分支度量、數(shù)據(jù)量化、寄存器設(shè)置和數(shù)據(jù)交互等工作,本文重點(diǎn)介紹分支度量和詳細(xì)的譯碼步驟。
2.1 分支度量
Viterbi譯碼算法必須計(jì)算前一個狀態(tài)到各個新狀態(tài)的分支度量值。當(dāng)采用硬判決輸入時,分支度量值可用漢明距離表示。對于限制長度為K,輸入為n比特,碼速率為1/R的卷積碼,譯碼的每個時刻需要預(yù)先計(jì)算(2R-1)個分支度量作為輸入。設(shè)r(t)為初始符號,則針對不同編碼速率R,BM算法迭代次數(shù)不同。當(dāng)R=1/2時,算法為:
BM0(t)=r0(t)+r1(t)
BM1(t)=r0(t)-r1(t)
2.2 譯碼實(shí)現(xiàn)步驟
(1)根據(jù)待譯碼數(shù)據(jù)預(yù)先計(jì)算其分支度量,寫入指定的DSP緩沖區(qū)。
(2)分配DSP輸出緩沖區(qū),準(zhǔn)備存儲譯碼結(jié)果。
(3)準(zhǔn)備VCP2的寄存器配置參數(shù),放在DSP的內(nèi)存或外存,當(dāng)VCP2啟動時由EDMA3寫入VCP2內(nèi)部寄存器。
(4)設(shè)置EDMA3通道29參數(shù),由VCPXEVT觸發(fā),搬移VCP2配置參數(shù)到VCP2內(nèi)部寄存器,搬移待譯碼數(shù)據(jù)的分支度量及量化值到VCP內(nèi)部輸入FIFO;設(shè)置EDMA3通道28參數(shù),由VCPREVT觸發(fā),從VCP2輸出FIFO搬移VCP譯碼結(jié)果到指定的輸出緩沖區(qū)。
(5)使能EDMA3通道28和29,使其可以響應(yīng)VCPREVT和VCPXEVT同步觸發(fā)事件。
(6)寫“開始”命令到VCP2內(nèi)部的命令寄存器VCPEXE,使VCP2生成VCPXEVT事件,觸發(fā)EDMA3通道29,搬移配置參數(shù)和待譯碼數(shù)據(jù)的分支度量到VCP2。
(7)VCP2譯碼完成后觸發(fā)EDMA3,由EDMA3通道28搬移譯碼結(jié)果到指定的輸出緩沖區(qū),并產(chǎn)生到DSP內(nèi)核的中斷;DSP響應(yīng)中斷,對譯碼結(jié)果進(jìn)行處理。
3 VCP2譯碼性能分析
實(shí)驗(yàn)產(chǎn)生了固定長度的LTE信道數(shù)據(jù)并進(jìn)行卷積編碼,然后進(jìn)行BPSK調(diào)制,將已調(diào)信號加入高斯白噪聲,對含噪信號進(jìn)行AGC、定標(biāo)和防溢出處理,計(jì)算分支度量后將待譯碼數(shù)據(jù)輸入到VCP2中進(jìn)行譯碼。最后,將譯碼結(jié)果與最初生成的隨機(jī)序列相比較,計(jì)算其誤碼率。結(jié)果如圖1所示。
由圖1可見,誤碼率隨著信噪比的提高而降低,隨著數(shù)據(jù)長度的增加而減小。在有限范圍內(nèi)誤碼率始終未超過50%,且當(dāng)信噪比高于0dB時誤碼率很低(< 20%),高于1.5dB時誤碼率達(dá)到 數(shù)量級。
通過對不同碼速率在同一高斯白噪聲分量的標(biāo)準(zhǔn)差(Sigma)的比較還可以發(fā)現(xiàn)碼速率越大則誤碼率越高。
4 結(jié)束語
VCP2作為TMS320C6670的協(xié)處理器,在卷積碼譯碼性能有較大的提高。用戶只需通過簡單的速率適配、數(shù)據(jù)量化和參數(shù)設(shè)置就可以方便地實(shí)現(xiàn)高效的Viterbi譯碼,同傳統(tǒng)硬件實(shí)現(xiàn)方法及軟件譯碼算法相比具有巨大的優(yōu)勢。
作者單位
湖南信息學(xué)院電子信息系 湖南省長沙市 410151endprint