一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

通過(guò)Viterbi譯碼算法實(shí)現(xiàn)譯碼器優(yōu)化實(shí)現(xiàn)方案

電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2018-10-02 01:07 ? 次閱讀

1 引 言

由于卷積碼優(yōu)良的性能,被廣泛應(yīng)用于深空通信、衛(wèi)星通信和2G、3G移動(dòng)通信中。卷積碼有三種譯碼方法:門(mén)限譯碼、概率譯碼和Viterbi算法,其中Viterbi算法是一種基于網(wǎng)格圖的最大似然譯碼算法,是卷積碼的最佳譯碼方式,具有效率高、速度快等優(yōu)點(diǎn)。從工程應(yīng)用角度看,對(duì)Viterbi譯碼器的性能*價(jià)指標(biāo)主要有譯碼速度、處理時(shí)延和資源占用等。本文通過(guò)對(duì)Viterbi譯碼算法及卷積碼編碼網(wǎng)格圖特點(diǎn)的分析,提出一種在FPGA設(shè)計(jì)中,采用全并行結(jié)構(gòu)、判決信息比特與路徑信息向量同步存儲(chǔ)以及路徑度量最小量化的譯碼器優(yōu)化實(shí)現(xiàn)方案。測(cè)試和試驗(yàn)結(jié)果表明,該方案與傳統(tǒng)的譯碼算法相比,具有更高的速度、更低的時(shí)延和更簡(jiǎn)單的結(jié)構(gòu)。

2 卷積編碼網(wǎng)格圖特點(diǎn)

圖1所示為卷積編碼網(wǎng)格圖結(jié)構(gòu),圖中每一狀態(tài)有兩條輸入支路和兩條輸出支路。

2.1 輸入支路的特點(diǎn)

任意一個(gè)狀態(tài)節(jié)點(diǎn)Si都有兩條輸入支路,且這兩條輸入支路對(duì)應(yīng)的源節(jié)點(diǎn)分別為:

此外,i為偶數(shù)時(shí),兩條輸入支路的輸入信息都為‘1’;i為奇數(shù)時(shí),兩條輸入支路的輸入信息都為‘0’。

2.2 輸出支路的特點(diǎn)

任意一個(gè)狀態(tài)節(jié)點(diǎn)Si都有兩條輸出支路,且兩條輸出支路對(duì)應(yīng)的目的節(jié)點(diǎn)分別為:

此外,目的節(jié)點(diǎn)是Sj1的輸出支路對(duì)應(yīng)的輸入信息都為‘0’;目的節(jié)點(diǎn)是Sj2的輸出支路對(duì)應(yīng)的輸入信息都為‘1’。

3 Viterbi譯碼器的優(yōu)化算法

3.1 判決信息比特與路徑信息向量同步存儲(chǔ)算法

由網(wǎng)格圖的輸入支路特點(diǎn)分析可知,產(chǎn)生任意一個(gè)狀態(tài)節(jié)點(diǎn)Si的輸入條件mi是確定的,即mi=‘1’,i為偶數(shù);mi=‘0’,i為奇數(shù)。輸入條件mi表示譯碼器最終需要輸出的比特信息。此外,譯碼器所要找的留選路徑是不同狀態(tài)的組合。對(duì)于(2,1,6)卷積碼而言,具有2m=26=64(m為編碼存儲(chǔ))個(gè)不同狀態(tài),可以用6位比特向量來(lái)表示所有的狀態(tài)。將mi作為最高位加在狀態(tài)向量上,用7位比特向量同時(shí)表示每一狀態(tài)和對(duì)應(yīng)的輸入支路的譯碼信息,這樣在譯碼器回溯時(shí)就可以直接輸出存儲(chǔ)向量的高位作為譯碼器的輸出。采用這種方法大大降低了回溯路徑和譯碼器判決的難度,由此降低了譯碼器結(jié)構(gòu)的復(fù)雜性。

3.2 全并行結(jié)構(gòu)設(shè)計(jì)

