《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的DSC高速譯碼器設計及實現
基于FPGA的DSC高速譯碼器設計及實現
2016年電子技術應用第9期
龍奎成,卿粼波,何小海,呂 順
四川大學 電子信息學院,四川 成都610064
摘要: 采用易于FPGA實現的歸一化最小和算法,通過選取合適的歸一化因子,將乘法轉化成移位和加法運算。在高斯白噪聲信道下,仿真該譯碼算法得出最佳的譯碼迭代次數,并結合Xilinx XC7VX485T資源確定量化位數。然后基于該算法和這3個參數設計了一種全新的、高速部分并行的DSC譯碼器。該譯碼器最大限度地實現了譯碼效率、譯碼復雜度、FPGA資源利用率之間的平衡,并在Xilinx XC7VX485T芯片上實現了該譯碼器,其吞吐率可達197 Mb/s。
中圖分類號: TP368
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.09.010
中文引用格式: 龍奎成,卿粼波,何小海,等. 基于FPGA的DSC高速譯碼器設計及實現[J].電子技術應用,2016,42(9):39-43.
英文引用格式: Long Kuicheng,Qing Linbo,He Xiaohai,et al. The design and implementation of DSC high speed decoder based on FPGA[J].Application of Electronic Technique,2016,42(9):39-43.
The design and implementation of DSC high speed decoder based on FPGA
Long Kuicheng,Qing Linbo,He Xiaohai,Lv Shun
School of Electronics and Information Engineering,Sichuan University,Chengdu 610064,China
Abstract: The algorithm is adopted and implemented on FPGA,whose name is Normalized min-sum algorithm, multiplication of the algorithm could be converted into shift and addition operation,through selecting the suitable normalized factor.The optimal decoding iteration number could be obtained, through simulating the algorithm in Additive White Gaussian Noise channel.Besides, the quantization bits could be determined through simulating and resource of Xilinx XC7VX485T. Then a DSC decoder which is new and high-speed and partly parallel could be designed based on the algorithm and three parameters.The decoder extremely realizes the balance of decoding efficiency,decoding complexity and the utilization of FPGA resource.And the decoder has been realized on Xilinx XC7VX485T chip,whose throughput rate could up to 197 Mb/s.
Key words : DSC decoder;FPGA;partly parallel;normalized min-sum algorithm

0 引言

  分布式信源編(DSC)解碼較傳統信道編解碼而言,因其編碼簡單、譯碼復雜成為近年來通信領域的研究熱點。DSC編碼端各信源獨立編碼,譯碼端根據信源的相關性聯合譯碼,從而降低了編碼的復雜度,而把整個系統的復雜度轉移到譯碼端,所以本文重點研究DSC譯碼器的設計。

  Turbo碼和LDPC碼是實現DSC譯碼器的兩種主要編碼。在DSC譯碼過程中,Turbo碼譯碼算法復雜、譯碼延時長且存在一定的不可檢測錯誤,而LDPC碼具有較大的靈活性、較低的差錯平底特性、譯碼速度快、具有高效的譯碼迭代算法[1],因此LDPC碼更適合于實現DSC譯碼器。

  LDPC碼分為規則LDPC碼和非規則LDPC碼,非規則LDPC碼的譯碼性能優于規則LDPC碼,是目前己知的最接近Shannon限的碼[2],所以本文采用非規則LDPC碼實現DSC譯碼器。

  本文設計的DSC譯碼器具有反饋信道,根據當前聯合譯碼的結果把譯碼判決信息反饋到編碼端,但這種方法對實時性要求很高[3],這是限制DSC譯碼器工程應用的一個重要因素。FPGA由于其強大的數據并行處理能力,能夠做到數據處理的實時性、高效性。所以,FPGA能夠解決DSC譯碼器反饋信道實時性的問題。

  Log-BP算法、BP-Based算法、歸一化最小和(NMS)算法是3種常用的DSC譯碼算法,這3種算法把一部分乘法用求和運算代替極大地減少了運算量。Log-BP算法修正了碼長較長時概率 BP 譯碼算法計算不穩定的問題,但是仍然存在乘法運算不利于 FPGA實現。BP-Based算法雖然降低了運算量,但BP-Based 算法相對于Log-BP算法收斂速度慢,譯碼性能也不如前者[4]。NMS算法和BP-Based算法的復雜度幾乎相同,若選取合適的歸一化因子η,能將乘法用加法和移位操作代替,并且其譯碼性能與概率BP算法幾乎一致[5]。因此,NMS算法在FPGA實現時被大量采用。

  基于非規則LDPC碼、FPGA、NMS譯碼算法3方面的優點,本文的主要工作是采用非規則LDPC碼、運用NMS譯碼算法設計了一種全新的、實時高速的DSC譯碼器并在Xilinx XC7VX485T上實現了該譯碼器。該譯碼器的吞吐率可達197 Mb/s,具有較好的工程應用價值。

