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