全并行結(jié)構(gòu)Viterbi譯碼器的特點(diǎn)是所有狀態(tài)的路徑度量計(jì)算或路徑存儲(chǔ)同時(shí)進(jìn)行。其中,路徑度量包括兩條輸出支路和兩條輸入支路的度量,路徑存儲(chǔ)包括狀態(tài)向量存儲(chǔ)和譯碼比特信息存儲(chǔ)。因此,在(2,1,6)卷積碼的全并行譯碼器的FPGA設(shè)計(jì)中,一個(gè)時(shí)鐘周期內(nèi)需要實(shí)現(xiàn)2×n×2m=256次路徑度量運(yùn)算和2m=64次7比特向量存儲(chǔ)操作。

全并行結(jié)構(gòu)對(duì)每一個(gè)狀態(tài)都具有獨(dú)立的處理單元,互不影響,同時(shí)工作,比起傳統(tǒng)的串行結(jié)構(gòu),大大提高了譯碼速度。并且由于在FPGA中,有著海量的獨(dú)立邏輯單元(LCs)和豐富的分布式存儲(chǔ)資源(RAM),全并行結(jié)構(gòu)設(shè)計(jì)正好可以發(fā)揮FPGA的這一優(yōu)勢(shì)。

3.3 路徑度量的最小量化算法

隨著網(wǎng)格圖的行進(jìn),每個(gè)狀態(tài)輸出支路的路徑度量會(huì)不斷增加,度量值所需量化位寬越來(lái)越大,導(dǎo)致存儲(chǔ)資源的增加。為了降低路徑度量存儲(chǔ)單元的大小,節(jié)約存儲(chǔ)資源,設(shè)計(jì)中采用了路徑度量的最小量化算法。在每次路徑度量運(yùn)算時(shí),將各狀態(tài)的度量值減去上一次各狀態(tài)留選路徑度量值的最小值。即需要保存的路徑度量值只是各狀態(tài)度量與最小度量的差值,從而達(dá)到減少度量值量化的位寬。

對(duì)于(2,1,m)卷積碼,每次計(jì)算出的路徑度量最大值與最小值之差不超過(guò)2×m,所以,路徑度量的量化寬度為log2(2m)。對(duì)于(2,1,6)卷積碼,存儲(chǔ)路徑度量的寄存器位寬為log2(2×6)=4。

4 FPGA實(shí)現(xiàn)及驗(yàn)證

4.1 FPGA實(shí)現(xiàn)的整體框架

采用Altera公司的QuartusⅡ?yàn)殚_(kāi)發(fā)工具,以EPlS25的FPGA為驗(yàn)證平臺(tái),用于設(shè)計(jì)和驗(yàn)證本文提出的Viterbi優(yōu)化譯碼算法,譯碼器整體設(shè)計(jì)框架如圖2所示。譯碼器結(jié)構(gòu)主要包括時(shí)鐘單元、主控單元、全并行ACS單元、回溯單元及譯碼輸出單元。

(1)時(shí)鐘單元

用于把板級(jí)時(shí)鐘經(jīng)過(guò)鎖相環(huán)分頻獲得譯碼器所需的工作時(shí)鐘。

(2)主控單元

給出各種控制信號(hào),控制其他各單元的工作時(shí)序,保證譯碼器各模塊協(xié)調(diào)工作。

(3)支路度量與全并行ACS單元

由64個(gè)具有相同結(jié)構(gòu)和功能的支路度量與全并行ACS構(gòu)成,用于計(jì)算和比較每條支路的度量,選出并保存度量值最小的路徑供回溯單元使用,存儲(chǔ)路徑包括表示狀態(tài)的6位信息向量和對(duì)應(yīng)的譯碼信息比特mi。由于(2,1,6)卷積碼的譯碼深度D=5(m+1)=35,為保證存儲(chǔ)單元寫(xiě)操作與回溯單元讀操作同步進(jìn)行,將存儲(chǔ)單元分為兩個(gè)部分做流水線(xiàn)處理,因此存儲(chǔ)單元大小應(yīng)有2×D×(m+1)×2m=31 360 b。

(4)回溯單元

用于在譯碼深度到達(dá)時(shí)刻,根據(jù)各狀態(tài)ACS單元選出的留選路徑,判斷度量最小的留選路徑,并從這條路徑對(duì)應(yīng)的狀態(tài)開(kāi)始向前尋找,直到找完前面所有狀態(tài),同時(shí)把從存儲(chǔ)單元中讀出的譯碼信息比特mi送給譯碼輸出單元。