1 DSC譯碼器實現的理論基礎

  1.1 DSC的基本原理

  假設Xi(i=1,2…N)是來自同一個系統的N個信源,這N個信源之間的相關性稱為邊信息,現對這N個信源進行獨立編碼,將編碼后的N路信息傳輸到同一個譯碼節點,并結合邊信息進行聯合譯碼。因此,DSC系統的編碼端極為簡單,其復雜度主要體現在譯碼端。

  1.2 基于非規則LDPC碼的DSC系統

  圖1是非規則LDPC碼實現DSC系統的框圖,其中Xi(i=1,2…N)表示來自同一個系統的N個信源,DSC編碼器和譯碼器根據非規則LDPC碼的校驗矩陣(H矩陣)而設計。

  從圖1中可知,非規則LDPC碼實現DSC編解碼系統的基本原理:信源Xi經過DSC編碼器后輸出信息位和校驗信息,與傳統譯碼相比,DSC編解碼系統丟棄信息位并且經高斯白噪聲(AWGN)信道每次只傳輸少量的校驗位到DSC譯碼器,如此可以實現碼率自適應并提高壓縮效率。同時邊信息經過虛擬信道傳輸到DSC譯碼器進行聯合譯碼,如果此時能夠正確譯碼就輸出譯碼信息X’,否則進行反饋重傳校驗位繼續譯碼,直至正確譯碼輸出。

圖像 001.png

  1.3 LDPC譯碼算法

  NMS譯碼算法具體闡述如下:

  設α2為AWGN信道的方差,yi表示接收到的信息,L(ci)為信道初始化信息,L(qij)為變量節點接收來自校驗節點的信息,L(rji)為校驗節點接收來自變量節點的信息,L(Qi)是變量節點接收到的全部信息,C(i)表示連接變量節點i的所有校驗節點,C(i)\j表示連接變量節點i中除j外的全部校驗節點,C(j)\i表示連接校驗節點j中除i外的全部變量節點,η表示歸一化因子。

  (1)初始化:

   QQ圖片20161109145923.png

  (2)更新校驗節點:

    QQ圖片20161109145926.png

  (3)更新變量節點:

  QQ圖片20161109145930.png

  (4)更新L(Qi):

  QQ圖片20161109145937.png

  (5)最后,對任意i,有:

  QQ圖片20161109145943.png

  若變量節點收集到的信息值L(Qi)<0,對任意i,判別譯出的碼字QQ圖片20161109150156.png。如果H^T c^^=0或者譯碼的迭代次數等于預設的最大值,c^^也作為最終譯碼輸出,并強制終止譯碼計算;否則轉至步驟(2)繼續譯碼計算。

  從式(2)中可以看出NMS算法仍然存在少量的乘法運算,若選取合理的η,則能在不損失譯碼性能的情況下,將乘法用加法和移位操作代替[5],使譯碼的計算量最少、譯碼的復雜度最小、FPGA消耗的資源最少。

  η是一個小于1的正常數,通常在FPGA上實現LDPC譯碼算法時選取η為0.75,此時的NMS算法譯碼性能最佳[6]。

2 DSC譯碼器設計

  文獻[7]對非規則(2 048,1 024)、碼率1/2的H矩陣的研究表明該H矩陣在譯碼過程中能夠實現相當低的誤碼率。因此本文選用此類型度分布為(λ(x),ρ(x)),碼率為1/2的非規則H矩陣,其中λ(x)=0.285 6x+0.257 5x2+0.456 7 x7,ρ(x)=0.003 4x5+0.996 6x6。

  本文設計的DSC譯碼器分為輸入模塊、緩沖模塊、節點信息更新模塊、判決模塊、控制模塊、反饋模塊、輸出模塊。圖2是DSC譯碼器的邏輯結構圖,該譯碼器主要模塊的功能如下:

