日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
高速Viterbi譯碼器的優(yōu)化和實(shí)現(xiàn)
高速Viterbi譯碼器的優(yōu)化和實(shí)現(xiàn)
 更新時間:2008-8-17 16:19:22  點(diǎn)擊數(shù):12
【字體: 字體顏色

 摘要:大約束度卷積碼作為信道糾錯編碼在通信中得到了廣泛的應(yīng)用,而其相應(yīng)的Viterbi譯碼器硬件復(fù)雜度大,限制了譯碼速度。分析了Viterbi譯碼器的結(jié)構(gòu),優(yōu)化了各模塊,合理地組織了存儲器結(jié)構(gòu),簡化了接口電路。用FPGA實(shí)現(xiàn)Viterbi譯碼器,提高了譯碼器速度。

    關(guān)鍵詞:卷積碼 Viterbi譯碼 ACS 路徑度量存儲 FPGA實(shí)現(xiàn)

Viterbi算法是一種基于最大后驗(yàn)概率的卷積譯碼算法,應(yīng)用廣泛。CDMA的IS-95標(biāo)準(zhǔn)和WCDMA 3 GPP標(biāo)準(zhǔn)將卷積碼作為高速實(shí)時數(shù)據(jù)傳輸?shù)男诺兰m錯編碼,使Viterbi譯碼器成為移動通信系統(tǒng)的重要組成部分。

為保證糾錯性能,卷積碼結(jié)束度一般選擇比較大的,在3 GPP中規(guī)定約束度K=9。出于實(shí)時性的考慮,移動通信系統(tǒng)中對譯碼時延的要求比較高,需要高速譯碼器的支持?墒荲iterbi譯碼算法的復(fù)雜度、所需存儲器容量與結(jié)束長度成指數(shù)增長關(guān)系,成為限制譯碼器速度的瓶頸。Viterbi譯碼器每解碼一位信息位就需對2 k-1個寄存器的狀態(tài)進(jìn)行路徑度量,并對相應(yīng)的存儲單元進(jìn)行讀寫。這種情況下,可以采用狀態(tài)路徑存儲單元分塊的方法,以提高其譯碼性能,缺點(diǎn)是ACS單元與存儲器之間的接口電路十分復(fù)雜,不易實(shí)現(xiàn)。

本文分析和優(yōu)化了Viterbi譯碼器的結(jié)構(gòu),提出了一種FPGA實(shí)現(xiàn)方案,簡化了接口電路,提高了速度。用這種結(jié)構(gòu)實(shí)現(xiàn)的單片集成譯碼器譯碼速率達(dá)350kbps、時鐘頻率30MHz。以下先分析譯堿器總體結(jié)構(gòu),然后對各模塊設(shè)計(jì)和實(shí)現(xiàn)做詳細(xì)說明。

1 算法簡述及譯碼器結(jié)構(gòu)

本文采用3 GPP標(biāo)準(zhǔn)規(guī)定的K=9,碼率r=1/2的(753,561)卷積碼,卷積編碼器送出的碼序列C,經(jīng)過信道傳輸后送入譯碼器的序列為R。譯碼器根據(jù)接受序列R,按最大似然準(zhǔn)則力圖找出正確的原始碼序列。

Viterbi譯碼過程可用狀態(tài)圖表示,圖1表示2個狀態(tài)的狀態(tài)轉(zhuǎn)移圖。Sj,t和Sj+N/2,t表示t時刻的兩個狀態(tài)。在t+1時刻,這兩個狀態(tài)值根據(jù)路徑為0或者1,轉(zhuǎn)移到狀態(tài)S2j+1和S2j+1,t+1。每一種可能的狀態(tài)轉(zhuǎn)移都根據(jù)接收到的有噪聲的序列R計(jì)算路徑度量,然后選擇出各個狀態(tài)的最小度量路徑(幸存路徑)。Viterbi算法就是通過在狀態(tài)圖中尋找最小度量路徑向前回溯L步,最后得到的即為譯碼輸出。

    本設(shè)計(jì)采用Xilinx Virtex600E FPGA芯片,在ALDEC公司的Active-HDL仿真環(huán)境下,用Verilog語言完成,并用Xilinx的ISE4綜合實(shí)現(xiàn)。Viterbi譯碼器系統(tǒng)框圖如圖2所示,主要由BMG(路徑計(jì)算模塊)、ACS(加比選模塊)、TB(路徑回溯模塊)、MMU(路徑存儲模塊)等部分組成。采用并行流水線結(jié)構(gòu),各個模塊在控制信號統(tǒng)一監(jiān)控下工作,減少了讀取數(shù)據(jù)所需時間,充分發(fā)揮了FPGA高速計(jì)算的特性,提高了整個系統(tǒng)的效率。

2 子模塊的優(yōu)化和實(shí)現(xiàn)

2.1 ACS模塊

由于采用的卷積碼約束度K=9,在譯碼過程中,每一時刻有2k-1=256個狀態(tài),512個度量路徑值,為了獲得高速率,需采用盡可能多的ACS單元。但由于實(shí)際應(yīng)用中需求電路面積小、功耗低,決定了ACS單元的數(shù)目不能太多。經(jīng)過實(shí)驗(yàn)證明,采用4個ACS單元并行處理,完成可以達(dá)到應(yīng)用要求。

