摘 要:Turbo碼具有優(yōu)良的糾錯(cuò)性能,被認(rèn)為是最接近香農(nóng)限的糾錯(cuò)碼之一,并被多個(gè)通信行業(yè)標(biāo)準(zhǔn)所采用。Turbo碼譯碼算法相比于編碼算法要復(fù)雜得多,同時(shí)其采用迭代譯碼方式,以上2個(gè)原因使得Turbo碼譯碼器硬件實(shí)現(xiàn)復(fù)雜,而且譯碼速度非常有限。從Turbo碼高速譯碼器硬件實(shí)現(xiàn)出發(fā),介紹Turbo碼迭代譯碼的硬件快速實(shí)現(xiàn)算法以及流水線譯碼方式,并介紹利用Altera的Flex10k10E芯片實(shí)現(xiàn)該高速譯碼器硬件架構(gòu)。測(cè)試和仿真結(jié)果表明,該高速譯碼器具有較高的譯碼速度和良好的譯碼性能。
關(guān)鍵詞:Turbo碼;高速譯碼器;LogMAP;流水線
中圖分類號(hào):TN47 文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1004373X(2008)1817103
Design of the High Speed Turbo Decoder
WANG Kun,ZHANG Qingchun,F(xiàn)ENG Jiajian,XU Wenhui
(Navy University of Engineering,Wuhan,430033,China)
Abstract:Turbo code is considared as one of errorcorrecting codes which has performance to the Shannon Bound,and is adopted by many communication standards.Turbo decoding algorithm is much more complex compared to coding algorithm,with an iterative decoding method.For these reasons,Turbo decoder is implemented complexly only with low speed usually.In this paper,the speed implementation algorithm and the pipeline decoding concept are introduced,and a hardware architecture of a speed decoder used with Flex10k10E is presented.The tested and simulated results show the high speed and the good performance of the decoder.
Keywords:Turbo code;high speed decoder;LogMAP;pipeline
Turbo碼自20世紀(jì)90年代被重新發(fā)現(xiàn)以來,就一直是通信領(lǐng)域的研究熱點(diǎn),是當(dāng)前理論性能最接近香農(nóng)限的2種糾錯(cuò)碼之一[1]。目前,Turbo碼已被多個(gè)國(guó)際標(biāo)準(zhǔn)所采納,廣泛應(yīng)用于衛(wèi)星通信、數(shù)字廣播電視(DVB)、無線接入以及新一代移動(dòng)通信等多個(gè)領(lǐng)域[1]??臻g數(shù)據(jù)系統(tǒng)咨詢委員會(huì)(CCSDS)開發(fā)的信道編碼標(biāo)準(zhǔn)中最先采用了Turbo碼,其成員編碼器由(4,1,5)卷積碼構(gòu)造;國(guó)際電信聯(lián)盟(ITU)發(fā)起的第3代移動(dòng)通信系統(tǒng)標(biāo)準(zhǔn)(分為3GPP和3GPP2)則采用了由(3,1,4)卷積碼構(gòu)造的Turbo碼;歐洲電信標(biāo)準(zhǔn)協(xié)會(huì)(ETSI)在其ADSL和電纜調(diào)制解調(diào)器中也采用了Turbo碼標(biāo)準(zhǔn);無線城域網(wǎng)標(biāo)準(zhǔn)IEEE 802.16則采用了以漢明碼為基礎(chǔ)構(gòu)造的Turbo乘積碼。綜上所述,Turbo碼的應(yīng)用日趨廣泛,研究Turbo碼的實(shí)現(xiàn)具有非常重要的意義。
Turbo碼編碼器使用一個(gè)遞歸系統(tǒng)卷積編碼和一個(gè)經(jīng)交織處理的遞歸系統(tǒng)卷積編碼器作為成員編碼器級(jí)聯(lián)構(gòu)成,通常為了減少復(fù)雜性2個(gè)卷積編碼器結(jié)構(gòu)是完全相同的。Turbo碼的譯碼則較復(fù)雜,通常是利用2個(gè)成員譯碼器進(jìn)行迭代譯碼。成員譯碼器采用最大似然軟判決算法,運(yùn)算量較大,實(shí)現(xiàn)復(fù)雜,加上兩個(gè)成員譯碼器需反復(fù)迭代譯碼,從而使得Turbo碼譯碼器的譯碼速度往往不高,無法滿足高速通信系統(tǒng)的需要。
本文首先介紹Turbo碼高速譯碼器硬件實(shí)現(xiàn)相關(guān)算法,接著介紹基于FPGA實(shí)現(xiàn)的高速譯碼器架構(gòu)以及流水線譯碼實(shí)現(xiàn)方式,最后對(duì)FPGA實(shí)現(xiàn)的譯碼器的性能進(jìn)行仿真驗(yàn)證和分析。
1 Turbo碼高速譯碼器算法
1.1 雅克比展開式
要高速譯碼必須減少譯碼運(yùn)算量,因此譯碼采用LogMAP算法。而為了進(jìn)一步降低運(yùn)算量,有必要引入雅克比展開式[2]:
MAX *(x,y)=ln(ex+ey)
=MAX(x,y)+f(|x-y|)(1)
其中MAX(x,y)表示求最大值運(yùn)算;f(x)是修正因子,f(x)=ln(1+e-|x|),其實(shí)現(xiàn)可以采用查找表或者簡(jiǎn)單的邏輯運(yùn)算實(shí)現(xiàn)。采用雅克比展開式可以將復(fù)雜的和求對(duì)數(shù)運(yùn)算轉(zhuǎn)化為簡(jiǎn)單的求最大值運(yùn)算和修正值查找過程。本文考慮到性能和運(yùn)算速度的折中,修正因子采用6元素的查找表近似實(shí)現(xiàn)。修正因子的具體值如式(2)所示: f(x)=0.625 |x|≤0.25
0.50.25<|x|≤0.625
0.3750.625<|x|≤1.0
0.251.0<|x|≤1.625
0.1251.625<|x|≤2.75
0.02.75<|x|(2)1.2 分支量度計(jì)算
分支度量的計(jì)算與接收信號(hào),外部信息有關(guān),在高斯信道條件下,分支量度對(duì)數(shù)域計(jì)算式為:γik,s=(I1kti1s+I2kti2s)+Leinkti1s/2(3)其中,γik,s表示k時(shí)刻s狀態(tài)輸入為i(i=0,1)時(shí)的分支度量;I1k,I2k分別表示k時(shí)刻接收到的信息比特和校驗(yàn)比特;ti1s,ti2s分別表示編碼器輸入為i時(shí)輸出的信息比特和校驗(yàn)比特,其值為±1,簡(jiǎn)化了式(3)中乘法的實(shí)現(xiàn);Leink為k時(shí)刻輸入的外部信息。
1.3 狀態(tài)量度計(jì)算
前向狀態(tài)量度的計(jì)算采用前向遞推的方式在對(duì)數(shù)域基于雅克比展開式其表達(dá)式為:αsk=MAX*(αs0k-1+γ0k-1,s0,αs1k-1+γ1k-1,s1)(4)
αsk為k時(shí)刻s狀態(tài)的前向狀態(tài)量度;s0,s1表示輸入分別為0,1時(shí)狀態(tài)s對(duì)應(yīng)的前一時(shí)刻狀態(tài);αs0k-1,αs1k-1分別表示k時(shí)刻s0,s1狀態(tài)對(duì)應(yīng)的前向狀態(tài)量度。
后向狀態(tài)量度的計(jì)算則需要采用后向遞推計(jì)算,在分支量度已計(jì)算的前提下:βsk-1=MAX*(βs0k+γ0k,s0,βs1k+γ1k,s1)(5)其中,βsk-1表示k-1時(shí)刻s狀態(tài)的后向狀態(tài)量度;βs0k,βs1k表示k時(shí)刻s0,s1狀態(tài)的歸一化的后向狀態(tài)量度值。
1.4 對(duì)數(shù)似然比及外部信息計(jì)算
對(duì)數(shù)似然比是最終譯碼判決依據(jù),計(jì)算式為:
L(uk)=logPr(uk=1)Pr(uk=0)
=MAX*s∈S,i=1(k,s+k-1,s+γ1k,s)-
MAX*s∈S,i=0(k,s+k-1,s+γ0k,s)(6)
外部信息用作下一步譯碼的外部輸入先驗(yàn)信息,它的計(jì)算可以參照式(7):Lek=L(uk)-(t11-t01)(Leink/2+I1k)(7)
式(7)中外部信息計(jì)算是以式(6)對(duì)數(shù)似然比的計(jì)算為前提的,而式(6)的計(jì)算需要依賴分支量度、前向狀態(tài)量度和后向狀態(tài)量度的計(jì)算。
2 硬件實(shí)現(xiàn)
2.1 流水線譯碼
為了提高譯碼的運(yùn)算速度,減少系統(tǒng)時(shí)延,也為了減少存儲(chǔ)硬件消耗,本文LogMAP運(yùn)算過程采用流水線方式實(shí)現(xiàn)。將整個(gè)Turbo碼塊均分為S個(gè)計(jì)算窗口。先算第一個(gè)窗口內(nèi)數(shù)據(jù)的前向狀態(tài)量度α,以此同時(shí)以第二個(gè)窗口的末尾位置開始向前算后向狀態(tài)量度β;第一個(gè)窗口內(nèi)所得到的所有的α都是精確的,存入RAM中,而經(jīng)過一個(gè)窗口長(zhǎng)度運(yùn)算得到的β也可以認(rèn)為是近似精確的,因此也要將最后的β存入寄存器中。以上所說計(jì)算統(tǒng)稱為進(jìn)行第一次運(yùn)算。進(jìn)行第二次運(yùn)算的時(shí)候,也是先算第二個(gè)窗口內(nèi)數(shù)據(jù)的前向狀態(tài)量度α,與此同時(shí)以第三個(gè)窗口的末尾位置開始向前算后向狀態(tài)量度β;這里所得到的所有α和最后一個(gè)β分別將存入RAM和寄存器中。依此類推,各窗口對(duì)應(yīng)信息都可求出。如圖1所示。
圖1 流水線譯碼實(shí)現(xiàn)示意圖2.2 硬件架構(gòu)
基于FPGA運(yùn)算速度快、可反復(fù)編程、實(shí)現(xiàn)功能強(qiáng)大、電路設(shè)計(jì)周期短等特點(diǎn)。本文采用Altera的Flex10k10FPGA芯片進(jìn)行Turbo碼譯碼器的硬件實(shí)現(xiàn)。譯碼器的總體架構(gòu)如圖2所示。
譯碼器數(shù)據(jù)的輸入/輸出采用以太網(wǎng)接口,以方便與PC機(jī)互連進(jìn)行性能測(cè)試實(shí)驗(yàn);迭代譯碼過程通過片內(nèi)功能模塊重復(fù)來實(shí)現(xiàn),雖然耗費(fèi)了更多的資源,但是提高了譯碼速度;另外,為了提高譯碼速度,交織和解交織采用查找地址表實(shí)現(xiàn);考慮到譯碼過程各種狀態(tài)量的存儲(chǔ)需要較大空間,譯碼器采用了片外SRAM擴(kuò)展存儲(chǔ)空間。
圖2 譯碼器硬件架構(gòu)示意圖3 結(jié) 語
為了驗(yàn)證該譯碼器的譯碼性能,本文利用PC機(jī)上的軟件Turbo編碼器和信道,結(jié)合該譯碼器硬件搭建一個(gè)性能驗(yàn)證系統(tǒng)。譯碼器輸入信息字長(zhǎng)為6 b,外信息字長(zhǎng)為8 b,不同碼率對(duì)應(yīng)性能如圖3所示。
圖3 譯碼器與浮點(diǎn)理論譯碼器性能比較結(jié)果表明該譯碼器性能相比于浮點(diǎn)理論譯碼器性能下降不超過0.5 dB。另外通過使用Modelsim對(duì)該譯碼器進(jìn)行仿真測(cè)試,測(cè)試結(jié)果表明該譯碼器最高速率可達(dá)到8 Mb/s,最大譯碼延時(shí)小于10 ms。綜上所述,基于本文技術(shù)實(shí)現(xiàn)的Turbo碼高速譯碼器具有較高的譯碼速率和良好的譯碼性能,具有廣闊的應(yīng)用前景。
參 考 文 獻(xiàn)
[1]Christian B Schlegel,Lance C Perez.Trellis and Turbo Coding[M].NJ USA:John Wiley Sons,Ltd,2003.
[2]Gross W J,Gulak P G.Simplified MAP Algorithm Suitable for Implementation of Turbo Decoders [J].IEEE Electronics Letters,1998,34(16):1 5771 578.
[3]Jun Tan,Gordon L Stüber.New SISO Decoding Algorithms[J].IEEE Trans.Commun.,2003,51(6):845848.
[4]楊恒.FPGA/CPLD最新使用技術(shù)指南 [M].北京:清華大學(xué)出版社,2005.
[5]閻石.數(shù)字電子技術(shù)基礎(chǔ) [M].4版.北京:高等教育出版社,2002.
[6]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2003.
[7]褚振勇,翁木云.FPGA設(shè)計(jì)應(yīng)用 [M].西安:西安電子科技大學(xué)出版社,2002.
[8]周靈軍.純整數(shù)LOGMAP Turbo編譯碼器FPGA實(shí)現(xiàn)[D].成都:西南交通大學(xué),2007.
[9]郭世欣.深空通信中Turbo碼編譯碼技術(shù)的研究[D].西安:西安電子科技大學(xué),2007.
[10]潘華林.Turbo碼在WCDMA信道譯碼中的應(yīng)用[D].武漢:武漢理工大學(xué),2005.
作者簡(jiǎn)介 王 坤 1978,男,漢族,講師,碩士。主要從事衛(wèi)星通信技術(shù)、無線移動(dòng)通信、
無線網(wǎng)絡(luò)技術(shù)方面的研究。
張青春 碩士、講師。
馮加建 碩士。
胥文輝 碩士。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文