基於FPGA的極化碼的SCL解碼算法研究

2021-01-07 電子發燒友

0 引言

2008年ARIKAN E提出了信道極化的概念並對信道極化現象進行了詳細的描述[1]。極化碼的主要過程是在編碼系統中通過對信道進行結合與拆分,然後在其中選擇好的部分信道來進行有效數據的傳輸。極化碼被嚴格證明有以下兩個特性:一是基於信道極化現象存在;二是在碼長為無限長時,其信道容量可達香農極限。相比於經典的Turbo碼與LDPC碼,極化碼具有更低的誤碼率和複雜度以及更高的吞吐率[2-3]。

極化碼的解碼算法研究近年來發展迅速,其中成為研究熱點的連續刪除(Successive Cancellation,SC)解碼算法的基本思想是通過對信息位的比特似然概率值的判斷來進行解碼。但由於在解碼時前一個解碼值會對之後的解碼值造成影響,因此導致解碼性能較差[4]。在此基礎上改進的序列連續刪除(Successive Cancellation List,SCL)算法能在計算複雜度與空間複雜度之間實現更好的平衡[5],相比於在軟體上實現該算法,在FPGA上進行SCL解碼可以使解碼速度進一步加快[6]。目前極化碼各方面都已經取得了碩果,但是在FPGA上的解碼實現仍然存在著解碼效率和吞吐率不夠高等問題[6]。因此本文針對極化碼的SCL解碼算法進行了研究和優化,減少資源消耗同時提高解碼效率;針對FPGA上的解碼器設計進行了定點量化的改進;最後在Xilinx的VC707開發板上進行了解碼器的實現與性能分析。實驗結果表明解碼器在碼長為512時解碼效率為143.988 MHz,吞吐率達到了28.79 Mb/s,具有較強的工程使用價值。

1 極化碼的SCL解碼算法

SCL解碼算法實質是對SC解碼算法的推廣,SC解碼算法的基本思想是通過對每個傳輸碼字的LLR(對數似然比值)進行判斷譯出碼字,LLR的定義如式(1)所示。

圖1所示為SC解碼路徑示意圖,由示意圖和LLR計算公式可以看出SC解碼在解碼過程中前一個解碼值與之後的解碼值相互關聯,這將對其解碼算法的性能造成影響。

如圖2所示的SCL解碼過程中,傳輸的碼字為1010,其中前兩位為固定比特,後兩位為信息比特。傳輸碼字從根節點出發向下擴展,可以得到相應的PM值,一直擴展到4條路徑,此時取出PM值較小的兩條路徑繼續擴展,其餘路徑刪除,因此最終只有4條路徑,其中最後算出的PM值最小的相應路徑即為解碼結果。圖2中曲線代表此次PM值最小路徑為1010,解碼結果正確。

2 SCL解碼的優化與設計

SCL解碼算法的核心依然是SC解碼算法,但其性能優於SC解碼算法。在FPGA上進行SCL解碼算法的實現會遇到如何提高解碼效率和吞吐率以及如何合理利用FPGA片上資源等挑戰。針對SCL解碼算法的優化可以在基於其具有的遞歸結構下對解碼計算過程進行簡化,針對FPGA上的解碼器設計可在運算過程中對浮點數進行量化,更有利於硬體實現。

2.1 SCL解碼算法系統設計

圖3所示為本文所設計的SCL解碼系統圖,針對在SCL解碼的過程中有可能出現最小PM值路徑解碼不是正確解碼的情況,可以通過採用文獻[8]中的增加循環冗餘校驗(Cyclic Redundancy Check,CRC)輔助的方法來進行解決。在編碼系統中先對源碼進行校驗碼的添加,然後進行極化碼的編碼生成相應的碼字進行傳輸。解碼系統在FPGA上使用設計的解碼器對傳輸過來的碼字進行極化碼解碼以及校驗碼校驗,在解碼最後階段的路徑選擇時從最小PM值逐條校驗,一旦出現校驗通過的路徑即為解碼結果。

2.2 SCL解碼算法優化

SCL解碼過程實質是L個SC解碼算法同時進行,圖4所示為碼長為8時的SC解碼算法遞歸流程圖,圖中傳遞的信息均為LLR,其中S代表計算層數,i代表相應碼字標號。

在SC解碼算法中,LLR的計算公式如下:

2.3 FPGA中實現算法的改進

在圖4所示的SC解碼算法流程圖中實線部分代表執行的f函數,虛線部分代表執行的g函數。分別定義如下:

