女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

幀長可配置Turbo編譯碼器的系統結構和應用設計和實現

電子設計 ? 來源:電子技術應用 ? 作者:朱鐵林,趙仲元 ? 2020-10-12 10:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

LTE(Long Term Evolution)是3GPP展開的對UMTS技術的長期演進計劃。LTE具有高數據速率、低延遲、分組傳送、廣域覆蓋和向下兼容等顯著優勢,在各種“準4G”標準中脫穎而出,最具競爭力和運營潛力。運營商普遍選擇LTE,為全球移動通信產業指明了技術發展的方向。設備制造商亦紛紛加大在LTE領域的投入,其中包括華為、北電、NEC和大唐等一流設備制造商,從而有力地推動LTE不斷前進,使LTE的商用相比其他競爭技術更加令人期待。

Turbo碼以其接近香農極限的優異糾錯性能被選為LTE標準的信道編碼方案之一。對Turbo編譯碼器進行FPGA集成設計,能夠加速LTE的商用步伐,具有廣闊的應用前景。在不同的信道環境中,通信系統對信息可靠性和數據實時性具有不同的指標要求,實際應用中必須對二者進行適當折中。因此,硬件設計一種糾錯性能與譯碼時延可靈活配置的Turbo碼編譯碼器更具商業價值。

Altera公司推出的功率優化、性能增強的Stratix III系列產品采用了與業界領先的Stratix II系列相同的FPGA體系結構,含有高性能自適應邏輯模塊(ALM),支持40多個I/O接口標準,具有業界一流的靈活性和信號完整性。Stratix III FPGA和Quartus II軟件相結合后,為工程師提供了極具創新的設計方法,進一步提高了性能和效能。Stratix III L器件邏輯單元較多,為幀長可配置Turbo碼編譯碼器的FPGA設計提供了便利條件。

Turbo碼的誤碼性能在很大程度上取決于信息幀長,信息幀越長,譯碼性能越好,代價是譯碼延時的增大。基于這一點,本設計提出一種幀長可配置的Turbo碼編譯碼器的FPGA實現方案,詳細介紹了該系統中交織器的工作原理,并對時序仿真結果和功能實現情況進行了分析,為LTE標準下Turbo編譯碼專用集成芯片的開發提供了參考。

1 幀長可配置的Turbo編譯碼器的系統結構

LTE標準中,信道編碼主要采用Tail Biting(咬尾)卷積碼和Turbo編碼兩種方案。其中Turbo碼碼率為1/3,由兩個生成多項式系數為(13,15)的遞歸系統卷積碼(RSC)和一個QPP(二次置換多項式)隨機交織器組成,采用典型的PCCC編碼結構。

根據Turbo碼編譯碼結構原理可知,信息幀長關鍵取決于交織深度的大小,如果交織器能夠根據不同幀長參數自動植入不同的交織圖樣,并對其他模塊進行相應參數控制,即可實現設計功能。由此得到可配置Turbo編譯碼器的設計思想:在編譯碼之前,由鍵盤電路輸入信息幀長,系統據此對編譯碼器進行初始化,主要包括設置電路中存儲器的深度,計算、存儲交織圖樣,并通過LCD同步顯示幀長信息;初始化過程結束時輸出狀態標志位,編譯碼器進入準備狀態,一旦有數據輸入,即啟動編譯碼流程。由此得到Turbo編譯碼器系統結構圖如圖1所示。

幀長可配置Turbo編譯碼器的系統結構和應用設計和實現

圖1的Turbo碼編譯碼器中,所有有關信息長度的參數均設置為輸入變量,包括存儲器深度、計數器周期等,以方便配置。

2 FPGA功能模塊的設計與實現

2.1 交織模塊的設計

交織器是Turbo編譯碼器的主要構成部分之一,其能否根據幀長參數產生相應的交織圖樣也是本設計的關鍵所在。LTE標準中規定交織器采用QPP偽隨機交織方案,交織長度范圍為40“6 114,該方案對不同幀長產生不同的交織圖樣,能夠有效改善碼字的漢明距離和碼重分布。假設輸入交織器的比特序列為d0,d1,…,dK-1,其中K為信息序列幀長,交織器輸出序列d′0,d′1,…,d′K-1。則有:

參數f1和f2取決于交織長度K,具體值可參見參考文獻。