圖像 002.png

  (1)將量化好的邊信息、校驗位信息存入FPGA Block RAM模塊中。

  (2)緩沖模塊中兩個完全相同的RAM塊用于乒乓操作,周期性地切換數據選擇器可以提高數據傳輸的速率、效率,亦能使緩沖模塊與節點更新模塊的速率相匹配。

  (3)控制模塊用于控制量化信息存儲器和緩沖模塊的工作時序,保證這兩個模塊有序工作,保證數據連續。

  (4)節點信息更新模塊控制變量和校驗兩類節點的信息更新,并將判決信息輸出給判決模塊。

  (5)反饋模塊把判決結果實時反饋到數據輸出選擇器端,通知輸出選擇器繼續發送校驗信息。

  該譯碼器的設計重點體現在節點更新模塊、判決模塊和反饋模塊。圖3是這3個模塊的工作流程。

圖像 003.png

  2.1 量化位數及迭代次數設計

  量化必然會損失信息,所以量化位數的設計對信息重建至關重要。量化位數越多,則信息損失越少,譯碼正確性越高,但計算量會增加、消耗的FPGA資源也越多;若量化位數太少,丟失的信息過多,雖然計算量減少、消耗FPGA資源減少,但可能造成譯碼錯誤。

  文獻[8-9]中提出(q,f)均勻量化方案,其中量化位數q=8,因量化精度對譯碼性能影響很小,故取f=2足矣。鑒于Xilinx XC7VX485T的邏輯資源相對豐富,本文設計了(8,2)、(9,2)、(10,2)、(11,2)4種量化方案,這4種量化方案經ISE布局布線后消耗FPGA中一種重要資源指標Slice Registers的情況如表1所示。

圖像 010.png

  根據面積換“速度”的思想,提高FPGA資源利用率的同時增加譯碼的準確性。因此,根據表1可知(10,2)均勻量化方案最適合本文DSC譯碼量化要求。

  另一個重要的參數是譯碼迭代次數。通常碼長、碼率相同時,不同交叉概率對應的譯碼迭代次數不同。通過仿真AWGN信道下碼長2 048、碼率1/2、量化位數10 bits的信號,得出交叉概率與譯碼迭代次數之間的關系,如圖4所示。

  圖4表明,交叉概率變大時,譯碼迭代次數隨之增加。當交叉概率超過0.2后,譯碼迭代次數不再改變。所以本文設計譯碼迭代次數的最大值為12。

圖像 004.png

  2.2 變量更新單元設計

  從式(3)和式(4)可知,變量節點的更新主要是加法運算。初始信息與校驗信息送入VNU更新變量節點并計算出各碼位判決控制信息。其原理框圖如圖5所示,由于H矩陣非規則,所以設計了兩種校驗信息組合方式。

圖像 006.png

  其中,data_ori、data_ori_last表示兩種組合狀態的初始信息,c_mem1、c_mem2、c_mem3、c_mem8表示分別與度為1、2、3、8的變量節點相連的校驗節點信息,v_mem表示更新后的變量節點信息,judge_temp、judge_temp_last表示兩種組合狀態的中間判決信息,check表示輸入判決模塊的最終判決信息。

  VNU計算完成后,將judge_temp、judge_temp_last進行異或運算得到判決結果check,如果判斷結果是0,則表示譯碼正確,將譯碼結果送至串/并轉換模塊輸出,否則表示譯碼錯誤。

  2.3 校驗更新單元設計

  根據式(2)可知,更新校驗節點信息需要求絕對值、求符號、排序找出最小值、移位和加運算這4個步驟。在式(2)中,雖然選擇合適的η可以將乘法全部轉化成移位和加法運算,但是大量的移位操作會占用過多的時鐘周期,因此在CNU模塊的移位/加運算中采用“流水移位/加運算”的方式,這樣不但提高了時鐘利用率、運算效率,也降低了FPGA資源的消耗。

  CNU的原理框圖如圖6所示,由于H矩陣非規則,所以設計了兩種變量信息組合方式。