在SCL解碼過程中的LLR計算值均為浮點數,直接在FPGA中計算會使得解碼複雜度較高,因此將浮點數進行定點量化轉變成定點數,定點量化的結果通過(O,R,D)來表示,定義如表1所示。

對f函數進行改進之後,解碼過程中的計算不再涉及乘除法,因此信道輸出和LLR的小數位數可以一致。由於採用定點量化用量化值代替了原始值,必定會對解碼結果造成一定影響,因此選擇合適的量化比特數和小數位數尤為重要。通過對信道輸出值以及運算過程中的對數似然比值進行詳細的分析以及對比實驗,選出了三種如下較好的量化方式。圖5所示為量化前後的BER曲線圖。

如圖5所示的三種量化方式相比,(4,4,0)由於LLR量化的比特數過小,導致效果不是很理想。(4,5,0)和(5,6,1)的量化選擇基本沒有降低SCL的解碼性能,而(4,5,0)這種沒有小數位的量化選擇更有利於在FPGA上進行計算,因此解碼器的設計選用(4,5,0)的量化方式。

3 解碼硬體平臺與解碼測試結果

3.1 硬體平臺選擇

本文選擇在Xilinx的VC707開發板上對解碼器進行實現。該開發板的主晶片為XC7VX485T,包含有485 760個邏輯單元、2 800個DSP Slice、37 080 KB內存以及700個I/O引腳等資源。其最高運行頻率可以達到741 MHz,可以用來實現極化碼的解碼。圖6為該評估板實物圖。

3.2 解碼的仿真與測試

為了對SCL和SC算法進行對比以及選擇一個合適的路徑刪減值L,在解碼器編寫前對各L值下的SCL算法進行了MATLAB仿真,仿真結果如圖7所示。

由圖7可知當L=1和L=2時誤比特率差別較大,再繼續加大L值時雖然可以使誤比特率進一步降低,但是差別已經沒有那麼明顯,為了在FPGA上能夠更容易實現SCL算法,選擇L=2來進行路徑刪減實現算法。

接著對解碼器的正確性進行驗證,先通過ModelSim仿真軟體對解碼器進行硬體仿真。然後使用ISE軟體帶有的Chipscope在線邏輯分析儀去抓取在FPGA上的解碼結果,通過硬體仿真結果與FPGA上的解碼結果對比來驗證解碼的正確性。

如圖8所示上半部分為在ModelSim上碼長為64時的仿真結果,data_u_out和data_uhat_out分別為輸入源碼字和解碼仿真結果。下半部分為使用Chipscope抓取的FPGA中運行結果波形圖,data_u和data_uhat分別為輸入源碼字和實際解碼結果。輸入源碼中有一半碼字為固定比特,因此有效碼字只有32位。由圖8可以看出源碼字和仿真結果以及FPGA解碼結果均為69ab4d68,因此本次解碼結果正確。

圖9和圖10所示分別為碼長為128和512時的仿真結果和解碼結果波形圖。在抓取512碼長的波形時,由於碼長太長,因此在Chipscope中分成了四段進行顯示,由於Chipscope與ModelSim顯示順序不同,因此用相應數字表示了相應的結果順序,可以看出解碼結果均正確。

3.3 解碼性能分析

下面對算法的性能以及工程佔用資源等進行綜合分析,在ISE軟體上的綜合報告中可以查看解碼器在FPGA上的資源使用結果,如表2所示。

通過綜合資源結果可以對解碼器的吞吐率進行計算,公式如下:

式中N為有效碼長,fmax為最大時鐘頻率,td為解碼延遲的時鐘周期數。吞吐率計算結果如表3所示。

4 結論

如今極化碼正越來越受到研究者們的重視,而國內在極化碼解碼算法研究方面有待深入,尤其是在硬體平臺中實現的較少。基於此本文主要針對極化碼的SCL解碼算法進行了研究與優化,並在FPGA上設計了解碼器,最後在Xilinx的VC707開發板上進行解碼器的實現。該解碼器的設計降低了解碼複雜度以及FPGA上的資源消耗,在碼長為512時解碼最高頻率為143.988 MHz,吞吐率為28.79 Mb/s,有較強的工程實用性。

打開APP閱讀更多精彩內容

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