傳統交織器的FPGA設計一般采用軟件編程的方法。根據通信協議,將所確定幀長的交織圖樣預先計算出來,生成存儲器初始化文件(.mif或.hex格式)載入到ROM中。這樣雖然降低了硬件復雜度,卻不能自行配置編碼幀長,缺乏靈活性和通用性。因此,設計中將交織算法集成于FPGA內部,需要改變信息幀長時啟動交織器重新計算交織地址存儲于RAM中。QPP交織器的硬件結構框圖如圖2所示。

圖2中,在系統初始化階段,由鍵盤電路采集輸入的信息幀長K,經消抖處理,一路傳輸給LCD同步顯示模塊,另一路傳送到f1、f2運算單元,查表得到f1、f2的值,提供給交織算法集成模塊。

交織算法集成單元是交織器設計的核心部分。主要功能是根據LTE協議標準以及參數K、f1、f2,在時序控制模塊的約束下,計算交織地址。運算過程中,將FPGA不能綜合的對任意整數取余的運算,均轉化為固定次數的加減循環操作,在時鐘管理模塊的控制下,采取小時鐘計算、大時鐘輸出的措施,保證交織數據的正確讀取。

計算交織地址的同時產生寫入地址,將交織地址順序存儲到雙口RAM中,由此完成了交織器的主體設計。隨后發送握手信號,可以開始Turbo碼編譯碼流程。

因為并不是每幀信息編譯碼時都需要運行交織算法模塊,所以只是在初始化階段載入交織地址,使交織算法與編譯碼器分時工作。調用交織器模塊時只需將順序地址輸入到雙口RAM的讀地址端,便能得到既定幀長的QPP偽隨機交織地址,不會增加譯碼延時。得到交織圖樣以后即可進行交織、解交織過程。

2.2 Turbo碼編碼器的設計

在完成交織模塊的基礎上對Turbo碼編碼器進行FPGA設計。Turbo碼編碼器由RSC(遞歸系統卷積碼)子編碼器、交織器、復接電路等構成,硬件實現框圖如圖3所示。

系統初始化完畢后,交織器已存儲有對應幀長的交織圖樣,編碼器首先接收到一幀信息存儲于RAM中,開始信號啟動編碼過程。在時鐘管理模塊和時序控制模塊的指引下,計數器產生順序地址,再按該順序地址訪問交織器得到交織地址,分別以順序地址和交織地址從存儲有信息序列的RAM中讀取數據進入對應的RSC進行編碼,同時復接電路對信息位和校驗位進行并串轉換,一幀信息編碼完畢對子編碼器做歸零處理。

2.3 Turbo碼譯碼器的設計

Turbo碼譯碼器相對于編碼器來說硬件結構更加復雜,根據譯碼原理和交織器實現方式,得到譯碼器實現結構圖如圖4所示。

為節省硬件資源,本文設計的Turbo碼譯碼器采用子譯碼器單核復用的結構模式。當子譯碼器模塊作為子譯碼器1時,信息比特順序寫入存儲器后順序讀出到子譯碼器中,L_a2以交織地址寫入存儲器,順序地址讀出作為子譯碼器1的先驗信息,同時校驗位選擇yp1,子譯碼器1根據3個輸入進行SISO(軟輸入軟輸出)譯碼運算,得到新的L_a2及L_e;此后子譯碼器作為子譯碼器2,以交織地址將ys從存儲器中讀出,L_a2以順序地址寫入存儲器,交織地址讀出作為子譯碼器2的先驗信息,同時校驗位選擇yp2,子譯碼器2根據3個輸入進行SISO(軟輸入軟輸出)譯碼運算,得到新的L_a2及L_e,完成一次迭代。在滿足迭代停止準則以后,將L_e解交織后進行硬判決,得到譯碼序列。

設計中,子譯碼器采用復雜度與性能折中的Max-Log-MAP譯碼算法。根據輸入的信息位、校驗位及先驗概率信息,在時序控制模塊的管理下,分別進行分支轉移度量、前向狀態度量、后向狀態度量和對數似然比的計算及存儲,以備下次譯碼運算調用。

依據初始化分支轉移度量值,由(13,15)RSC的籬笆圖,找出當前時刻前向狀態度量與前一時刻前向狀態度量的對應關系,計算當前時刻的前向狀態度量。依次遞推,為防止數據溢出范圍,每次迭代對其進行歸一化處理,得到實現框圖如圖5所示。后向狀態度量與前向狀態度量具有相似的運算結構,只是逆向遞推而已。

