91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

通過(guò)采用FPGA器件設(shè)計(jì)一個(gè)Viterbi譯碼器

電子設(shè)計(jì) ? 來(lái)源:郭婷 ? 作者:電子設(shè)計(jì) ? 2019-04-24 08:29 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

卷積碼是廣泛應(yīng)用于衛(wèi)星通信無(wú)線通信等各種通信系統(tǒng)的信道編碼方式。Viterbi算法是一種最大似然譯碼算法。在碼的約束度較小時(shí),它比其它概率譯碼算法效率更高、速度更快,譯碼器的硬件結(jié)構(gòu)比較簡(jiǎn)單。隨著可編程邏輯技術(shù)的不斷發(fā)展,其高密度、低功耗、使用靈活、設(shè)計(jì)快速、成本低廉、現(xiàn)場(chǎng)可編程和反復(fù)可編程等特性,使FPGA逐步成為Viterbi譯碼器設(shè)計(jì)的最佳方法。項(xiàng)目目的是用FPGA實(shí)現(xiàn)一個(gè)Viterbi譯碼器。

一、譯碼器功能分析

譯碼器是一種具有“翻譯”功能的邏輯電路,這種電路能將輸入二進(jìn)制代碼的各種狀態(tài),按照其原意翻譯成對(duì)應(yīng)的輸出信號(hào)。Viterbi譯碼器是以Viterbi算法為基礎(chǔ)設(shè)計(jì)的一種譯碼器,譯碼器主要由五部分組成:分支度量單元(Branch Metric Unit)、加比選單元(Add-Compare-Select Unit)、幸存路徑管理單元(Survivor Management Unit)、判輸出單元(Decide-Output Unit)和控制單元(Control Unit)。其整體結(jié)構(gòu)如圖1。

通過(guò)采用FPGA器件設(shè)計(jì)一個(gè)Viterbi譯碼器

圖1 譯碼器結(jié)構(gòu)框圖

各單元之間的相互關(guān)系如下:接收到的輸入數(shù)據(jù)首先被送入各分支度量單元中計(jì)算出相應(yīng)的分支路徑距離;加比選單元將舊的狀態(tài)路徑度量與相應(yīng)的新產(chǎn)生的分支路徑距離相加,通過(guò)比較后選擇到達(dá)同一狀態(tài)的兩個(gè)路徑度量值中較小的分支來(lái)更新路徑度量;溢出處理防止加比選單元中的路徑度量累加值發(fā)生溢出;幸存路徑管理單元將加比選單元生成的路徑信息進(jìn)行存儲(chǔ)管理;判決輸出單元根據(jù)加比選單元選擇的路徑度量,從中選擇一個(gè)最小值,并輸出該最小值對(duì)應(yīng)的幸存路徑。所有這些單元都在控制單元的協(xié)調(diào)下工作。

1 分支度量單元

分支度量表征該分支接收到的碼元與期望碼元之間的差別。對(duì)于硬判決,這種差別指不同碼元的個(gè)數(shù)。硬判決分支度量值可以表示為:

通過(guò)采用FPGA器件設(shè)計(jì)一個(gè)Viterbi譯碼器

(式1)

其中,y為接收碼字,c為本地卷積碼輸出碼字。對(duì)于碼率為1/2硬判決譯碼方式,編碼器輸出信號(hào)可能為00、01、10、11,其路徑度量取值(漢明距離)只有0、1、2三種可能,因此需要用一個(gè)2bit的寄存器來(lái)存儲(chǔ)分支度量值。

在本文中,采用了4個(gè)ACS單元(每個(gè)ACS單元有兩個(gè)累加器)并行計(jì)算,因此需要8個(gè)分支度量單元并行計(jì)算8個(gè)條支路的度量值,并將度量值送至ACS中的累加器。

2 加比選單元

ACS單元用來(lái)累加路徑度量值并比較和選擇進(jìn)入某一狀態(tài)的兩條分支。本文中采用4個(gè)ACS單元并行計(jì)算,每16個(gè)狀態(tài)復(fù)用一個(gè)ACS結(jié)構(gòu),同時(shí)兼顧了面積和速度。

通過(guò)采用FPGA器件設(shè)計(jì)一個(gè)Viterbi譯碼器

圖 2 (2,1,7)卷積碼的狀態(tài)圖