(5)譯碼輸出單元

將回溯單元送出的反序譯碼信息按正序輸出,用RAM實(shí)現(xiàn)。即先將比特信息按順序?qū)懭隦AM,待一段信息寫(xiě)完后再按反序讀出。為了保證本段反序讀操作與下一段順序?qū)懖僮魍瑫r(shí)進(jìn)行,將RAM分為兩部分做流水線(xiàn)處理。每段信息流的長(zhǎng)度為譯碼深度,因此流水線(xiàn)RAM的大小為2×D=70 b。

4.2 設(shè)計(jì)驗(yàn)證

為了驗(yàn)證本文提出的Viterbi優(yōu)化譯碼算法,編寫(xiě)了圖3所示的驗(yàn)證框圖。包括一個(gè)信源產(chǎn)生模塊、一個(gè)卷積碼編碼模塊、一個(gè)偽隨機(jī)序列發(fā)生模塊以及誤碼統(tǒng)計(jì)模塊。在編碼器輸出中加上偽隨機(jī)序列模擬的噪聲構(gòu)成有擾譯碼輸入信息,用于驗(yàn)證譯碼器的糾錯(cuò)性能。

通過(guò)Viterbi譯碼算法實(shí)現(xiàn)譯碼器優(yōu)化實(shí)現(xiàn)方案



通過(guò)QuartusⅡ軟件內(nèi)嵌的signalTap及JTAG下載線(xiàn)在EPlS25的FPGA上的在線(xiàn)測(cè)試,得到時(shí)序圖如圖4所示。

圖中,信號(hào)量BER是誤碼統(tǒng)計(jì)模塊統(tǒng)計(jì)的誤碼數(shù),在Viterbi譯碼能力范圍內(nèi),其值始終為0,這就驗(yàn)證了譯碼器的譯碼功能。通過(guò)測(cè)試與比較性能指標(biāo)得到以下結(jié)果:

(1)譯碼器速度

通過(guò)在FPGA開(kāi)發(fā)板中的實(shí)際運(yùn)行,譯碼器輸出的比特速率可達(dá)90 Mb/s。這與QuartusⅡ提供的Viterbi譯碼器IP核的parallel結(jié)構(gòu)相當(dāng),而比其hybrid結(jié)構(gòu)的譯碼速度快十幾倍。

(2)譯碼器時(shí)延

本方案的譯碼器時(shí)延大小主要取決于譯碼深度D。(2,1,6)卷積碼的譯碼深度為D=35,回溯單元處理時(shí)間和D相同;同時(shí),回溯前最小度量的判斷時(shí)間為(m-1),所以從譯碼輸入到譯碼輸出的總延時(shí)為2×D+(m-1)=75,這比起采用QuartusⅡ提供的Viterbi譯碼器IP核(延時(shí)為170)縮短了一半以上。

(3)譯碼器資源

QuartusⅡ軟件的資源分析綜合報(bào)告如圖5所示,主要消耗的資源為L(zhǎng)Es:2 339,占整個(gè)芯片邏輯資源的9%;RAM:31 430,占整個(gè)芯片RAM資源的2%。因此,本方案對(duì)資源的需求是很少的。這與QuartusⅡ提供的3.2版本的Viterbi譯碼器IP核相當(dāng),而比4.2版本的Viterbi節(jié)省1 000多個(gè)邏輯資源。

5 結(jié) 語(yǔ)

通過(guò)對(duì)Viterbi譯碼算法及卷積碼編碼網(wǎng)格圖特點(diǎn)的深入分析,提出一種采用全并行結(jié)構(gòu)、判決信息比特與路徑信息向量同步存儲(chǔ)以及路徑度量最小量化算法的譯碼器優(yōu)化實(shí)現(xiàn)方案。測(cè)試和試驗(yàn)結(jié)果表明,在不降低譯碼器性能的前提下,能提高譯碼速度、降低譯碼器的資源消耗和時(shí)延、簡(jiǎn)化譯碼器結(jié)構(gòu)。

聲明:本文內(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)注

    1643

    文章

    21923

    瀏覽量

    612377
  • 衛(wèi)星通信
    +關(guān)注

    關(guān)注

    12

    文章

    744

    瀏覽量

    39128
  • 譯碼器
    +關(guān)注

    關(guān)注

    4

    文章

    312

    瀏覽量

    50862
