基于 VCP2 協(xié)處理器的 Viterbi 譯碼器實(shí)現(xiàn)
基于 VCP2 協(xié)處理器的 Viterbi 譯碼器實(shí)現(xiàn)
文/唐貴林 張金菊 侯小毛
針對(duì)LTE通信系統(tǒng)采用的卷積編碼,介紹了采用TI公司多核定點(diǎn) DSP 芯片 TMS320C6670 中內(nèi)嵌的VCP2協(xié)處理器實(shí)現(xiàn)快速Viterbi譯碼的原理和方法,并在DSP硬件平臺(tái)上對(duì)VCP2的譯碼性能進(jìn)行了實(shí)驗(yàn)與分析。
【關(guān)鍵詞】TMS320C6670 VCP2 Viterbi 譯碼 誤碼率
1 引言
卷積編碼是3G和LTE等無線通信系統(tǒng)中廣泛應(yīng)用的信道編碼方式,可以增強(qiáng)數(shù)字信號(hào)的抗干擾能力,提高通信系統(tǒng)的可靠性。本文介紹了一種新的快速信道譯碼的方案,即基于TI 公司高速多核定點(diǎn) DSP 芯片 TMS320C6670中嵌入的第二代維特比譯碼協(xié)處理器(VCP2)實(shí)現(xiàn)卷積信道譯碼。
卷積碼的 Viterbi 譯碼算法通過使整個(gè)碼序列成為一個(gè)最大似然序列,同時(shí)利用網(wǎng)格圖的重復(fù)性結(jié)構(gòu),減少譯碼所需的計(jì)算次數(shù)。TMS320C6670 中的 Viterbi 譯碼協(xié)處理器 VCP2 在 333MHz 時(shí)鐘工作頻率時(shí)能夠處理 76212.2Kbps 的 AMR 語音信道,支持限制長度 K 為 5、6、7、8、9,碼速率為 1/2、1/3和 1/4 的 Viterbi 譯碼。它使用歐氏距離衡量接收信號(hào)同分支標(biāo)號(hào)之間的差異,即分支度量(Branch Metric)。考慮到對(duì)稱性,對(duì)于限制長度 K,輸入 n 比特,碼速率 1/R 的卷積碼,譯碼的每個(gè)時(shí)刻需要預(yù)先計(jì)算 2(R − 1)個(gè)分支度量作為輸入。每個(gè)時(shí)刻均有 2(K − 1)個(gè)狀態(tài)。可以通過比較進(jìn)入某一狀態(tài)不同路徑的狀態(tài)度量來決定幸存路徑,并可以靈活地設(shè)置生成多項(xiàng)式及輸出軟判決或硬判決的譯碼結(jié)果。VCP控制寄存器負(fù)責(zé)控制整個(gè)譯碼過程,VCP2 通過直接存儲(chǔ)器訪問單元 EDMA3 與片內(nèi)L2 存儲(chǔ)器進(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ì)算前一個(gè)狀態(tài)到各個(gè)新狀態(tài)的分支度量值。當(dāng)采用硬判決輸入時(shí),分支度量值可用漢明距離表示。對(duì)于限制長度為 K,輸入為 n 比特,碼速率為 1/R 的卷積碼,譯碼的每個(gè)時(shí)刻需要預(yù)先計(jì)算 (2R-1)個(gè)分支度量作為輸入。設(shè) r(t) 為初始符號(hào),則針對(duì)不同編碼速率R,BM算法迭代次數(shù)不同。當(dāng)R=1/2 時(shí),算法為: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)備存儲(chǔ)譯碼結(jié)果。
(3)準(zhǔn)備 VCP2 的寄存器配置參數(shù),放在 DSP 的內(nèi)存或外存,當(dāng) VCP2 啟動(dòng)時(shí)由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)中斷,對(duì)譯碼結(jié)果進(jìn)行處理。
3 VCP2譯碼性能分析
實(shí)驗(yàn)產(chǎn)生了固定長度的 LTE 信道數(shù)據(jù)并進(jìn)行卷積編碼,然后進(jìn)行 BPSK 調(diào)制,將已調(diào)信號(hào)加入高斯白噪聲,對(duì)含噪信號(hà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 時(shí)誤碼率很低(< 20%),高于 1.5dB時(shí)誤碼率達(dá)到 數(shù)量級(jí)。通過對(duì)不同碼速率在同一高斯白噪聲分量的標(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)勢(shì)。
作者單位
湖南信息學(xué)院電子信息系 湖南省長沙市 410151
本站論文資源均為來自網(wǎng)絡(luò)轉(zhuǎn)載,免費(fèi)提供給廣大作者參考,不進(jìn)行任何贏利,如有版權(quán)問題,請(qǐng)聯(lián)系管理員刪除! 快速論文發(fā)表網(wǎng)(www.6scc.cn)本中心和國內(nèi)數(shù)百家期刊雜志社有良好的合作關(guān)系,可以幫客戶代發(fā)論文投稿.
投稿郵箱:ksfbw@126.com
客服Q Q:
82702382
聯(lián)系電話:15295038833
本站論文資源均為來自網(wǎng)絡(luò)轉(zhuǎn)載,免費(fèi)提供給廣大作者參考,不進(jìn)行任何贏利,如有版權(quán)問題,請(qǐng)聯(lián)系管理員刪除!