• 
    

    
    

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

      幀長可配置Turbo碼編譯碼器的設(shè)計與實(shí)現(xiàn)*

      2010-09-26 09:06:00趙旦峰1朱鐵林1
      電訊技術(shù) 2010年9期
      關(guān)鍵詞:雙口譯碼器交織

      趙旦峰1,朱鐵林1,劉 淵

      (1.哈爾濱工程大學(xué) 信息與通信工程學(xué)院,哈爾濱 150001;2.西北工業(yè)大學(xué) 電子信息學(xué)院,西安 710129)

      1 引 言

      1993年,在瑞士日內(nèi)瓦召開的國際通信會議上,C.Berrou等人提出了一種新型的信道編碼方案——Turbo碼[1]。經(jīng)過近20年的研究與發(fā)展,Turbo碼已廣泛應(yīng)用于深空通信、移動通信[2]等各個領(lǐng)域。然而,傳統(tǒng)編譯碼器的硬件設(shè)計都是根據(jù)仿真結(jié)果選擇單一的參數(shù)進(jìn)行固化設(shè)計[3],指標(biāo)變化時則需要對程序進(jìn)行大幅度修改及重新配置,甚至更換系統(tǒng)方案,缺乏通用性。因此,如何在不同的應(yīng)用場合,根據(jù)系統(tǒng)對信息可靠性和數(shù)據(jù)實(shí)時性不同的指標(biāo)要求,由用戶對兩者進(jìn)行靈活地折衷選擇以適應(yīng)不同目標(biāo)背景具有重要的現(xiàn)實(shí)意義。

      Turbo碼的誤碼性能和延時在很大程度上取決于信息幀長,幀長越長,譯碼性能越好,隨之而來的是譯碼延時的增大。因此,設(shè)計一種幀長可配置的Turbo碼編譯碼方案,使譯碼延時與譯碼性能在不同信道環(huán)境下均能達(dá)到最佳平衡,具有廣泛的應(yīng)用價值。

      基于此,本文將二次置換多項式(QPP)交織器集成于FPGA內(nèi)部,在系統(tǒng)初始化時計算交織地址、映射交織圖樣;同時,對數(shù)據(jù)存儲模塊進(jìn)行深度可調(diào)設(shè)計,并將編譯碼電路中涉及到幀長參數(shù)的變量連接于IO電路,由用戶自行輸入,完成了一種幀長可配置的Turbo碼編譯碼器的硬件方案,為其專用集成芯片的開發(fā)與改進(jìn)提供了參考。

      2 可配置Turbo碼編譯碼器的系統(tǒng)設(shè)計

      Turbo碼譯碼過程中需要多次循環(huán)迭代運(yùn)算(一般為4~8次),每次迭代都需要對整幀信息進(jìn)行軟輸入軟輸出(SISO)算法處理,每增加1 bit,就會增加相應(yīng)的運(yùn)算時延,因此幀長對系統(tǒng)吞吐率有重要影響。同時,由于幀長直接關(guān)乎到交織后信息的漢明距離和碼重分布[4],從而影響碼字抗突發(fā)錯誤的能力,因此幀長也是影響譯碼性能的關(guān)鍵因素之一。

      幀長可配置Turbo編譯碼器的設(shè)計思想是:在編譯碼之前,首先由鍵盤電路輸入幀長等參數(shù),系統(tǒng)根據(jù)指標(biāo)要求對編譯碼器進(jìn)行初始化,該過程主要是設(shè)置電路中存儲器的深度,進(jìn)行交織地址的計算、映射,并通過顯示設(shè)備輸出狀態(tài)信號;初始化過程結(jié)束后,編譯碼器進(jìn)入準(zhǔn)備狀態(tài),一旦有數(shù)據(jù)輸入,即啟動編譯碼流程。由此得到Turbo編譯碼器系統(tǒng)框圖如圖1所示。

      圖1 改進(jìn)的Turbo碼編譯碼系統(tǒng)框圖

      圖1的Turbo碼編譯碼器中,所有有關(guān)信息長度的參數(shù)均設(shè)置為輸入變量,包括存儲器深度、計數(shù)器周期、狀態(tài)機(jī)控制等。根據(jù)系統(tǒng)框圖,接下來進(jìn)行模塊化設(shè)計。

      3 FPGA功能模塊的設(shè)計實(shí)現(xiàn)

      3.1 交織器設(shè)計模塊

      (1)

      交織地址Π(i)由如下公式計算得到:

      Π(i)=(f1i+f2i2)modK

      (2)

      式中,參數(shù)f1和f2取決于交織長度K,具體值可參考文獻(xiàn)[2]。

      傳統(tǒng)交織器的FPGA設(shè)計一般采用軟件編程(C語言)的方法,根據(jù)通信協(xié)議,將系統(tǒng)所需幀長的交織圖樣預(yù)先計算出來,生成存儲器初始化文件載入到ROM中[5]。這樣雖然降低了硬件復(fù)雜度,卻不能自行配置編碼幀長,缺乏靈活性和通用性。因此,設(shè)計中將交織算法集成于FPGA內(nèi)部,幀長改變時啟動交織器重新計算交織地址存儲于RAM中。因為并不是每幀信息編譯碼時都需要運(yùn)行交織算法模塊,只是在初始化階段載入交織地址,使交織算法與編譯碼器分時工作,在編譯碼交織時只需讀雙口RAM即可,不會增加譯碼延時。QPP交織器的硬件結(jié)構(gòu)框圖如圖2所示。

      圖2 QPP交織器的硬件結(jié)構(gòu)框圖

      在編譯碼器初始化階段,首先從外部輸入信息幀長K,經(jīng)過防抖動處理,由幀長采集電路傳送到f1、f2運(yùn)算單元,查表得到f1、f2的值,提供給交織運(yùn)算模塊。

      交織算法集成單元是交織器設(shè)計的核心單元。主要功能是根據(jù)LTE協(xié)議標(biāo)準(zhǔn)以及參數(shù)K、f1、f2,在時序控制模塊的約束下,計算交織地址。

      計算中涉及到FPGA不支持的對任意整數(shù)取余的操作,均轉(zhuǎn)化為固定次數(shù)的加減循環(huán)操作,采取小時鐘計算、大時鐘輸出的措施,保證交織數(shù)據(jù)的正確讀取。

      計算交織地址的同時產(chǎn)生寫入地址,將交織地址順序存儲到雙口RAM中,由此完成了交織器的主體設(shè)計。整個交織計算過程是在時序控制模塊下有條不紊地管理運(yùn)行的。隨后發(fā)送握手信號,可以開始Turbo碼編譯碼流程。調(diào)用交織器模塊時只需將順序地址輸入到雙口RAM的讀地址端,便能得到既定的偽隨機(jī)交織地址。Turbo碼編譯碼器中交織、解交織的實(shí)現(xiàn)流程框圖如圖3所示。

      圖3 交織、解交織工作原理框圖

      圖3中時序控制模塊的管理下,讀/寫地址產(chǎn)生器產(chǎn)生順序地址,將信息序列順序?qū)懭氲綌?shù)據(jù)存儲雙口RAM中,同時用此順序地址去訪問存儲有交織地址的雙口RAM,將此雙口RAM的輸出作為數(shù)據(jù)存儲雙口RAM的讀地址,將信息序列按照交織地址讀出,即得到交織后信息序列,完成數(shù)據(jù)的交織[6]。

      而解交織為交織的逆過程,即先將交織后信息序列按照交織地址寫入雙口RAM中,然后按照順序地址將數(shù)據(jù)讀出,即得到原始信息序列,完成數(shù)據(jù)的解交織。

      3.2 Turbo碼編碼器的設(shè)計

      Turbo碼編碼器由遞歸系統(tǒng)卷積碼(RSC)子編碼器、交織器、復(fù)接電路等構(gòu)成,實(shí)現(xiàn)框圖如圖4所示。

      圖4 Turbo碼編碼器實(shí)現(xiàn)結(jié)構(gòu)圖

      圖4中,系統(tǒng)初始化完畢后,交織器已存儲有對應(yīng)幀長的交織圖樣,編碼器首先接收到一幀信息存儲于RAM中,開始信號啟動編碼過程。在時鐘管理模塊和時序控制模塊的指引下,計數(shù)器產(chǎn)生順序地址,再以此順序地址訪問交織器得到交織地址,分別以順序地址和交織地址從存儲有信息序列的RAM中讀取數(shù)據(jù)進(jìn)入對應(yīng)的RSC進(jìn)行編碼,同時復(fù)接電路對信息位和校驗位進(jìn)行串并轉(zhuǎn)換,一幀信息編碼完畢對子編碼器做歸零處理。編碼器的工作流程圖如圖5所示。

      圖5 Turbo碼編碼器工作流程

      圖5中,編碼器默認(rèn)處于空閑狀態(tài)(IDLE),信息存儲結(jié)束后,開始信號(start)啟動編碼器進(jìn)入CODE(交織、編碼、復(fù)接)狀態(tài),當(dāng)一幀信息編碼完畢(cover=1)分別對兩個子編碼器進(jìn)行歸零處理(TAIL、TAIL2狀態(tài)),歸零結(jié)束后返回IDLE狀態(tài),等待下一幀信息數(shù)據(jù)的到來。

      3.3 Turbo碼譯碼器的設(shè)計

      根據(jù)譯碼原理和交織器實(shí)現(xiàn)方式,得到譯碼器實(shí)現(xiàn)結(jié)構(gòu)圖如圖6所示。

      圖6 Turbo碼譯碼器結(jié)構(gòu)圖

      圖6中,為節(jié)省硬件資源,采用子譯碼器單核復(fù)用的結(jié)構(gòu)模式。當(dāng)子譯碼器模塊作為子譯碼器1時,信息比特ys順序?qū)懭氪鎯ζ骱箜樞蜃x出到子譯碼器中,L-a2以交織地址寫入存儲器,順序地址讀出作為子譯碼器1的先驗信息,同時校驗位選擇yp1,子譯碼器1根據(jù)3個輸入進(jìn)行軟輸入軟輸出(SISO)譯碼運(yùn)算,得到新的L-a2及L-e;此后子譯碼器作為子譯碼器2,以交織地址將ys從存儲器中讀出,L-a2以順序地址寫入存儲器,交織地址讀出作為子譯碼器2的先驗信息,同時校驗位選擇yp2,子譯碼器2根據(jù)3個輸入進(jìn)行SISO譯碼運(yùn)算,得到新的L-a2及L-e,完成一次迭代。在達(dá)到指定的迭代次數(shù)后,將L-e解交織后進(jìn)行硬判決,得到譯碼序列。設(shè)計中,子譯碼器采用復(fù)雜度與性能折衷的Max-Log-MAP譯碼算法,計算過程如下:根據(jù)輸入的信息位、校驗位及先驗信息的軟信息,在時序控制模塊的管理下,分別進(jìn)行分支轉(zhuǎn)移度量、前向狀態(tài)度量、后向狀態(tài)度量和對數(shù)似然比的計算及存儲,以備下次譯碼運(yùn)算調(diào)用。

      4 系統(tǒng)實(shí)現(xiàn)與仿真結(jié)果分析

      在Xilinx ISE開發(fā)工具上,用Verilog HDL語言對上述各功能模塊進(jìn)行編程描述;在對整體系統(tǒng)進(jìn)行時序設(shè)計及算法優(yōu)化的基礎(chǔ)上,用ModelSim SE 6.2a進(jìn)行布局布線后仿真。

      編譯碼系統(tǒng)初始化時,可配置幀長QPP交織器的時序仿真圖如圖7所示。

      圖7 幀長128的交織圖樣波形圖

      圖7為輸入幀長K=128時,交織模塊輸出的交織地址波形圖。在每個大周期內(nèi)將交織地址計算出來并在每個大時鐘周期的最后一個小時鐘周期將此交織地址寫入雙口RAM,完成交織模塊的設(shè)計。

      交織器通過驗證后,對Turbo碼編碼器進(jìn)行時序仿真,得到仿真波形圖如圖8所示。

      圖8 Turbo碼編碼器仿真波形圖

      圖8中,幀長設(shè)置為512,由于沒有刪余,每輸入1個信息位,對應(yīng)輸出3位系統(tǒng)碼字。經(jīng)多次驗證,與Matlab仿真數(shù)據(jù)進(jìn)行對比,結(jié)果正確。

      將編碼碼字量化后傳遞給譯碼器,譯碼迭代6次,幀長設(shè)置為512,得到Turbo碼譯碼器時序仿真波形圖如圖9所示。

      圖9 Turbo碼譯碼器波形仿真圖

      圖9中,譯碼器首先根據(jù)幀長設(shè)置初始化交織圖樣,然后對系統(tǒng)碼字解復(fù)接,得到信息序列(ys)、校驗位1(yp1)、校驗位2(yp2),與外信息(L-all)一起輸入子譯碼器進(jìn)行SISO譯碼運(yùn)算,迭代6次后判決得到譯碼結(jié)果(decoderout)。多次仿真無誤后,將程序下載配置到Xilinx公司Virtex-2 Pro系列的XC2VP30 FPGA中,利用串口調(diào)試助手,軟件編寫測試窗口,進(jìn)行測試。結(jié)果顯示,本設(shè)計可以利用外圍鍵盤電路自行輸入幀長,進(jìn)行交織運(yùn)算,得到交織圖樣,并能依據(jù)幀長參數(shù)正確實(shí)現(xiàn)Turbo編譯碼功能,達(dá)到了設(shè)計要求。

      5 結(jié)語

      本文提出并實(shí)現(xiàn)了一種可根據(jù)具體參數(shù)要求現(xiàn)場配置幀長的Turbo編譯碼器設(shè)計方案,與固定幀長系統(tǒng)相比,具有更強(qiáng)的靈活性,是一種比較理想的通用型方案。然而由于FPGA自身特點(diǎn)的限制,即使選擇算法相對簡單的QPP交織方式,當(dāng)信息幀長6 144時交織地址初始化過程仍耗時將近40 s,雖然不對后續(xù)編譯碼速率產(chǎn)生影響,但是如何有效縮短初始化時間,根據(jù)算法特點(diǎn)簡化交織運(yùn)算電路仍有待進(jìn)一步研究。

      參考文獻(xiàn):

      [1] Berrou C,Glavieux A, Thitimajshima P. Near Shannon Limit Error-Correcting Coding and Decoding Turbo-Codes[C]//Proceedings of ICC’93.Geneva:IEEE,1993:1064-1070.

      [2] 沈嘉,索士強(qiáng),全海洋,等. 3GPP長期演進(jìn)(LTE)技術(shù)原理與系統(tǒng)設(shè)計[M].北京:人民郵電出版社,2009:92-96.

      SHEN Jia,SUO Shi-qiang,QUAN Hai-yang,et al.3GPP Long Term Evolution:Principle and System Design[M].Beijing:Posts & Telecom Press,2009:92-96.(in Chinese)

      [3] 羅綺麗, 劉應(yīng)狀, 蕭奮洛. 一種高效的Turbo碼硬件實(shí)現(xiàn)算法[J]. 電訊技術(shù), 2006,46(4): 36-40.

      LUO Qi-li, LIU Ying-zhuang, XIAO Fen-luo. A High Efficient Implementation Algorithm for Decoding Turbo Codes[J].Telecommunication Engineering,2006,46(4): 36-40.(in Chinese)

      [4] 劉東華. Turbo碼原理與應(yīng)用技術(shù)[M]. 北京: 電子工業(yè)出版社, 2004: 236-238.

      LIU Dong-hua. Principle and Application Technology of Turbo Code[M]. Beijing: Publishing House of Electronics Industry, 2004: 236-238. (in Chinese)

      [5] 薛禮妮, 崔維新. Turbo碼隨機(jī)交織器的設(shè)計與實(shí)現(xiàn)[J]. 電訊技術(shù), 2009, 49(10): 70-73.

      XUE Li-ni, CUI Wei-xin. Design and Implementation of Turbo Codes Random Interleaver[J]. Telecommunication Engineering, 2009, 49(10): 70-73. (in Chinese)

      [6] 羅清華. Turbo碼編譯碼器FPGA設(shè)計與實(shí)現(xiàn)[D]. 哈爾濱: 哈爾濱工程大學(xué), 2008: 36-37.

      LUO Qing-hua. The design and Implementation of Turbo Encoder and Decoder Based on FPGA[D]. Harbin: Harbin Engineering University, 2008: 36-37. (in Chinese)

      猜你喜歡
      雙口譯碼器交織
      “新”與“舊”的交織 碰撞出的魅力“夜上?!?/a>
      美食(2022年2期)2022-04-19 12:56:22
      雙口形式的戴維寧定理在電路分析中的應(yīng)用
      交織冷暖
      女報(2019年3期)2019-09-10 07:22:44
      糾錯模式可配置的NAND Flash BCH譯碼器設(shè)計
      雙口RAM在機(jī)載嵌入式系統(tǒng)中的應(yīng)用
      電子測試(2018年4期)2018-05-09 07:28:10
      一種改進(jìn)的塊交織方法及FPGA實(shí)現(xiàn)
      跟蹤導(dǎo)練(一)5
      奧運(yùn)夢與中國夢交織延展
      華人時刊(2016年17期)2016-04-05 05:50:32
      雙口RAM讀寫正確性自動測試的有限狀態(tài)機(jī)控制器設(shè)計方法
      雙口RAM在無人機(jī)三余度飛控計算機(jī)數(shù)據(jù)交換中的應(yīng)用
      梓潼县| 科尔| 芷江| 东辽县| 长宁区| 宁蒗| 长治县| 天台县| 视频| 普定县| 温宿县| 安达市| 苍南县| 闽侯县| 手游| 民乐县| 宣汉县| 综艺| 河东区| 鹤壁市| 沁水县| 鄢陵县| 武强县| 定日县| 苍南县| 淳安县| 若羌县| 锡林浩特市| 泰兴市| 会理县| 嘉善县| 板桥市| 双流县| 满洲里市| 永吉县| 保亭| 当阳市| 营口市| 广汉市| 社旗县| 鄂托克前旗|