• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Turbo碼的DSP和FPGA實(shí)現(xiàn)之比較

      2013-01-14 08:51:20張永超張志麗
      無(wú)線電通信技術(shù) 2013年2期
      關(guān)鍵詞:譯碼器交織譯碼

      張永超,蔣 博,張志麗

      (1.河北遠(yuǎn)東通信系統(tǒng)工程有限公司,河北石家莊050200;2.中國(guó)電子科技集團(tuán)公司第五十四研究所,河北石家莊050081)

      0 引言

      法國(guó)學(xué)者C.Berrou等人于1993年提出了具有幾乎接近Shannon極限的Turbo碼,其不僅在低信噪比的高噪聲環(huán)境下性能優(yōu)越,而且具有很強(qiáng)的抗衰落和抗干擾能力。3GPP、LTE及Wimax等無(wú)線標(biāo)準(zhǔn)組織紛紛將其作為其信道編碼方式。同時(shí),衛(wèi)星移動(dòng)通信系統(tǒng)由于其受移動(dòng)性及環(huán)境影響,更需要Turbo碼這類(lèi)糾錯(cuò)性能強(qiáng)大的信道編碼來(lái)進(jìn)行保障。

      Turbo碼采用交織器將信息序列與交織之后的序列分別經(jīng)過(guò)卷積編碼器得到并行級(jí)聯(lián)卷積碼,然后采用軟信息反復(fù)迭代譯碼。Turbo碼譯碼算法主要有:逐序列譯碼的軟輸出的維特比譯碼算法(SOVA)和逐比特譯碼的最大后驗(yàn)概率譯碼算法(MAP)。MAP算法由于其相對(duì)于Shannon容量,在Eb/N0小于1 dB時(shí),便可得到可接受的譯碼性能,得到了廣泛應(yīng)用。

      Turbo碼在工程實(shí)現(xiàn)上一般采用DSP方式或者FPGA方式。本文對(duì)該2種實(shí)現(xiàn)方式進(jìn)行了設(shè)計(jì)和比較。

      1 Turbo碼編譯碼原理

      1.1 Turbo編碼器原理

      Turbo碼編碼器是由2個(gè)遞歸系統(tǒng)卷積碼(RSC)通過(guò)交織器連接而成。圖1是并行級(jí)聯(lián)卷積碼(PCCC)的編碼結(jié)構(gòu)圖。輸入的信息序列,及該序列經(jīng)過(guò)交織處理之后的序列分別被送入2個(gè)并行級(jí)聯(lián)的分量編碼器,這2個(gè)分量編碼器結(jié)構(gòu)相同,且工作在相同的時(shí)鐘,僅是由于輸入序列不同,所以得到的輸出序列也不同。

      假設(shè)輸入信息序列為u=(u1,u2,…uN),交織器對(duì)該輸入信息序列進(jìn)行交織之后的序列為u1=分量編碼器1對(duì)原始輸入信息序列進(jìn)行編碼,編碼后的輸出序列為Xp1,分量編碼器2對(duì)交織后的序列進(jìn)行編碼,編碼后的輸出序列為Xp2。為了得到不同碼率的碼字,可以對(duì)Xp1和Xp2進(jìn)行刪余,刪余之后的序列為Xp,將信息序列和Xp進(jìn)行復(fù)接即可得到編碼后的輸出。

      圖1 Turbo碼編碼器原理圖

      1.2 Turbo譯碼器原理

      Turbo碼的譯碼一般采用軟輸入軟輸出(SISO)的反饋迭代遞推算法。其譯碼模塊一般包含2個(gè)相同的、并行連接的RSC分量譯碼器,與編碼器中的2個(gè)分量編碼器相對(duì)應(yīng),另外還包含一個(gè)與編碼器中相同的交織器和一個(gè)相應(yīng)的解交織器。其譯碼模塊的構(gòu)成框圖如圖2所示。

      圖2 Turbo碼譯碼器原理圖

      Turbo碼的譯碼時(shí)通過(guò)2個(gè)分量譯碼器交錯(cuò)重復(fù)譯碼來(lái)完成的。首先將信息序列ys和校驗(yàn)序列y1p送入到分量譯碼器1,計(jì)算出相應(yīng)的軟信息L1。將信息序列和L1經(jīng)過(guò)交織器后,連同y2p共同送入分量譯碼器2,計(jì)算出相應(yīng)的軟信息L2,將L2進(jìn)行解交織作為先驗(yàn)信息送入到分量譯碼器1;這便是一次迭代的過(guò)程。2個(gè)分量譯碼器之間互相反饋軟信息,進(jìn)行迭代運(yùn)算。經(jīng)過(guò)一定迭代次數(shù)后,2個(gè)分量譯碼器的輸出便趨于一致,對(duì)其進(jìn)行判決,即可得到譯碼結(jié)果。

      2個(gè)分量譯碼器采用相同的結(jié)構(gòu)?;谧畲蠛篁?yàn)概率(MAP)算法可以取得最佳的Turbo碼譯碼性能,但是由于其采用了大量的指數(shù)及乘法運(yùn)算,硬件實(shí)現(xiàn)比較困難。Log-MAP是MAP算法在對(duì)數(shù)域的簡(jiǎn)化,它避免了指數(shù)運(yùn)算,將乘法運(yùn)算轉(zhuǎn)換為加法運(yùn)算。Max-Log-MAP在Log-MAP基礎(chǔ)上,將對(duì)數(shù)運(yùn)算轉(zhuǎn)換為max*運(yùn)算,大大降低了硬件實(shí)現(xiàn)的難度。

      Max-log-MAP算法是逐比特最大后驗(yàn)概率算法。該算法定義的max*運(yùn)算為:

      該算法需要對(duì)每個(gè)比特計(jì)算其前向傳遞概率、分支轉(zhuǎn)移概率和后向傳遞概率。

      分支轉(zhuǎn)移概率:

      前向傳遞概率:

      反向傳遞概率:

      2 Turbo碼實(shí)現(xiàn)及性能

      本次試驗(yàn)采用的3GPP標(biāo)準(zhǔn)中的RSC編碼器(其生成方式如式(5)和式(6)所示)。交織器為QPP(二項(xiàng)式置換)交織器,譯碼算法為Max-Log-Map算法。迭代次數(shù)為4次。

      2.1 DSP實(shí)現(xiàn)

      驗(yàn)證設(shè)計(jì)所采用的DSP是ADI公司推出的TigerSHARC(TS)系列信號(hào)處理器 ADSP-TS201S。它是一種超高性能靜態(tài)超標(biāo)量浮點(diǎn)DSP,可運(yùn)行主鐘達(dá)600 MHz,非常適合于對(duì)計(jì)算能力和實(shí)時(shí)性有苛刻要求的大計(jì)算量的信號(hào)處理任務(wù)。

      在驗(yàn)證過(guò)程中,RSC碼的結(jié)構(gòu)可用生成矩陣的方式表示。當(dāng)前編碼器的狀態(tài)為(reg1,reg2,reg3),則其公式如下所示:

      編碼是通過(guò)建立Trellis轉(zhuǎn)移圖進(jìn)行實(shí)現(xiàn)的。Trellis圖是一個(gè)事先生成存儲(chǔ)好的一個(gè)狀態(tài)轉(zhuǎn)移表,只要給出編碼器當(dāng)前狀態(tài)以及輸入的信息比特,便可通過(guò)查表的方式得到編碼器下一轉(zhuǎn)移狀態(tài)和對(duì)應(yīng)的輸出比特。該狀態(tài)轉(zhuǎn)移表可以用C語(yǔ)言的結(jié)構(gòu)體實(shí)現(xiàn)。Trellis轉(zhuǎn)移圖可根據(jù)式(5)和式(6)生成。

      交織可通過(guò)查表完成。QPP-Interleaver函數(shù)用來(lái)實(shí)現(xiàn)QPP算法生成交織矩陣。QPP交織需要確定二項(xiàng)式置換的2個(gè)系數(shù)。該系數(shù)可通過(guò)文獻(xiàn)[4]來(lái)確定。

      Max-Log-Map算法對(duì)3種度量值進(jìn)行歸一化,做了防溢出處理。本實(shí)現(xiàn)中,采用浮點(diǎn)實(shí)現(xiàn),送入到譯碼模塊的數(shù)是浮點(diǎn)型數(shù)據(jù),精度較高。

      2.2 FPGA實(shí)現(xiàn)

      驗(yàn)證設(shè)計(jì)所采用的FPGA是ALTERA公司推出的StratixⅡ系列芯片EP2S180F1020I4。該芯片具有多達(dá)180 K個(gè)等效邏輯單元(LE)和9 Mb的RAM。

      在FPGA上對(duì)Turbo碼編碼器的設(shè)計(jì)關(guān)鍵在于RSC編碼模塊的設(shè)計(jì)、交織模塊的設(shè)計(jì)、打孔模塊的設(shè)計(jì)以及各模塊時(shí)序的控制上。

      交織矩陣表可作為參數(shù)由MATLAB提供,存儲(chǔ)在ROM表中。打孔根據(jù)所要求的碼率按照“盡量平均”的方式打孔,即刪除的校驗(yàn)比特在整個(gè)校驗(yàn)序列中最好均勻分布。

      編碼部分的FPGA框圖如圖3所示。

      圖3 編碼模塊結(jié)構(gòu)框圖

      編碼模塊的輸入為外部提供的待編碼的二進(jìn)制序列x,輸出為編碼之后的碼字序列。輸入數(shù)據(jù)首先經(jīng)過(guò)RSC編碼器進(jìn)行編碼;其次,輸入數(shù)據(jù)經(jīng)過(guò)交織得到交織之后的數(shù)據(jù);之后,交織后的數(shù)據(jù)經(jīng)過(guò)RSC編碼器編碼;最后,根據(jù)所需的碼率進(jìn)行打孔。

      譯碼部分FPGA框圖如圖4所示。

      圖4 譯碼模塊的結(jié)構(gòu)框圖

      譯碼模塊的輸入首先經(jīng)過(guò)解打孔,分解出信息序列x,校驗(yàn)序列z1,校驗(yàn)序列z2。之后,將信息序列進(jìn)行交織,此處的交織器采用和編碼時(shí)完全相同的交織器,得到交織之后的序列x_interleaved。將該4組序列送入到迭代譯碼模塊,進(jìn)行一定次數(shù)的迭代譯碼。最終迭代的結(jié)果以軟信息形式存儲(chǔ)在存儲(chǔ)器2中,以待最后的判決。

      迭代譯碼模塊是2個(gè)子譯碼器的相互傳遞軟信息迭代譯碼的綜合。其中,譯碼器來(lái)實(shí)現(xiàn)Max-Log-Map算法,解交織器是交織器的逆過(guò)程。

      2.3 性能分析與比較

      以Turbo碼(104,220)為例,比較了 DSP實(shí)現(xiàn)和FPGA實(shí)現(xiàn)的差異。

      在DSP上實(shí)現(xiàn)時(shí),程序中調(diào)用time.h頭文件,利用clock()函數(shù),計(jì)算出了Turbo編譯碼所使用的時(shí)鐘周期數(shù),如表1所示。

      表1 DSP的處理時(shí)間

      在FPGA上實(shí)現(xiàn)時(shí),用QuartusⅡ編譯綜合后的資源占用情況,如表2所示。

      表2 FPGA資源占用情況

      通過(guò)SignalTapⅡLogic Analyzer捕捉片內(nèi)信號(hào)計(jì)算出,完成編碼需要429個(gè)時(shí)鐘周期,完成譯碼模塊需要8 424個(gè)時(shí)鐘周期。如果FPGA運(yùn)行在50 MHz時(shí)鐘頻率下,則編碼需要約8.6 μs,譯碼需要約 168.5 μs。

      在驗(yàn)證時(shí),DSP芯片工作在600 MHz,而FPGA芯片工作在50 MHz。在FPGA上編譯碼所需要的總時(shí)間約是DSP上的十分之一??梢?jiàn)在處理時(shí)間上FPGA的優(yōu)勢(shì)還是顯而易見(jiàn)的。

      但是在前期代碼的設(shè)計(jì)和編寫(xiě)周期上,F(xiàn)PGA并不占優(yōu)勢(shì),相反DSP以其代碼編修改靈活,編譯時(shí)間快,容易調(diào)試等特點(diǎn)體現(xiàn)出了其優(yōu)勢(shì)。

      3 結(jié)束語(yǔ)

      本文既用DSP實(shí)現(xiàn)了Turbo碼,又用FGPA實(shí)現(xiàn)了Turbo碼,為工程實(shí)際應(yīng)用提出了有效的、可靠的參考。通過(guò)綜合出的信息可以更準(zhǔn)確、迅速地估計(jì)和判斷出系統(tǒng)中用哪種方式進(jìn)行Turbo編譯碼更有利于實(shí)現(xiàn)。

      [1] BERROU C,GLAVIEUX A.THITIMAJSHIMA P.Near Shannon Limit Error-correcting Coding and Decoding:Turbo-codes[C]∥ Geneva:Communications,1993.ICC '93 Geneva ,1993,2:1064-1070.

      [2] 楊海芬.Turbo碼編譯碼方法研究與實(shí)現(xiàn)[D].成都:西南交通大學(xué),2003.

      [3] 王新梅,肖國(guó)鎮(zhèn).糾錯(cuò)碼-原理與方法[M].西安:西安電子科技大學(xué)出版社,2001.

      [4] Motorola.QPP Interleaver Design for LTE[C]∥3GPP TSG RAN WG1#47bis,R1-070060,Sorrento,Italy,2007:15-19,.

      [5] 馮小平,曹向海,鮑丹.TigerSHARC處理器技術(shù)及其應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2010.

      [6] WANG Ying,DU Xinjun.LI Hui,et al.Tail-bitting Theory for Turbo Codes[J].IEEE Annual WAMICON’06,2006:1-4.

      [7] 羅少蘭.基于C語(yǔ)言的Turbo碼的DSP實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化,2006(6):28-30.

      猜你喜歡
      譯碼器交織譯碼
      美食(2022年2期)2022-04-19 12:56:22
      基于校正搜索寬度的極化碼譯碼算法研究
      交織冷暖
      女報(bào)(2019年3期)2019-09-10 07:22:44
      糾錯(cuò)模式可配置的NAND Flash BCH譯碼器設(shè)計(jì)
      一種改進(jìn)的塊交織方法及FPGA實(shí)現(xiàn)
      跟蹤導(dǎo)練(一)5
      從霍爾的編碼譯碼理論看彈幕的譯碼
      新聞傳播(2016年3期)2016-07-12 12:55:27
      奧運(yùn)夢(mèng)與中國(guó)夢(mèng)交織延展
      LDPC 碼改進(jìn)高速譯碼算法
      HINOC2.0系統(tǒng)中高速LDPC譯碼器結(jié)構(gòu)設(shè)計(jì)
      福清市| 英山县| 岳阳县| 镇宁| 丘北县| 山阴县| 舒兰市| 东丰县| 萨迦县| 渝北区| 淮滨县| 丘北县| 灌阳县| 桦川县| 东丰县| 蒙山县| 会理县| 建湖县| 伊吾县| 日土县| 乳山市| 肃北| 福建省| 厦门市| 慈溪市| 苏尼特右旗| 怀来县| 吉安市| 三穗县| 乐亭县| 鞍山市| 乳山市| 土默特左旗| 永修县| 舞阳县| 丹巴县| 苗栗县| 南通市| 南阳市| 福清市| 杭锦后旗|