收藏 人收藏

    評(píng)論

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

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

    Viterbi 譯碼算法可以簡(jiǎn)單概括為“相加-比較-保留”,譯碼器運(yùn)行是前向的、無(wú)反饋的,實(shí)現(xiàn)過(guò)程并不復(fù)雜。我們來(lái)分析
    發(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的軟判決Viterbi
    發(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)始采用FPGA實(shí)現(xiàn)高速率
    發(fā)表于 04-26 16:08

    基于FPGA的Viterbi譯碼器算法該怎么優(yōu)化?

    由于卷積碼優(yōu)良的性能,被廣泛應(yīng)用于深空通信、衛(wèi)星通信和2G、3G移動(dòng)通信中。卷積碼有三種譯碼方法:門(mén)限譯碼、概率譯碼Viterbi算法,其
    發(fā)表于 11-01 08:05

    基于FPGA的Viterbi譯碼器該怎樣去設(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 ?1044次閱讀
    從FPGA<b class='flag-5'>實(shí)現(xiàn)</b>的角度對(duì)大約束度<b class='flag-5'>Viterbi</b><b class='flag-5'>譯碼器</b>中路徑存儲(chǔ)

    譯碼器

    譯碼器 譯碼是編碼的逆過(guò)程,即將某個(gè)二進(jìn)制翻譯成電路的某種狀態(tài)。實(shí)現(xiàn)譯碼操作的電路稱(chēng)為譯碼器。
    發(fā)表于 09-27 12:59 ?1.4w次閱讀
    <b class='flag-5'>譯碼器</b>

    Viterbi譯碼原理

    Viterbi譯碼原理 Viterbi譯碼算法(簡(jiǎn)稱(chēng)VA算法)是由
    發(fā)表于 11-13 18:50 ?7714次閱讀
    <b class='flag-5'>Viterbi</b><b class='flag-5'>譯碼</b>原理

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

    該文介紹了兩種Viterbi 譯碼器回溯譯碼算法,通過(guò)對(duì)這兩種算法硬件
    發(fā)表于 05-28 15:18 ?33次下載
    <b class='flag-5'>Viterbi</b><b class='flag-5'>譯碼器</b>回溯<b class='flag-5'>算法</b><b class='flag-5'>實(shí)現(xiàn)</b>

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

    針對(duì)無(wú)線(xiàn)通信系統(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ì)

    譯碼器如何實(shí)現(xiàn)擴(kuò)展

    通過(guò)正確配置譯碼器的使能輸入端,可以將譯碼器的位數(shù)進(jìn)行擴(kuò)展。例如,實(shí)驗(yàn)室現(xiàn)在只有3線(xiàn)- 8線(xiàn)譯碼器(如74138),要求我{ ]實(shí)現(xiàn)一個(gè)4線(xiàn)
    發(fā)表于 11-23 08:44 ?3.6w次閱讀
    <b class='flag-5'>譯碼器</b>如何<b class='flag-5'>實(shí)現(xiàn)</b>擴(kuò)展

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

    新一代通信系統(tǒng)中仍然占有一席之地。這就要求進(jìn)一步提高Viterbi 譯碼器譯碼速率, 同時(shí)優(yōu)化Viterbi 設(shè)計(jì)以減少由速率提高和約束長(zhǎng)
    發(fā)表于 10-06 10:16 ?2927次閱讀
    關(guān)于基于Xilinx FPGA 的高速<b class='flag-5'>Viterbi</b>回溯<b class='flag-5'>譯碼器</b>的性能分析和應(yīng)用介紹

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

    卷積碼是廣泛應(yīng)用于衛(wèi)星通信、無(wú)線(xiàn)通信等各種通信系統(tǒng)的信道編碼方式。Viterbi算法是一種最大似然譯碼算法。在碼的約束度較小時(shí),它比其它概率譯碼
    的頭像 發(fā)表于 04-24 08:29 ?3162次閱讀
    <b class='flag-5'>通過(guò)</b>采用FPGA器件設(shè)計(jì)一個(gè)<b class='flag-5'>Viterbi</b><b class='flag-5'>譯碼器</b>

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

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