999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

三維TPC譯碼器的設計及FPGA實現

2013-04-12 00:00:00瞿海惠張浩楊亞光龍飛
現代電子技術 2013年23期

摘 要: Turbo乘積碼(TPC)是一種性能優秀的糾錯編碼方法,它具有譯碼復雜度低、譯碼延時小等優點,且在低信噪比下可以獲得近似最優的性能。介紹了基于Chase算法的三維TPC軟輸入軟輸出(SISO)迭代譯碼算法,提出了三維TPC譯碼器硬件設計方案并在FPGA芯片上進行了仿真和驗證。測試結果表明,該譯碼器具有較高的糾錯能力,滿足移動通信誤碼率的要求。

關鍵詞: 三維TPC; Chase算法; 軟輸入軟輸出; FPGA實現

中圖分類號: TN919.3?34 文獻標識碼: A 文章編號: 1004?373X(2013)23?0026?04

Design and FPGA realization of 3?D TPC decoder

QU Hai?hui, ZHANG Hao, YANG Ya?guang, LONG Fei

(Institute of Microelectronics of Chinese Academy of Sciences, Beijing 100029, China)

Abstract:Turbo product code(TPC) is a kind of forward error correction code(FEC)with excellent performance. TPC has the advantages of low decoding complexity and short decoding delay, and can achieve near?optimum performance at low signal?to?noise ratio. The soft?in soft?out(SISO)iterative decoding method for three?dimensional(3D)TPC based on Chase algorithm is introduced. The hardware design scheme of 3?D TPC decoder is proposed and verified on FPGA platform. The simulation results show that the decoder has high error?correcting capability and meets the requirement of mobile communication on bit error rate.

Keywords:3?D TPC; Chase algorithm; SISO; FPGA realization

0 引 言

無線通信信道中存在著干擾和衰落,使通信系統的可靠性降低。差錯控制編碼技術用來檢測和糾正因為信道失真引起的信息傳輸錯誤,提高信息傳輸的可靠性。差錯控制編碼的研究主要是希望在低譯碼復雜度的前提下,尋找一種逼近香農極限的編譯碼方法。Turbo乘積碼不僅譯碼復雜度低,譯碼延時小,而且它繼承了Turbo碼在低信噪比下仍然有低誤碼率的優點。因此,Turbo乘積碼己經成為糾錯編碼領域的研究熱點。

乘積碼最早是由Elias于1954年提出的[1],但受到硬件資源的制約其應用一直受限。C. Berrou等學者在1993年提出了基于軟輸入軟輸出( Soft Input Soft Output,SISO) 迭代譯碼算法的Turbo卷積碼(TCC)[2],它可以在數次迭代后性能接近香農極限,因此得到廣泛關注。但是TCC的譯碼復雜度高、譯碼延時大,從而限制了在高速通信系統中的應用。受迭代譯碼思想的啟發,R. Pyndiah等人于1994 年在Chase的基礎上提出了線性分組碼的SISO 算法[3],并通過迭代的方式應用于乘積碼,稱為Turbo乘積碼(TPC)。TPC在譯碼性能上能夠接近TCC,同時算法復雜度較低,譯碼延時小,在采用流水線機制的基礎上,可以實現高速編譯碼器。

在過去的十幾年中,二維Turbo乘積碼(2D?TPC)得到了深入的研究和廣泛的應用。相比于Turbo碼,2D?TPC擁有很多優點:它的“錯誤地板(Error Floor)”可以達到10-7甚至更低量級;由于它采用次最優譯碼算法而且不含交織器,其編譯碼復雜度很低;當碼率很高時,其性能逼近香農極限。三維Turbo乘積碼(3D?TPC)具備二維Turbo乘積碼(2D?TPC)的所有優點,而且在低信噪比環境下比2D?TPC的性能更好[4]。因此,本文介紹了一種基于Chase算法的3D?TPC軟輸入軟輸出迭代譯碼算法并且在FPGA芯片上進行了仿真和驗證。

1 3D?TPC編碼結構

乘積碼是線性分組碼在空間維度上的擴展[5]。下面說明3D?TPC的編碼結構[4],如圖1所示。

假設有三個子碼分別為[C1n1,k1,δ1]、[C2n2,k2,δ2]和[C3n3,k3,δ3],其中[ni,][ki]和[δi]分別代表子碼i(i=1,2,3)的碼長、信息位長和最小漢明距離。