圖3 度量路徑狀態(tài)分組圖

    ACS單元用來計(jì)算選擇狀態(tài)的路徑度量。它需要不斷地讀出路徑度量作為操作數(shù),然后將更新的度量寫回各個狀態(tài)。由于采用4個ACS單元并行處理,為不造成流水線堵塞,如何對RAM中的度量數(shù)據(jù)進(jìn)行讀寫是關(guān)鍵。如前述,本文采用狀態(tài)路徑存儲單元分塊的方法。將所有狀態(tài)分成4組,分別對應(yīng)于4個ACS。每次運(yùn)算時,4個ACS同時從各組狀態(tài)值中讀取數(shù)據(jù)進(jìn)行操作。

由圖1可知,狀態(tài)Sj和Sj+2/N在狀態(tài)轉(zhuǎn)移中同時得到兩個新狀態(tài)S2J和S2j+1。因此為了ACS能夠同時取出這兩個狀態(tài)值,Sj和Sj+2/N必須存儲在不同的RAM組中。同樣,兩個計(jì)算出來的新狀態(tài)S2j和S2j+1也應(yīng)如此。遵循這種準(zhǔn)則,則時也簡化接口電路,采用如下的分組算法:假設(shè)待分配狀態(tài)=Sj=Sk-2Sk-1…S1S0,所對應(yīng)的RAM組為Rm,由于RAM共分成4組,則m=(Sk-2S1)S0(兩位二進(jìn)制數(shù)表示)。狀態(tài)分組圖如圖3所示,從中可以看出,從狀態(tài)S128開始的后續(xù)狀態(tài)都有規(guī)律地交錯位置存儲。由此,ACS單元和狀態(tài)路徑存儲單元的接口電路只需采用兩個2×2交換器,如圖4所示。每一個交換器上連著兩個ACS單元和兩個RAM組。這兩個交換器由輸入狀態(tài)Sj的最高位Sk-2控制。當(dāng)Sk-2=1時,交換器交叉互聯(lián),如果Sk-2為0時,各ACS和RAM直接相連。這種接口設(shè)計(jì)十分容易實(shí)現(xiàn)。

在Viterbi譯碼算法中,譯碼狀態(tài)的轉(zhuǎn)移導(dǎo)致度量的讀出和寫入地址的不同,這樣用FPGA實(shí)現(xiàn)時就需要兩塊RAM采用乒乓模式實(shí)現(xiàn)。本文更新路徑存儲采用原位運(yùn)算方法,也就是找出狀態(tài)轉(zhuǎn)移的規(guī)律性,建立轉(zhuǎn)移后的新狀態(tài)和轉(zhuǎn)移前的老狀態(tài)際址映射關(guān)系,使度量的更新在原位上進(jìn)行,使存儲空間減小一半。

2.2幸存路徑管理模塊

幸存路徑的存回溯是Viterbi算法關(guān)鍵的一步,最終的譯碼輸出從對幸存的回溯中得到。由于采用基2的狀態(tài)轉(zhuǎn)移算法,當(dāng)前時刻對應(yīng)的前序時刻狀態(tài)只有2個,所以在路徑回溯中采用1bit指針?biāo)惴。也就是說,在每個狀態(tài)路徑更新時,只需寫1bit路徑狀態(tài)轉(zhuǎn)移信息。幸存路徑存儲單元可看作一個存儲器陣列,每列對應(yīng)一個狀態(tài),一列中的每個單元都有一個1位的指針。在實(shí)際設(shè)計(jì)中,考慮到數(shù)據(jù)總線的帶寬有限,對于8位的幸存路徑數(shù)據(jù)總線,在幸存路徑存中將256個狀態(tài)分成32塊。對應(yīng)幸存路徑時,先通過當(dāng)前狀態(tài)地址尋址的方式來選擇所對應(yīng)的幸存路徑塊。

在實(shí)際應(yīng)用中,為了保證譯碼的準(zhǔn)確度,幸存路徑的回溯長度通常取4~5倍約束長度,本文回溯長度定為64。如圖5所示,當(dāng)一個解碼初始信號進(jìn)來后,系統(tǒng)把當(dāng)前所有狀態(tài)中的最小狀態(tài),也就是最小狀態(tài)值作為當(dāng)前狀態(tài)值,路徑回溯模塊把地址值送入MMU中,從32個分組塊中選取相應(yīng)的幸存路徑存到幸存狀態(tài)值(8位),然后根據(jù)當(dāng)前狀態(tài)的指針從這8位數(shù)據(jù)中得到1位幸存路徑比特,而下一個狀態(tài)值由當(dāng)前狀態(tài)的低7位和這個幸存路徑比特決定。當(dāng)回溯了64步后,控制信號給出一個輸出指示時,當(dāng)前狀態(tài)值的最高位即是解碼輸出值。

圖5 路徑回溯模塊框圖

    本文重點(diǎn)從ACS的并行處理、度量路徑的存儲管理和路徑回溯上對Viterbi譯碼方法進(jìn)行了討論。從實(shí)際應(yīng)用出發(fā),考慮到硬件功耗的面積的減小,采用了4個ACS并行,路徑的存儲和管理都采取了分組的模式,簡化了接口電路,譯碼達(dá)到了較高的速度,完全可以滿足3 GPP標(biāo)準(zhǔn)的要求。用Xilinx的Virtex600E FPGA芯片實(shí)現(xiàn)了K=9、碼率為1/2、編碼速率為350kbps、時鐘頻率40MHz的Viterbi譯碼器。表1列出了Xilinx ISE對本設(shè)計(jì)綜合布線報告中提供的參數(shù)。

表1 Viterbi譯碼器布線參數(shù)表

[1] [2]  下一頁
  • 上一篇: 突發(fā)解調(diào)器STEL-9257在寬帶無線接入系統(tǒng)中的應(yīng)用
  • 下一篇: MPC860在七號信令網(wǎng)關(guān)中的應(yīng)用
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1