由對數似然比的定義,將得到的分支轉移度量、前向狀態度量和后向狀態度量代入運算公式,對3種輸入參量進行組合運算,然后取出“1”路徑8種狀態中的最小值和“0”路徑8種狀態的最小值,做差即得到Max-Log-MAP算法中的對數似然比。迭代數次后進行輔助硬判決,解交織輸出即為傳回信宿的譯碼序列。

3 系統實現與仿真結果分析

在Quartus Ⅱ開發工具上,以Stratix III 系列的EP3-SL150F1152C2為配置平臺,用Verilog HDL語言對上述各功能模塊進行編程建模,調試統一后編譯綜合,得到編譯碼器主要硬件資源占用情況如表1所示。

建立波形文件,分別對Turbo碼進行時序仿真,得到信息幀長分別配置為128、512時,Turbo碼編碼器的仿真波形如圖6(a)、圖6(b)所示。‘’

圖6中,每幀碼字序列的結尾,都有12個系統尾比特,以使編碼器寄存器回歸全零狀態。經多次驗證,與Matlab仿真數據進行對比,結果正確。

將編碼碼字量化后存儲于ROM中,提供給譯碼器進行時序仿真,得到信息幀長分別配置為128、512(碼字序列長度分別為396、1 548)時,Turbo碼譯碼器的仿真波形如圖7(a)、圖7(b)所示。

圖7中,譯碼器首先根據幀長設置初始化交織圖樣,然后對系統碼字解復接,得到信息序列(ys)、校驗位1(yp1)及校驗位2(yp2),與外信息(L_all)一起輸入子譯碼器進行SISO譯碼運算,迭代6次以后判決得到譯碼結果(decoderout)。

設置不同的信息幀長,經多次仿真驗證,均能正確實現編譯碼功能。將程序下載配置到EP3SL150F1152C2中,利用VC軟件編寫測試窗口,進行測試。結果顯示,本設計可以利用外圍鍵盤電路自行輸入幀長,進行交織運算,得到交織圖樣,并能正確實現Turbo編譯碼功能,達到了設計要求。