譯碼器的核心部分是ACS單元,傳統(tǒng)的譯碼器結(jié)構(gòu)每產(chǎn)生一位譯碼需要進(jìn)行2(n-1)次加比選運(yùn)算,即2×2(n-1)=2n次加法運(yùn)算和2(n-1)次比較選擇運(yùn)算。對(duì)于(2,1,7)卷積碼來(lái)說(shuō),需要進(jìn)行128加法運(yùn)算和64次比較選擇運(yùn)算,這將占用很多的資源并產(chǎn)生很大的功耗,因此,如果能夠通過(guò)改進(jìn)ACS單元的結(jié)構(gòu)來(lái)降低其規(guī)模和功耗,將會(huì)使整個(gè)譯碼器的硬件規(guī)模和功耗大大降低。

從圖2所示的(2,1,7)卷積碼的狀態(tài)圖中可以看出:在T(i+1)時(shí)刻到達(dá)狀態(tài)S0和S1的是T(i)時(shí)刻的狀態(tài)S0和S32,……,在T(i+1)時(shí)刻到達(dá)狀態(tài)S62和S63的是T(i)時(shí)刻的狀態(tài)S31和S63。也就是說(shuō),T(i)時(shí)刻的狀態(tài)Sj和Sj+32會(huì)達(dá)到T(i+1)時(shí)刻的相鄰的兩個(gè)狀態(tài),并且這兩個(gè)狀態(tài)是S2j和S2j+1(31≥j≥0)。這也就是圖形單(ButterfllyUnit)。

通過(guò)采用FPGA器件設(shè)計(jì)一個(gè)Viterbi譯碼器

圖3 基二蝶形單元

在圖3中,T(i)時(shí)刻的狀態(tài)Sj和Sj+32都是在輸入0的時(shí)候轉(zhuǎn)移到T(i+1)時(shí)刻的狀態(tài)S2j,在輸入1的時(shí)候轉(zhuǎn)移到T(i+1)時(shí)刻的狀態(tài)S2j+1。這也就意味著ACS單元中的比較器所比較的兩個(gè)路徑度量值(BM)來(lái)自數(shù)值上相差32的兩個(gè)狀態(tài)。路徑度量的計(jì)算就是分支度量加上與這條分支相連的前一時(shí)刻的狀態(tài)選擇的路徑度量,所以,新?tīng)顟B(tài)的路徑度量為:

通過(guò)采用FPGA器件設(shè)計(jì)一個(gè)Viterbi譯碼器

(式2)

通過(guò)采用FPGA器件設(shè)計(jì)一個(gè)Viterbi譯碼器

(式3)

從以上的分析中我們可以得出一個(gè)很重要的結(jié)論:從T(i)時(shí)刻的狀態(tài)Sj(2(n-1)≥j≥0)生成的兩條支路,唯一不同的信息就是該時(shí)刻狀態(tài)Sj的輸入數(shù)據(jù),Sj的上支路輸入的是0,下支路輸入的是1。因此,一個(gè)狀態(tài)可以只生成一條支路(上支路),另一條支路(下支路)的信息已經(jīng)包括在這條支路中,要恢復(fù)出下支路只需要將上支路的輸入數(shù)據(jù)取反即可。圖4.2所示的ACS單元結(jié)構(gòu)中的累加器可以減少一半的工作量,對(duì)于本文中的(2,1,7)卷積碼的譯碼器,即由每產(chǎn)生一位譯碼工作16個(gè)時(shí)鐘周期減少為8個(gè)時(shí)鐘周期(可將時(shí)鐘頻率降為原來(lái)的1/2),減少了復(fù)用次數(shù),降低了ACS單元的復(fù)雜度和功耗。同時(shí),由于ACS單元結(jié)構(gòu)的優(yōu)化,每個(gè)狀態(tài)只需要生成一條路徑,存儲(chǔ)的幸存路徑數(shù)也由原來(lái)的128條減少為64條,也同樣使結(jié)構(gòu)變得簡(jiǎn)單,功耗有所降低。

本文引用地址:http://www.eepw.com.cn/article/265114.htm

由式(2)和式(3)可知,輸入數(shù)據(jù)(datain)不同,卷積碼的輸出C0和C1也不同,因此,同一狀態(tài)上支路的輸出與下支路不同,上下支路狀態(tài)輸出及譯碼器的輸入數(shù)據(jù)之間的關(guān)系如表1所示:

通過(guò)采用FPGA器件設(shè)計(jì)一個(gè)Viterbi譯碼器

利用上下支路分支度量值的關(guān)系就可以從上支路路徑度量累加值中計(jì)算出下支路路徑度量累加值,用Verilog HDL語(yǔ)言描述為:

case(up_branch_metric)

2‘b00: down_path_add_metric 《= up_path_add_metric + 2’b10;

2‘b01: down_path_add_metric 《= up_path_add_metric;