圖像 007.png

  其中,v_mem6、v_mem7分別表示與度為6、7的校驗節點相連的變量節點信息, c_mem表示更新后的校驗節點信息。

3 DSC譯碼器設計結果分析

  3.1 DSC譯碼器結構分析

  通常情況下,串行譯碼的譯碼效率最低,全并行譯碼器的譯碼效率最高,但是FPGA有限的邏輯資源限制了這種方法的實用性。為了平衡FPGA資源的利用率和譯碼器的譯碼效率,本文采用部分并行的思想設計譯碼器。

  由于本文的H矩陣是非規則的,不同度的節點組合在一起消耗的FPGA資源不一樣。綜合考慮運算量、FPGA資源、占用時鐘周期等因素,設計VNU中組合一、組合二的結構如表2、表3所示。

圖像 011.png

圖像 012.png

  從表2、表3中可以看出組合一的并行度是77,組合二的并行度是46。所以VNU組合一經過26個狀態以及VNU組合二經過1個狀態可以完全更新變量節點。

  設計CNU中組合一、組合二的結構如表4、表5所示。從表4、表5中可以看出組合一的并行度是36,組合二的并行度是38,所以CNU組合一經過1個狀態以及CNU組合二經過26個狀態可以完全更新校驗節點。

圖像 013.png

圖像 014.png

  3.2 DSC譯碼器時序圖

  為了驗證該DSC譯碼器設計的可行性,在MATLAB中隨機產生一段二進制信息序列,先進行LDPC編碼,再進行AWGN信道加噪和BPSK調制,得到初始化信息,然后作10 bits均勻量化,將量化結果存入Block RAM中作為譯碼器輸入。

  該譯碼器正確譯碼一次的主要信號時序圖如圖7所示(為了清晰地顯示信號,故將圖中的信號名重寫)。信號的含義如下:clk表示譯碼器的全局時鐘,rst表示譯碼器的全局復位,out_flag表示譯碼輸出標志,out_en表示譯碼輸出使能,iter_counter表示譯碼迭代次數,check表示譯碼判決信號,data_out表示譯碼輸出。圖7(b)、圖7(c)是圖7(a)中a、b局部放大后的圖。

圖像 008.png

  從圖7(b)可以看出該譯碼器經過10次循環迭代后,判決信息輸出為0,說明譯碼器譯碼正確。對比MATLAB產生的二進制信息序列,表明譯碼輸出結果與產生的二進制信息序列完全一致,至此證明了該譯碼器設計是正確的。

  3.3 DSC系統壓縮性能

  一般而言,信源的交叉概率越大,正確譯碼所需的校驗位個數越多。為驗證本文設計的DSC系統的壓縮性能,通過改變信源的交叉概率測試正確譯碼需要的校驗位個數,并與MATLAB中設計的DSC系統對比。本文設計的DSC系統與MATLAB中設計的DSC系統壓縮性能對比如圖8所示。

圖像 009.png

  從圖8中可知,在FPGA和MATLAB實現的DSC系統中,正確譯碼所需的校驗位個數都隨交叉概率增加而增加。當交叉概率相同時,本文設計實現的DSC系統比MATLAB仿真的DSC系統需要更多的校驗位才能正確譯碼,主要原因是受FPGA資源限制導致量化位數不夠并且FPGA在布局布線時有延遲。

  該DSC高速譯碼器在Xilinx XC7VX485T上實現,ISE完成布局布線消耗的FPGA資源如表6所示。

圖像 015.png

  經過時序約束,譯碼器最大工作頻率f可達195.048 MHz,譯出一個碼字需要169個時鐘。根據吞吐率計算公式N×f/(k×T),其中N是碼長,f是時鐘工作頻率,k是最大譯碼迭代次數,T是譯出一個碼字的周期,則譯碼吞吐率可達197 Mb/s。