圖1 3D?TPC的編碼結構

通過下述步驟可以得到如圖1所示的3D?TPC碼 [C=C1×C2×C3]:

(1)將長度為[k1×k2×k3]的信息比特填入圖中長、寬、高分別為[k1]、[k2]和[k3]的立方體中;

(2)在z=0的平面上,沿著x軸用[C1]碼對[k2]行信息進行編碼;

(3)在z=0的平面上,沿著[y]軸用[C2]碼對[n1]列進行編碼;

(4)重復步驟(2)~(3)[k3-1]次,分別對[z=1,2,…,][k3-1]平面上的信息比特編碼;

(5)沿著z軸方向用[C3]碼對[k3]個信息比特進行編碼(共進行[n1×n2]次編碼)。

新碼[Cn,k,δ]的參數為[n=n1×n2×n3],[k=k1×k2×k3],[δ=δ1×δ2×δ3],碼率為[R=R1×R2×R3],其中[Ri]是[Ci]的碼率。

從這個編碼過程可以看出,TPC對突發錯誤有效,因為該編碼結構是天然的交織器。

2 3D?TPC譯碼原理

2.1 代數譯碼

代數譯碼也叫硬判決譯碼。以線性分組碼[Cn,k,d]為例,設其校驗矩陣為[H,]經信道傳輸后的接收向量為[R。]代數譯碼器的主要任務就是設法從[R]中得到正確的錯誤圖樣[E],然后計算估值碼字[C]。具體的譯碼步驟如下:

(1)首先根據公式[S=R?HT]計算伴隨式[S];

(2)如果[S=0]則傳輸無錯;如果[S≠0],則有[E≠0],根據伴隨式[S]找出錯誤圖樣[E];

(3)進行糾錯,估計碼字為[C=R⊕E],如果[C=C,]則譯碼正確,否則譯碼錯誤。

2.2 Chase算法譯碼

3D?TPC的譯碼是一個迭代過程,如圖2所示[4,6]。其由三個SISO分量譯碼器組成,每個SISO分量譯碼器采用某種方法計算邊緣信息,從而對先驗信息進行修正,得到后驗信息。在進行迭代譯碼時,設接收向量矩陣為[R],邊緣信息矩陣為[Wm],那么每一次迭代的軟輸入信息矩陣[7?8]可以表示為:

[Rxm=R+αWzm] (1)

[Rym=R+αWxm] (2)

[Rzm=R+αλ1Wxm+λ2Wym] (3)

式中:[m]表示迭代次數,[α,λ]為加權因子,理論上需要根據子碼碼型和迭代次數進行調整,實際應用采用經驗值,性能沒有明顯惡化,但復雜度大為降低。

為了便于硬件實現[9],每個SISO分量譯碼器的邊緣信息的計算采用基于Chase譯碼的方法。

圖2 3D?TPC譯碼器結構

假定3D?TPC的分量碼[C1]和[C2]均為擴展hamming碼,[C3]為奇偶校驗碼,碼字[C]經過BPSK調制后在AWGN信道下傳送,接收向量為[R=r1,r2,r3,…,rn,rn+1]。基于Chase算法的SISO譯碼過程如下[10]:

(1)對接收向量[R]的前[n]個比特進行硬判決,得到硬判決序列[Y=y1,y2,…,yn],判決規則為:

[yi=1,ri>00,ri≤0] (4)

(2)根據接收向量[R]選擇[p]個最不可靠的位置。最不可靠位置的選取原則為:選取[R]中絕對值最小的[p]個元素所在的位置。

(3)產生[2p]個測試圖樣[T=Tjj=1,2,…,2p,]每個測試圖樣的長度均為[n,]并且[T]包含所有上述[p]個位置為0或1、其余位置均為0的二元向量。

(4)確定[2p]個擾動序列:

[Zj=Tj+Y, j=1,2,…,2p] (5)

(5)對于每個擾動序列進行代數譯碼,得到譯碼結果[Cj]。

(6)計算[Cj]與[R]之間的度量即它們之間的歐氏距離:

[mj=-] (6)

(7)選擇[mj]中的最小者對應的碼字作為最大似然碼字[D],記相應的度量為[mD],即:

[D=Ck, k=argminmj] (7)