2’b10: down_path_add_metric 《= up_path_add_metric-2‘b10;

default: down_path_add_metric 《= 7’bxxx_xxxx;

endcase

另外,ACS單元中的累加器可以用超前進(jìn)位加法器實(shí)現(xiàn),這將使累加器不會(huì)成為速度的瓶頸。由于累加器使用固定長(zhǎng)度的寄存器(本文中采用7bit的寄存器),因此在不斷累加過(guò)程中可能會(huì)發(fā)生溢出,影響譯碼結(jié)果。解決溢出常用的方法是到達(dá)譯碼深度時(shí)從所有狀態(tài)的路徑度量值中減去最小度量值。

3 幸存路徑管理單元

幸存路徑管理單元用來(lái)完成對(duì)幸存路徑的記錄,處理ACSU輸出的信息,為輸出判決作準(zhǔn)備。SMU的實(shí)現(xiàn)主要有Register Exchange (寄存器交換)和Trace Back(回溯)兩種算法。由于寄存器交換算法比回溯有更小的譯碼延時(shí),RE法中幸存路徑寄存器記錄了幸存路徑所對(duì)應(yīng)的解碼信息,也就是譯碼輸出。采用這種方法消除了根據(jù)當(dāng)前狀態(tài)往前追蹤的必要,因此寄存器交換提供了一種速度很高的譯碼操作。

4 判決輸出單元

判決輸出單元(DOU)由兩部分組成:最小值選擇單元(MNSU:Minimum Number Select Unit)和譯碼輸出單元(DOU:Decode Output Unit)。最小值選擇單元是用來(lái)選出本文中前面4個(gè)ACS單元輸?shù)穆窂蕉攘恐抵芯哂凶钚《攘恐档墓?jié)點(diǎn), 讀取該結(jié)點(diǎn)保存的幸存路徑,供譯碼輸出單元輸出譯碼值。判決輸出單元的結(jié)構(gòu)如圖4所示:

通過(guò)采用FPGA器件設(shè)計(jì)一個(gè)Viterbi譯碼器

圖4 判決輸出單元結(jié)構(gòu)圖

5 控制單元

控制單元(CU)產(chǎn)生控制各模塊的時(shí)鐘信號(hào),是所有模塊的有序運(yùn)行的基礎(chǔ)。各時(shí)鐘信號(hào)功能如下:clk_load用于讀取前一時(shí)刻各狀態(tài)寄存器的內(nèi)容,并產(chǎn)生各狀態(tài)上支路的狀態(tài)輸出值;clk_BM用于計(jì)算各狀態(tài)上支路的分支度量值并讀取前一時(shí)刻各狀態(tài)的路徑度量值;clk_Add用于計(jì)算各狀態(tài)上支路的路徑度量值;clk_restore用于暫存各狀態(tài)上支路度量值并恢復(fù)相應(yīng)狀態(tài)下支路的路徑度量值;clk_C_S用于比較并選擇達(dá)到同一狀態(tài)的兩支路的路徑度量值的較小者,并存儲(chǔ)各狀態(tài)選擇的幸存路徑;clk_MNS用于選擇各狀態(tài)存儲(chǔ)的路徑度量值中的最小值,并保存該最小值對(duì)應(yīng)的狀態(tài);min_sel_1和min_sel_2分兩步選擇4個(gè)MNSU選擇結(jié)果的最小值,并選出最終的最小值對(duì)應(yīng)的狀態(tài);Decode_Output用于讀取該最小值對(duì)應(yīng)狀態(tài)存儲(chǔ)的幸存路徑,并輸出譯碼結(jié)果。

二、項(xiàng)目實(shí)施方案

Viterbi譯碼器大致可以分為四個(gè)部分:支路度量模塊(BMU)、加比選模塊(ACS)、幸存路徑管理模塊(SMU)和輸出產(chǎn)生模塊。其 中支路度量模塊用于完成譯碼器輸入信號(hào)與網(wǎng)格圖上的可能路徑信號(hào)的分支度量計(jì)算;加比選模塊主要把前一個(gè)狀態(tài)的路徑度量與當(dāng)前輸入信號(hào)的分支度量相加,以得到該分支的路徑度量,然后比較不同分支路徑度量的大小,同時(shí)找出最小的度量值,并更新該狀態(tài)的度量值,最后輸出狀態(tài)轉(zhuǎn)移信息;路徑管理模塊可對(duì)加比選單 元輸出的狀態(tài)轉(zhuǎn)移信息進(jìn)行處理,以便為輸出判決做準(zhǔn)備。輸出模塊可根據(jù)幸存路徑管理單元的輸出進(jìn)行輸出判決,最后輸出譯碼信息。Viterbi譯碼器基本原理框圖如下所示。