4 結束語

  本文針對當前DSC譯碼器譯碼實時性差、譯碼效率低等因素設計了一種全新的、高速部分并行的DSC譯碼器,并在Xilinx XC7VX485T芯片上實現,在設計時最大限度平衡了FPGA資源、譯碼復雜度和譯碼效率。該DSC譯碼器的設計具有一般性、便于移植等特點,其高達197 Mb/s的吞吐率,使該DSC譯碼器具有較強的工程實用性。

  參考文獻

  [1] 楊春玲,夏洪濤,張興紹.基于LDPC的碼率自適應分布式視頻編碼[J].中國圖象圖形學報,2010,15(12):1707-1713.

  [2] CHUNG S Y,FORNEY G D,RICHARDSON T J,et al.On the design of low-density parity-check codes with in 0.004 5 dB of the Shannon limit[J].Communications Letters,IEEE,2001,5(2):58-60.

  [3] 薛國棟.分布式信源編碼理論與應用研究[D].北京:北京郵電大學,2009.

  [4] WANG J,YANG S H.A novel log-BP decoding algorithm for LDPC codes[C].Software Engineering,2009.WCSE'09.WRI World Congress on.IEEE,2009,1:305-307.

  [5] JIANG N,PENG K,SONG J,et al.High-throughput QCLDPC decoders[J].Broadcasting,IEEE Transactions on,2009,55(2):251-259.

  [6] 姜博宇,姚遠程,秦明偉.硬件可實現的LDPC譯碼算法研究[J].現代電子技術,2014,37(17):5-8.

  [7] COLE C.Error floor analysis for an ensemble of easily implementable irregular(2048,1024) LDPC codes[C].Military Communications Conference,2008.MILCOM 2008.IEEE.IEEE,2008:1-5.

  [8] 劉文燾,李強,李少謙.π—旋轉LDPC碼譯碼算法及其量化研究[J].信息技術,2006,29(11):38-40.

  [9] 吳斌,楊波,葉明.LDPC硬件實現中的數據量化位數選擇及其性能仿真[J].信息通信,2012(2):24-26.

 

 

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产欧美日韩三区| 99精品免费| 欧美色图一区二区三区| 欧美成人69| 毛片一区二区三区| 久久精品一本| 久久不见久久见免费视频1| 亚洲欧美大片| 中文精品视频一区二区在线观看| 亚洲六月丁香色婷婷综合久久| 亚洲电影免费观看高清完整版在线观看 | 欧美一区二区三区在线播放| 亚洲综合日韩在线| 亚洲一区尤物| 亚洲香蕉网站| 亚洲在线观看免费| 亚洲摸下面视频| 午夜亚洲福利| 欧美中在线观看| 久久久精品一区二区三区| 久久美女艺术照精彩视频福利播放| 久久成人18免费网站| 久久精品视频va| 久久嫩草精品久久久久| 久久免费黄色| 欧美成人一区二区| 欧美精品亚洲一区二区在线播放| 欧美精品久久久久久| 欧美日韩三级一区二区| 国产精品sss| 国产欧美在线| 激情亚洲网站| 最新国产成人av网站网址麻豆| 亚洲精品国产精品久久清纯直播| 亚洲狼人综合| 亚洲午夜视频在线观看| 先锋影音一区二区三区| 欧美在线视频免费| 亚洲靠逼com| 亚洲一区二区三区高清| 欧美亚洲在线播放| 久久午夜精品一区二区| 欧美成人国产一区二区| 欧美日韩一本到| 国产欧美精品xxxx另类| 极品裸体白嫩激情啪啪国产精品| 亚洲第一页在线| 亚洲精品在线看| 亚洲欧美视频一区| 亚洲国产精品久久久久婷婷老年| 一区二区三区四区蜜桃| 欧美伊人久久| 欧美第十八页| 国产精品久久久一区二区三区| 国内精品模特av私拍在线观看| 亚洲日本视频| 性欧美暴力猛交69hd| 亚洲精品欧洲精品| 欧美诱惑福利视频| 欧美激情综合| 国产精品一区视频| 亚洲激情小视频| 亚洲欧美一区二区三区久久 | 欧美亚洲第一页| 狠狠综合久久av一区二区小说| 亚洲日本电影| 香蕉成人久久| 宅男噜噜噜66一区二区66| 欧美一区视频| 欧美日韩国产精品专区| 国产尤物精品| 夜久久久久久| 亚洲国产欧美日韩| 亚洲综合色丁香婷婷六月图片| 老司机成人在线视频| 欧美性做爰猛烈叫床潮| 亚洲第一二三四五区| 亚洲欧美日韩天堂| 夜久久久久久| 另类专区欧美制服同性| 国产精品美女午夜av| 亚洲国产精品久久人人爱蜜臀 | 欧美一区二区高清在线观看| 亚洲靠逼com| 久久久精品性| 国产精品午夜国产小视频| 亚洲激情图片小说视频| 欧美综合国产| 亚洲欧美日本视频在线观看| 欧美高清在线播放| 国产亚洲欧美另类中文 | 亚洲欧美日韩成人| 一区二区三区高清视频在线观看| 久久久久久久欧美精品| 国产精品女主播| av不卡在线观看| 亚洲精品日韩在线| 久久视频在线看| 国产日韩精品久久久| 亚洲午夜久久久| 亚洲天堂男人| 欧美另类高清视频在线| 在线观看欧美亚洲| 欧美一区二区成人6969| 午夜在线a亚洲v天堂网2018| 欧美日韩国产高清视频| 亚洲国产天堂久久综合网| 欧美专区一区二区三区| 性欧美暴力猛交另类hd| 国产精品久久久久久久久搜平片 | 亚洲福利免费| 亚洲大胆av| 久久久久五月天| 国产一区二区精品久久| 亚欧美中日韩视频| 欧美制服丝袜第一页| 国产精品日韩欧美一区二区三区| 一区二区高清视频| 亚洲一级二级| 国产精品h在线观看| 中文亚洲视频在线| 亚洲女同精品视频| 国产精品私房写真福利视频| 亚洲一区二区三区精品动漫| 午夜激情亚洲| 国产欧美日韩激情| 欧美一区二区日韩| 久久久精品视频成人| 韩国av一区二区三区在线观看| 欧美亚洲视频| 久久久久久久久久久一区| 狠狠色香婷婷久久亚洲精品| 亚洲国产精品va| 欧美91视频| 亚洲人成网站色ww在线| 宅男66日本亚洲欧美视频| 国产精品www色诱视频| 亚洲一区二区在线观看视频| 性色av一区二区三区红粉影视| 国产酒店精品激情| 欧美专区第一页| 欧美大片免费观看| 亚洲毛片一区| 午夜伦欧美伦电影理论片| 国产伦理一区| 亚洲国产精品精华液网站| 欧美国产日韩精品| 亚洲精品久久久久| 亚洲一区二区三区影院| 国产欧美日韩在线播放| 久久精品亚洲一区二区| 欧美国产精品中文字幕| 9人人澡人人爽人人精品| 欧美一级专区| 1024精品一区二区三区| 中文国产成人精品| 国产乱码精品一区二区三区忘忧草| 香蕉久久久久久久av网站| 裸体歌舞表演一区二区| 亚洲精品欧美激情| 欧美一区日本一区韩国一区| 一区久久精品| 亚洲午夜精品| 韩日视频一区| 国产精品99久久久久久久vr| 国产欧美日韩伦理| 亚洲精品免费电影| 国产精品裸体一区二区三区| 久久黄色影院| 欧美手机在线| 久久黄色网页| 欧美四级伦理在线| 欧美在线日韩精品| 欧美日韩精品综合| 久久gogo国模啪啪人体图| 欧美精品999| 欧美一级电影久久| 欧美日本一区二区高清播放视频| 亚洲专区一二三| 欧美高清视频| 欧美一区二区成人| 欧美三级资源在线| 欧美专区中文字幕| 欧美视频一区二区三区在线观看| 久久国产婷婷国产香蕉| 欧美日韩在线免费视频| 久久国产精品一区二区三区| 欧美视频手机在线| 亚洲国产日韩在线一区模特| 国产精品日韩二区| 99成人精品| 狠狠入ady亚洲精品| 亚洲欧美久久| 亚洲精品乱码久久久久久按摩观| 欧美伊人久久大香线蕉综合69| 亚洲日本激情| 美女露胸一区二区三区| 欧美亚洲综合在线| 国产精品电影观看| 亚洲精品一品区二品区三品区|