(8)對于每個碼元位置i(i=1,2,3,…,n+1),在[Cj]中搜索碼字[D]的競爭者,即[Cji≠Di]的碼字。若存在多個,則選擇度量值最小的作為競爭者,記[D]的競爭者的度量為[mC](需要說明的是[Cj]中可能不存在[D]的競爭者)。

(9)計算位置i的邊緣信息,方法如下:

① 若存在[D]的競爭者,則:

[wi=2Di-1mC-mD-ri] (8)

② 若不存在[D]的競爭者,則:

[wi=2Di-1β] (9)

式中[β]為預先指定的修正系數。

(10)對先驗信息進行修正:

[ri=ri+αwi] (10)

根據上面的譯碼過程可以得到TPC的核心模塊——Chase算法的譯碼流程,如圖3所示。

圖3 Chase算法譯碼流程

3 譯碼器設計及FPGA實現

在本方案中,[x]和[y]方向上的TPC子碼選用(32,26,6)的擴展漢明碼,[z]方向上的TPC子碼選用(4,3,2)的偶校驗碼,最不可靠位置數[p=4,]迭代次數設為5次,[α=0.5,][β=1],[λ1=λ2=1。]在此條件下,3D?TPC的譯碼性能如圖4所示。從圖4中可以看出,當SNR=1.5 dB,其誤碼率可以達到10-6量級,顯示了3D?TPC卓越的譯碼性能。

圖4 3D?TPC的譯碼性能

三維TPC譯碼器的硬件實現方案如圖5所示。圖5顯示的是1次迭代的過程,如果迭代5次,可以將圖5代表的模塊例化5次。

下面分別說明圖5中各模塊的作用。

FIFO:存放z方向軟輸入信息;

RAM1:存放接收向量[[R];]

RAM2:存放z和x方向軟輸出[[Rz,x(m)],]同時也是x和y方向軟輸入[[Rx,y(m)];]

RAM3:存放x方向邊緣信息[[Wx(m)];]

RAM4:存放y方向軟輸出信息[[Ry(m)];]

ROM1和ROM2:存放漢明碼錯誤圖樣;

加法器:將y方向軟輸出和x方向邊緣信息相加,輸出即為z方向軟輸入;

譯碼控制器:控制三個方向譯碼器的工作時序以及各個存儲器的讀寫過程。

圖5中,軟輸入信息被量化為16 b,先進入FIFO緩存,在譯碼控制器的控制下將RAM1中的接收向量與FIFO中的數據讀出送入z方向譯碼器,譯碼軟輸出信息存放在RAM2中。緊接著,在譯碼控制器的控制下將RAM1中的接收向量與RAM2中的軟信息讀出送入x方向譯碼器,譯碼軟輸出信息存放在RAM2中。y方向的譯碼過程與x方向一樣。最后將y方向軟輸出和x方向邊緣信息分別從RAM4和RAM3中讀出相加,即得z方向軟輸入,既而完成一次迭代譯碼過程。

采用圖5所示的三維TPC譯碼器實現方案在Xilinx Virtex6實驗平臺上作了仿真測試,綜合結果如表1所示,最大工作頻率為160.77 MHz。

表1 三維TPC譯碼器實現方案資源使用量

[FPGA資源\已用\可用\利用率 /%\Number of Slice Registers\57 255\455 040\12\Number of Slice LUTs\41 070\227 520\18\Number of occupied Slices\16 885\56 880\29\Number of bonded IOBs\21\600\3\Number of RAMB18E1/FIFO18E1s\265\832\31\Number of BUFG/BUFGCTRLs\1\32\3\Number of STARTUPs\1\1\100\]

4 結 語

本文基于Xilinx公司的Virtex6系列的xc6vlx365t?1ff1156芯片采用Chase算法實現了三維TPC的迭代譯碼,該TPC的三個分量碼分別為(32,26,6),(32,26,6),(4,3,2)。當系統時鐘為160.77 MHz時,其譯碼信道速率可達37.10 Mb/s。通過修改程序中的參數,本設計可以實現任意碼率、任意碼長的三維TPC譯碼。

參考文獻

[1] ELIAS P. Error?free coding [J]. IEEE Transaction on Information Theory, 1954, IT?4: 29?37.