通過(guò)采用FPGA器件設(shè)計(jì)一個(gè)Viterbi譯碼器


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1645

    文章

    22050

    瀏覽量

    618599
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17984

    瀏覽量

    367092
  • 無(wú)線
    +關(guān)注

    關(guān)注

    31

    文章

    5555

    瀏覽量

    176056
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    什么是硬判決和軟判決Viterbi 譯碼算法 ?

    的可靠性,可以采用軟判決Viterbi 譯碼算法。此時(shí)解調(diào)不進(jìn)行判決而是直接輸出模擬量,或是將解調(diào)輸出波形進(jìn)行多電平量化,而不是簡(jiǎn)單的
    發(fā)表于 05-30 16:11

    應(yīng)用于LTE-OFDM系統(tǒng)的Viterbi譯碼FPGA中的實(shí)現(xiàn)

    種在FPGA中實(shí)現(xiàn)的基于軟判決的Viterbi譯碼算法,并以個(gè)(2,1,2)、回溯深度為10
    發(fā)表于 09-19 09:41

    基于IP核的Viterbi譯碼器實(shí)現(xiàn)

    【摘要】:Viterbi譯碼器在通信系統(tǒng)中應(yīng)用非常普遍,針對(duì)采用DSP只能進(jìn)行相對(duì)較低速率的Vit-erbi譯碼的問(wèn)題,人們開(kāi)始采用
    發(fā)表于 04-26 16:08

    求教ise 14.7中的viterbi譯碼器破解

    如題,求指點(diǎn)如何使用ise14.7中的viterbi譯碼器ip,只能仿真,怎么下載呢?license怎么破解?
    發(fā)表于 05-04 13:19

    基于FPGAViterbi譯碼器該怎樣去設(shè)計(jì)?

    譯碼器有哪些功能?Viterbi譯碼器是由哪幾部分組成的?
    發(fā)表于 05-07 07:28

    基帶芯片中Viterbi譯碼器的研究與實(shí)現(xiàn)

    基于對(duì)傳統(tǒng)Viterbi 譯碼器的分析和對(duì)改進(jìn)的Viterbi 算法理論的修正,提出了種新的Viterbi
    發(fā)表于 08-13 10:43 ?23次下載

    FPGA實(shí)現(xiàn)的角度對(duì)大約束度Viterbi譯碼器中路徑存儲(chǔ)

    大約束度Viterbi譯碼器中路徑存儲(chǔ)單元的設(shè)計(jì) 1 引言 Viterbi譯碼算法是種最大似然
    發(fā)表于 08-15 17:21 ?1087次閱讀
    從<b class='flag-5'>FPGA</b>實(shí)現(xiàn)的角度對(duì)大約束度<b class='flag-5'>Viterbi</b><b class='flag-5'>譯碼器</b>中路徑存儲(chǔ)

    譯碼器,譯碼器是什么意思

    譯碼器,譯碼器是什么意思 譯碼器是組合邏輯電路的個(gè)重要的器件,其可以分為:變量
    發(fā)表于 03-08 16:32 ?5642次閱讀

    Viterbi譯碼器回溯算法實(shí)現(xiàn)

    該文介紹了兩種Viterbi 譯碼器回溯譯碼算法,通過(guò)對(duì)這兩種算法硬件實(shí)現(xiàn)結(jié)構(gòu)上的優(yōu)化,給出了這兩種算法的FPGA 實(shí)現(xiàn)方法,比較了兩種實(shí)現(xiàn)
    發(fā)表于 05-28 15:18 ?33次下載
    <b class='flag-5'>Viterbi</b><b class='flag-5'>譯碼器</b>回溯算法實(shí)現(xiàn)

    基于ASIC的高速Viterbi譯碼器設(shè)計(jì)

    針對(duì)無(wú)線通信系統(tǒng)中對(duì)于高頻率、高吞吐量的要求,提出了種基于ASIC的高速Viterbi譯碼器實(shí)現(xiàn)方案。該譯碼器在約束度小于等于9的情況下,采用
    發(fā)表于 11-11 17:56 ?6次下載
    基于ASIC的高速<b class='flag-5'>Viterbi</b><b class='flag-5'>譯碼器</b>設(shè)計(jì)

    基于FPGA的指針?lè)答伿降凸?b class='flag-5'>Viterbi譯碼器的性能分析和設(shè)計(jì)

    組成部分,其功耗與性能成為基帶設(shè)計(jì)中非常關(guān)鍵的環(huán)。因此,設(shè)計(jì)功耗低、譯碼性能好的Viterbi譯碼器尤為重要。
    發(fā)表于 10-06 11:09 ?685次閱讀
    基于<b class='flag-5'>FPGA</b>的指針?lè)答伿降凸?b class='flag-5'>Viterbi</b><b class='flag-5'>譯碼器</b>的性能分析和設(shè)計(jì)

    關(guān)于基于Xilinx FPGA 的高速Viterbi回溯譯碼器的性能分析和應(yīng)用介紹

    代移動(dòng)通信系統(tǒng)目前主要采用多載波傳輸技術(shù), 基帶傳輸速率較3G 有很大提高, 般要求業(yè)務(wù)速率能達(dá)到30 Mb/ s 以上。約束長(zhǎng)度卷積碼以及Viterbi
    發(fā)表于 10-06 10:16 ?3125次閱讀
    關(guān)于基于Xilinx <b class='flag-5'>FPGA</b> 的高速<b class='flag-5'>Viterbi</b>回溯<b class='flag-5'>譯碼器</b>的性能分析和應(yīng)用介紹

    基于XC6SLX16-2CSG-324型FPGA實(shí)現(xiàn)Viterbi譯碼器的設(shè)計(jì)

    記(n0,k0,m)為卷積碼編碼,該編碼共有2k0×m個(gè)狀態(tài),Viterbi譯碼器必須具備同樣的2k0×m
    發(fā)表于 07-15 20:53 ?1875次閱讀
    基于XC6SLX16-2CSG-324型<b class='flag-5'>FPGA</b>實(shí)現(xiàn)<b class='flag-5'>Viterbi</b><b class='flag-5'>譯碼器</b>的設(shè)計(jì)

    采用可編程邏輯器件譯碼器優(yōu)化實(shí)現(xiàn)方案

    ,提出種在FPGA設(shè)計(jì)中,采用全并行結(jié)構(gòu)、判決信息比特與路徑信息向量同步存儲(chǔ)以及路徑度量最小量化的譯碼器優(yōu)化實(shí)現(xiàn)方案。測(cè)試和試驗(yàn)結(jié)果表明,該方案與傳統(tǒng)的
    發(fā)表于 08-11 17:41 ?1145次閱讀
    <b class='flag-5'>采用</b>可編程邏輯<b class='flag-5'>器件</b>的<b class='flag-5'>譯碼器</b>優(yōu)化實(shí)現(xiàn)方案

    淺談FPGA的指針?lè)答伿降凸?b class='flag-5'>Viterbi譯碼器設(shè)計(jì)

    為了滿足復(fù)雜的無(wú)線通信系統(tǒng)功耗以及性能要求,提出并設(shè)計(jì)了種指針?lè)答伿?b class='flag-5'>Viterbi譯碼器。該譯碼器使相鄰時(shí)刻的
    的頭像 發(fā)表于 04-28 09:35 ?2275次閱讀
    淺談<b class='flag-5'>FPGA</b>的指針?lè)答伿降凸?b class='flag-5'>Viterbi</b><b class='flag-5'>譯碼器</b>設(shè)計(jì)
    主站蜘蛛池模板: 五月婷花 | 全免费午夜一级毛片真人 | 亚洲va中文va欧美va爽爽 | 在线亚洲日产一区二区 | 伊人色综合久久天天爱 | 国产福利乳摇在线播放 | 国产成人夜间影院在线观看 | 婷婷视频网 | 在线电影亚洲 | 亚洲影视大全 | 免费看又爽又黄禁片视频1000 | 美女视频黄a全部 | 黄色在线视频网 | 啪啪免费看视频 | 男人天堂资源站 | 狠狠狠狠狠狠狠狠 | 欧美性色欧美a在线播放 | 亚洲人成影院在线高清 | 人与牲动交xxxbbb | 一级毛片一级毛片一级毛片aa | 美国一级毛片片aa久久综合 | 精品香港经典三级在线看 | 伊人久久精品成人网 | 亚洲第一色图 | 日本在线播放一区 | 国产乱淫a∨片免费视频 | 性欧美xxxx视频在线观看 | 亚洲成人黄色网址 | 国产小视频在线免费 | 五月天婷婷综合 | 亚洲最大的成网4438 | 天天色影视综合网 | 亚洲一卡2卡3卡4卡5卡乱码 | 四虎影院久久 | 色天使久久综合给合久久97色 | 一区二区在线观看高清 | 久久久久国产成人精品亚洲午夜 | 欧美黄视频在线观看 | 日本黄色三级视频 | 免费观看激色视频网站bd | 国产人成午夜免费看 |