相關焦點

  • Polar Code(極化碼)
    華為公司近日在5G信道編碼領域的極化碼
  • 華為主推的PolarCode極化碼方案到底是什麼
    2008年在國際資訊理論ISIT會議上,Arikan首次提出了信道極化的概念,基於該理論,他給出了人類已知的第一種能夠被嚴格證明達到信道容量的信道編碼方法,並命名為極化碼(Polar Code)。Polar碼具有明確而簡單的編碼及解碼算法。通過信道編碼學者的不斷努力,當前Polar碼所能達到的糾錯性能超過目前廣泛使用的Turbo碼、LDPC碼。
  • 「大師風範」牛凱:探索極化碼理論新高度 構建人機6G四元空間
    一項先進技術從概念誕生到推廣應用,離不開科技工作者在基礎研究領域的默默耕耘,背後是十年如一日研究枯燥的數字,推導繁複的公式。北京郵電大學牛凱教授就是其中一員。他早在2010年就敏銳發現極化碼在信道編碼方面的優越之處,並立即著手研究與5G有關的糾錯編碼,他提出的極化碼高性能編解碼算法成為5G標準主流方案。
  • LDPC 碼解碼算法及性能分析應用設計
    LDPC碼的校驗矩陣具有稀疏的特性,因此存在高效的解碼算法,其糾錯能力非常強。1981年,Tanner提出了基於圖模型描述碼字的概念,將LDPC碼的校驗矩陣對應到Tanner圖的雙向二部圖上。採用Tanner圖構造的LDPC碼,通過並行解碼可大大降低解碼複雜度。
  • 淺談極化碼與5G技術
    極化碼正是華為一直在積極倡導的5G技術,在極化碼的技術研究上投入了數十億美元,技術上已處於領先地位,擁有大量專利,能夠基於現有技術很快推出商用產品,試想若是標準落在別人手中華為已經成為世界最大的移動通信設備製造商,中興是世界第五大移動通信設備製造商,在全球的移動通信市場上佔據了半壁江山,它們的5G技術研究也走到了世界前沿,引領未來通信發展的方向。俗話說:「三流公司賣產品,二流公式賣方案,一流公司賣標準」,非常符合市場現實,只有掌握了行業的標準,才能獲得超過50%的市場份額和利潤,這樣的公司永遠在市場上富有競爭力,不會被拉入價格仗的隊列中。縱然。
  • 一種基於FPGA的實時紅外圖像預處理方法
    摘要:由於紅外圖像預處理算法自身的複雜性,使得紅外圖像在DSP中的預處理時間較長。針對這一問題,提出一種基於FPGA的實時紅外圖像預處理方法。
  • 非規則LDPC碼解碼改進算法及其DSP實現
    LDPC碼解碼器設計的實現成為近年來研究的熱點。LDPC碼解碼器的實現方法主要有2種:一種是基於超大規模集成電路(VLSI)的設計;另外一種是基於數位訊號處理器(digital signalprocessor,DSP)等指令串行執行系統的實現。
  • 基於FPGA的RCN226絕對式編碼器通信接口設計
    DSP用來實現矢量變換和其它算法流程;FPGA用以實現解碼、A、B、 Z信號輸出、I/O擴展等功能,FPGA中尚有很多資源沒有得到充分利用。本文研製了一種用於交流伺服系統中的基於FPGA的絕對式編碼器智能接口,實現與絕對式編碼器的雙工通信,接收高速數據流,同時在FPGA內部開闢RAM空間,將收到的編碼器數據存入RAM中,DSP可以以訪問內存的方式讀取數據,提高了工作速度。同時,該接口還具有奇偶校驗等糾錯功能,完全可以替代廠家提供的接收晶片,大幅度降低了產品成本。
  • 用FPGA實現FFT算法
    當N較大時,因計算量太大,直接用DFT算法進行譜分析和信號的實時處理是不切實際的。快速傅立葉變換(Fast Fourier Transformation,簡稱FFT)使DFT運算效率提高1~2個數量級。其原因是當N較大時,對DFT進行了基4和基2分解運算。FFT算法除了必需的數據存儲器ram和旋轉因子rom外,仍需較複雜的運算和控制電路單元,即使現在,實現長點數的FFT仍然是很困難。
  • 極化碼理論之父:思考那些可以改變世界的問題
    【國外名人】 人們都知道華為5G技術在全球獨領風騷,但並非所有人都知道華為5G技術是基於土耳其阿里坎教授提出的阿里坎對記者說,簡單地說,自資訊理論之父香農在1948年提出信道編碼定理以來,尋找能夠達到信道的「香農極限」(指在會隨機發生誤碼的信道上進行無差錯傳輸的最大傳輸速率)的編碼,就一直是一代代人追求的目標,而香農最初只是提出了存在這樣的可能,但卻沒有提及明確的構造及如何有效實現解碼。而極化碼使得問題迎刃而解。
  • 基於fpga二維小波變換核的實時可重構電路
    項目背景及可行性分析本文引用地址:http://www.eepw.com.cn/article/266432.htm  2.1 項目名稱及摘要:  基於fpga二維小波變換核的實時可重構電路  現場可編程門陣列為可進化設計提供了一個理想的模板
  • 基於FPGA IP核的FFT實現
    0 引 言 數位訊號處理領域中FFT算法有著廣泛的應用。目前現有的文獻大多致力於研究利用FFT算法做有關信號處理、參數估計、F+FT蝶形運算單元與地址單元設計、不同算法的FFT實現以及FFT模型優化等方面。
  • 基於FPGA的無損圖像壓縮系統設計
    編者按:  摘要:本文簡要介紹了圖像壓縮的重要性和常用的無損圖像壓縮算法,分析了快速高效無損圖像壓縮算法(FELICS)的優勢,隨後詳細分析了該算法的編碼步驟和硬體實現方案,最後公布了基於該方案的FPGA性能指標。
  • 基於FPGA高精度浮點運算器的FFT設計與仿真
    摘要 基於IEEE浮點表示格式及FFT算法,提出一種基2FFT的FPGA方法,完成了基於FPGA高精度浮點運算器的FFT的設計。利用VHDL語言描述了蝶形運算過程及地址產生單元,其仿真波形基本能正確的表示輸出結果。
  • 基於DSP和FPGA的機器人聲控系統設計與實現
    系統硬體分為語音信號的採集和播放,基於dsp的語音識別,fpga動作指令控制、步進電機及其驅動、dsp外接快閃記憶體晶片,jtag口仿真調試和鍵盤控制幾個部分。語音信號特徵向量採用mel頻率倒譜係數mfcc(mel frequency cepstrum coeficient的提取,mfcc參數是基於人的聽覺特性的,他利用人聽覺的臨界帶效應[3],採用mel倒譜分析技術對語音信號處理得到mel倒譜係數矢量序列,用mel倒譜係數表示輸入語音的頻譜。
  • 基於FPGA的複數浮點協方差矩陣實現
    為達到減少算法的計算量,提高MUSIC算法處理速度的目的,許多文獻致力於研究陣列的結構特點,在保證測角精度的前提下,尋找一種簡單而有效的數據預處理方法,將複數矩陣轉化為實數矩陣,把復矢量用一個實矢量來代替,從而將複數運算轉化為實數運算。 接收陣元模型可分為任意離散陣、均勻圓弧陣、均勻圓陣和均勻線陣。在實際應用中,比較常見的是均勻線陣和均勻圓陣。
  • 用FPGA實現FFT算法(圖)
    當n較大時,因計算量太大,直接用dft算法進行譜分析和信號的實時處理是不切實際的。快速傅立葉變換(fast fourier transformation,簡稱fft)使dft運算效率提高1~2個數量級。其原因是當n較大時,對dft進行了基4和基2分解運算。fft算法除了必需的數據存儲器ram和旋轉因子rom外,仍需較複雜的運算和控制電路單元,即使現在,實現長點數的fft仍然是很困難。
  • 基於FPGA的實時中值濾波器硬體實現
    但是以上研究都是基於標清圖像的中值濾波器,處理的圖像大小一般為256×256、512×512的灰度圖等,很少有實現高清圖像的中值濾波器。本文在文獻[3]、[4]的理論基礎上,在蘇光大主持研製成功的NIPC-3鄰域圖像並行處理機上實時實現了1 920×1 080×8 bit的高清圖像的中值濾波器。
  • 基於FPGA的結構光圖像中心線提取
    實驗表明採用FPGA 實現圖像處理的專用算法能滿足圖像數據進行實時準確提取的要求。實驗表明採用FPGA 實現圖像處理的專用算法能滿足圖像數據進行實時準確提取的要求。基於數字圖像處理的特點是處理的數據量非常大,處理非常耗時。所以本文研究了在FPGA上用硬體描述語言實現圖像的中心線提取算法,採用了極值法、閾值法和重心法相結合的中心線提取方法。通過功能模塊的硬體化,以便高速提取結構光中心線。結果表明,實驗系統達到了基於視頻速度的應用要求。