[2] BERROU C, GLAVIEUX A, THITIMAJSHIMA P. Near Shannon limit error?correcting coding and decoding [C] // Proceedings of IEEE International Conference on Comm. [S.l.]: IEEE, 1993: 1064?1070.

[3] PYNDIAH R. Near optimum decoding of product codes: Block Turbo Codes [J]. IEEE Transaction on Communications. 1998, 46(8): 1003?1010.

[4] WU Xiao?xiao, HE Ye?jun, ZHU Guang?xi. Performance of improved three?dimensional Turbo Product Code decoder [C] // Proceedings of the 2007 IEEE International Conference on Integration Technology. Shenzhen, China: IEEE, 2007: 563?567.

[5] 向冰.基于VHDL的TPC譯碼器設計[J].現代電子技術,2010,33(7):73?76.

[6] 李嘉席,黃進燕,王宏麗.三維TPC編解碼器的仿真研究[J].計算機與網絡,2010(8):34?37.

[7] WEI X F, AKANSU A N. On parallel iterative decoding of product code [C] // IEEE VTC’2001 Fall. New Jersey, USA: IEEE, 2001: 2483?2486.

[8] ARGON C, MCLAUGHLIN S W. A parallel decoder for low latency decoding of Turbo Product Codes [J]. IEEE Communications Letters, 2002, 6(2): 70?72.

[9] 彌憲梅,沈蕾.Turbo乘積碼譯碼的FPGA實現[J].電信技術研究,2008(6):31?35.

[10] 陳煒煒.TPC編譯碼算法研究與實現[D].南京:南京理工大學,2009.

作者簡介:瞿?;?男,1988年出生,湖北廣水人,碩士研究生。研究方向為數字信號處理。

主站蜘蛛池模板: 亚洲码在线中文在线观看| 亚洲国产综合自在线另类| 手机在线免费不卡一区二| 亚洲精品日产精品乱码不卡| 日韩中文精品亚洲第三区| 97国产精品视频自在拍| 免费观看国产小粉嫩喷水| 久久国产黑丝袜视频| 人妻21p大胆| 国产极品美女在线| yjizz视频最新网站在线| 婷婷色婷婷| 国产女人在线| 国产精品九九视频| 国产在线观看一区精品| 午夜三级在线| 欧美激情网址| 日韩一区二区在线电影| 中国一级毛片免费观看| 国产精品视频白浆免费视频| 精品伊人久久久大香线蕉欧美| 色综合婷婷| 四虎国产成人免费观看| 天堂亚洲网| 成年人久久黄色网站| 在线播放国产99re| 国产精品久久久久久久久久久久| 小说区 亚洲 自拍 另类| 91精品情国产情侣高潮对白蜜| 亚洲高清在线天堂精品| 久久国产黑丝袜视频| 一级毛片免费不卡在线视频| 日韩高清在线观看不卡一区二区 | 五月婷婷精品| h视频在线观看网站| 国产一级二级在线观看| 91热爆在线| 丁香六月综合网| 国产精品免费p区| 国产高潮视频在线观看| 欧美www在线观看| 一本大道香蕉高清久久| 久久美女精品| 中国精品自拍| 国产美女精品一区二区| 亚洲高清日韩heyzo| 国国产a国产片免费麻豆| 国产网友愉拍精品| 国产污视频在线观看| 国产av一码二码三码无码| 黄色片中文字幕| 欧美日韩高清在线| 国产9191精品免费观看| 国产精品蜜臀| 久久超级碰| 日韩毛片基地| 亚洲中文无码av永久伊人| 国产一区在线观看无码| 国产精品对白刺激| 免费精品一区二区h| 狼友视频国产精品首页| 性做久久久久久久免费看| 国产成年女人特黄特色毛片免 | 国产亚洲欧美在线专区| 国产网友愉拍精品| 亚洲AV无码乱码在线观看代蜜桃| 亚洲经典在线中文字幕| 免费一级无码在线网站| 色丁丁毛片在线观看| аⅴ资源中文在线天堂| 人妖无码第一页| 国产激情国语对白普通话| 真人高潮娇喘嗯啊在线观看| 又污又黄又无遮挡网站| 亚洲精品视频免费| 国产免费一级精品视频| 在线看免费无码av天堂的| 国产精品美女在线| 一区二区影院| 在线视频一区二区三区不卡| 欧洲av毛片| 成年午夜精品久久精品|