本設計以LTE為應用背景,實現了一種可根據信道環境現場配置幀長的Turbo編譯碼的硬件方案。將QPP交織算法集成于FPGA內部,充分利用其時鐘頻率高、速度快的優勢,減小了外圍接口電路消耗。在系統初始化時進行交織運算,先于Turbo編譯碼進程開始,兩者分時工作,協調統一,不會帶來額外的時延。所實現的Turbo碼編譯碼器是一種比較理想的通用型方案,為LTE標準下Turbo編解碼專用集成芯片的開發與推廣提供了參考。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1645

    文章

    22040

    瀏覽量

    618185
  • 存儲器
    +關注

    關注

    38

    文章

    7649

    瀏覽量

    167322
  • 譯碼器
    +關注

    關注

    4

    文章

    312

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    VIVADO自帶Turbo譯碼器IP核怎么用?

    turbo譯碼器IP核,控制接口配置了flush、standard、size,輸入接口送的是編碼后量化的數據,因為編碼輸出的是1bit(0或1),量化為5位有符號數,小數部分配0,對應fix8_3
    發表于 06-23 17:39

    急求基于FPGA的Turbo編譯碼器各模塊實現的 VHDL或verilog HDL程序

    基于FPGA的Turbo編譯碼器各模塊實現的 VHDL或verilog HDL程序。急求啊謝謝大神啦!!
    發表于 06-08 22:45

    怎么設計Turbo簡化譯碼算法的FPGA?

    Turbo碼現已成為深空通信的標準,即第三代移動通信(3G)信道編碼方案[2]。Turbo碼雖然具有優異的譯碼性能,但是由于其譯碼復雜度高,譯碼
    發表于 08-22 07:28

    突發通信中的Turbo編譯碼算法的FPGA實現

    Turbo碼編碼的FPGA實現Turbo譯碼器的FPGA實現
    發表于 05-07 06:06

    怎么實現BCH譯碼器的FPGA硬件設計?

    本文通過對BCH碼優化方法的研究與討論,針對標準中二進制BCH碼的特性,設計了實現譯碼器的FPGA硬件結構
    發表于 06-15 09:23

    怎么實現RS編譯碼器的設計?

    本文研究了RS碼的實現方法,并基于Xilinx的FPGA芯片Spartan-6 XC6SLX45完成了RS編譯碼器的設計,同時對其進行了仿真和在線調試,并給出了功能仿真圖和測試結果。時序仿真結果表明,該編譯碼器
    發表于 06-21 06:23

    基于Nios的通用編譯碼器的設計

    本文利用可編程邏輯的靈活性和Nios 的強大處理能力,將多種編譯碼模塊和微處理模塊集成到一片FPGA 內部,方便地實現了通用編譯碼器的設計。由于采用了VHDL 語言,使
    發表于 11-30 14:27 ?22次下載

    LTE標準下Turbo編譯碼器的集成設計

    針對固定碼長Turbo碼適應性差的缺點,以LTE為應用背景,提出了一種可配置Turbo編譯碼器
    發表于 11-11 16:07 ?26次下載

    Turbo譯碼器的FPGA實現

      Turbo碼雖然具有優異的譯碼性能,但是由于其譯碼復雜度高,譯碼延時大等問題,嚴重制約了Turbo碼在高速通信
    發表于 11-25 10:10 ?2244次閱讀
    短<b class='flag-5'>幀</b><b class='flag-5'>Turbo</b><b class='flag-5'>譯碼器</b>的FPGA<b class='flag-5'>實現</b>

    基于FPGA的高速RS編譯碼器實現

    本文介紹了 RS[ 255, 223 ]編譯碼器的 FPGA設計和基于線形反饋移位寄存的編碼設計 , 以及由伴隨式計算、關鍵方程求解、錢氏搜索、Forney算法等功能模塊組成的譯碼器
    發表于 05-22 10:43 ?45次下載
    基于FPGA的高速RS<b class='flag-5'>編譯碼器</b><b class='flag-5'>實現</b>

    基于FPGA 的LDPC 碼編譯碼器聯合設計

    了硬件資源的消耗量。該方法適合于采用校驗矩陣進行編碼和譯碼的情況,不僅適用于全并行的編譯碼器結構,同時也適用于目前廣泛采用的部分并行結構,且能夠使用和積、最小和等多種
    發表于 11-22 07:34 ?4790次閱讀
    基于FPGA 的LDPC 碼<b class='flag-5'>編譯碼器</b>聯合設計

    基于Turbo編譯碼算法的FPGA實現突發數據通信

    中小長度的數據報文業務為主,所以突發通信中的Turbo碼的碼長也是中等長度以下的。本文面向突發數據通信中的信道編碼應用,研究了短Turbo編譯
    發表于 07-12 08:15 ?4246次閱讀
    基于<b class='flag-5'>Turbo</b>碼<b class='flag-5'>編譯碼</b>算法的FPGA<b class='flag-5'>實現</b>突發數據通信

    Turbo碼的編譯碼基本原理和常用編譯碼算法分析及仿真程序

    第三代移動通信系統多種方案中,考忠將Turbo碼作為無線信道的編碼標準之- ~。 本文討論了Turbo碼的編譯碼基本原理,對Turbo碼的幾
    發表于 01-04 10:40 ?19次下載
    <b class='flag-5'>Turbo</b>碼的<b class='flag-5'>編譯碼</b>基本原理和常用<b class='flag-5'>編譯碼</b>算法分析及仿真程序

    如何使用FPGA實現結構化LDPC碼的高速編譯碼器

    結構化LDPC碼可進行相應擴展通過對編譯碼算法,優化編譯碼結構進行調整,降低了編譯碼囂硬件實現
    發表于 03-26 15:58 ?12次下載
    如何使用FPGA<b class='flag-5'>實現</b><b class='flag-5'>結構</b>化LDPC碼的高速<b class='flag-5'>編譯碼器</b>

    如何使用FPGA實現跳頻系統中的Turbo譯碼器

    給出了跳頻系統Turbo譯碼器的FPGA( field programmable gate array)實現方案。譯碼器采用了MaxL
    發表于 04-01 11:21 ?5次下載
    如何使用FPGA<b class='flag-5'>實現</b>跳頻<b class='flag-5'>系統</b>中的<b class='flag-5'>Turbo</b>碼<b class='flag-5'>譯碼器</b>