殷云志,韓明鑰,張玉琴
(1.中國(guó)電子科技集團(tuán)公司第五十四研究所,河北石家莊050081;2.冀州職教中心,河北冀州053200)
Turbo乘積碼(Turbo Product Code,TPC)由于具有優(yōu)異的性能、較低的編譯碼復(fù)雜度以及短的譯碼延時(shí),而且碼字內(nèi)部具有自交織結(jié)構(gòu),可以有效對(duì)抗快衰落,因此可將其應(yīng)用于具有衰落信道的無(wú)線通信系統(tǒng)[1,2]。
主要研究TPC碼在無(wú)線衰落信道中應(yīng)用的設(shè)計(jì)實(shí)例。在研究過(guò)程中,為使開(kāi)發(fā)工作能夠科學(xué)、有效、快速的進(jìn)行,按照以下步驟進(jìn)行:
①TPC碼的理論研究以及在衰落信道中應(yīng)用碼字的選取;
②利用Matlab工具進(jìn)行編譯碼算法的性能仿真,指導(dǎo)硬件參數(shù)設(shè)計(jì);
③以Quartus為設(shè)計(jì)工具、Altera StratixII開(kāi)發(fā)板為平臺(tái)進(jìn)行硬件設(shè)計(jì)與實(shí)現(xiàn);
④將編、譯碼模塊應(yīng)用到無(wú)線通信調(diào)制解調(diào)器中,并進(jìn)行性能測(cè)試。
Turbo乘積碼結(jié)構(gòu)簡(jiǎn)單,可以有效地基于2個(gè)或多個(gè)短碼來(lái)構(gòu)造長(zhǎng)碼[1-3]。考慮2個(gè)系統(tǒng)線性分組碼C1,參數(shù)為(n1,k1,δ1)和C2,參數(shù)為(n2,k2,δ2),其中,ni,ki,δi,i∈(1,2)分別代表分組碼的碼字長(zhǎng)度、信息位長(zhǎng)度、最小漢明距。Turbo乘積碼P的參數(shù)分別為n=n1×n2,k=k1×k2,δ=δ1×δ2,碼率為R=R1×R2,其中Ri,i∈(1,2)分別為C1、C2的碼率。
Turbo乘積碼編碼步驟如下:
①(k1×k2)位信息比特放入k1行、k2列的方陣中;
②對(duì)k1行以C2進(jìn)行編碼;
③對(duì)n2列以C1進(jìn)行編碼。
Turbo乘積碼采用軟判決迭代譯碼,結(jié)構(gòu)如圖1所示。其行(列)譯碼器由SISO(soft-input/soft-output)的Chase譯碼器來(lái)實(shí)現(xiàn)。在2個(gè)子譯碼器之間傳遞的反饋信息是譯碼器輸出碼字的可靠性與接收字的差值,可靠性用對(duì)數(shù)似然比進(jìn)行估值[4-6]。
圖1 TPC迭代譯碼結(jié)構(gòu)示意圖
下面簡(jiǎn)述TPC碼的迭代譯碼過(guò)程:
①對(duì)接收序列矩陣R及其硬判決矩陣D的行(或列)應(yīng)用Chase譯碼算法,其中β(m)為迭代過(guò)程的調(diào)節(jié)系數(shù),控制軟輸出信息的輸出峰值范圍,一般選取經(jīng)驗(yàn)值β(m)=[0.2 0.4 0.6 0.8 1.0 1.0 1.0 1.0 1.0 1.0];
②R中每一元素為rij,D中每一元素為dij,迭代譯碼中用到的反饋信息wij為:
式中,Λ(dij)是譯碼器輸出判決碼字元素dij的可靠性;
③計(jì)算碼字矩陣中每一向量的外信息,并用該外信息修改接收序列信息,送入下一次迭代譯碼過(guò)程。假設(shè)[W(m)]是第m次迭代計(jì)算的外信息,[R]是接收序列矩陣,則第(m+1)次迭代輸入信息為:
式中,α(m)是外信息[W(m)]的歸一化加權(quán)因子,在[0,1]之間取值,一般選取經(jīng)驗(yàn)值:α(m)=[0 0.2 0.3 0.5 0.7 0.9 1.0 1.0 1.0 1.0];
④若未達(dá)到設(shè)定的迭代次數(shù),矩陣[R(m+1)]輸入到下一次譯碼過(guò)程,迭代過(guò)程轉(zhuǎn)至式(1);否則,對(duì)矩陣[R(m+1)]進(jìn)行硬判決,得到原始信息。
上述過(guò)程中,每次迭代完成一次行或列譯碼,都只是完成了半次迭代譯碼,二者一起才完成一次完整的迭代。
根據(jù)TPC編譯碼原理可知,通過(guò)行編碼、列編碼實(shí)現(xiàn)了碼字的內(nèi)交織特性,采用基于Chase算法的軟判決迭代譯碼,從而具有優(yōu)異的糾錯(cuò)性能。碼長(zhǎng)、碼率都是影響碼字性能的關(guān)鍵因素,碼長(zhǎng)越長(zhǎng)、碼率越低,性能越好[7]。
在無(wú)線通信中,對(duì)于高速傳輸,由于受到帶寬限制,碼率不能低于0.7,同時(shí)考慮到碼長(zhǎng)過(guò)長(zhǎng)使得譯碼復(fù)雜度很高,因此選擇(64,57,4)擴(kuò)展?jié)h明碼作為T(mén)PC碼字的子碼[8]。
利用Matlab仿真工具,采用蒙特卡羅仿真模型,對(duì)以(64,57,4)擴(kuò)展?jié)h明碼作為子碼的TPC碼字進(jìn)行編譯碼算法的仿真[9-12]。
在AWGN信道條件下,采用BPSK調(diào)制,譯碼過(guò)程采用浮點(diǎn)運(yùn)算,迭代次數(shù)分別為1~6次的仿真結(jié)果如圖2所示,顯示了在不同的信噪比下迭代次數(shù)和誤碼率的關(guān)系曲線。可知,迭代次數(shù)大于4的性能改善很小,考慮譯碼復(fù)雜度與性能的折中,迭代次數(shù)選取4次。
圖2 迭代次數(shù)與誤碼率的關(guān)系
在AWGN信道條件下,采用BPSK調(diào)制、譯碼迭代4次、譯碼運(yùn)算定點(diǎn)量化的性能曲線如圖3所示,顯示了量化比特?cái)?shù)目與誤碼率的關(guān)系。采用的量化比特?cái)?shù)目越多,性能越好,但是量化比特?cái)?shù)為3~5時(shí)的性能變化顯著,且量化比特?cái)?shù)為5時(shí)已經(jīng)非常接近浮點(diǎn)運(yùn)算的性能,比特?cái)?shù)再增加帶來(lái)的意義不大。因此,采用5bit量化,實(shí)現(xiàn)了復(fù)雜度與性能的最佳配置。
圖3 量化比特?cái)?shù)目與誤碼率的關(guān)系
采用(64,57,4)擴(kuò)展?jié)h明碼作為子碼的TPC碼字,對(duì)其在衰落信道中的性能進(jìn)行仿真,根據(jù)上節(jié)不同參數(shù)的仿真結(jié)果,編譯碼參數(shù)選擇:譯碼迭代4次、定點(diǎn)量化5bit。仿真條件為:QPSK調(diào)制、瑞利衰落信道、4重分集、2Mb/s速率、5Hz多普勒頻移,仿真結(jié)果如圖4所示。由圖4可知,誤碼率10-5時(shí)的編碼增益約3.5dB。因此,TPC碼應(yīng)用于衰落信道可獲得顯著的性能改善。
圖4 TPC碼在衰落信道中的仿真性能
根據(jù)上節(jié)的仿真結(jié)果,對(duì)以(64,57,4)擴(kuò)展?jié)h明碼為子碼的TPC碼字進(jìn)行編譯碼算法的硬件設(shè)計(jì),采用4次譯碼迭代、5bit定點(diǎn)量化。本設(shè)計(jì)在QuartusII-6.0集成環(huán)境下進(jìn)行,并結(jié)合編譯碼算法的Matlab仿真,采用Altera StratixII開(kāi)發(fā)板為平臺(tái)。
在進(jìn)行硬件設(shè)計(jì)時(shí),首先將編、譯碼算法分解為各個(gè)子模塊,完成各子模塊硬件程序的編寫(xiě)后分別將編碼模塊、譯碼模塊作為一個(gè)整體進(jìn)行調(diào)試。由于編、譯碼模塊程序龐大、結(jié)構(gòu)復(fù)雜,因此硬件邏輯開(kāi)發(fā)過(guò)程關(guān)鍵在于編碼、譯碼模塊的調(diào)試,為使得調(diào)試過(guò)程高效、有序的進(jìn)行,采用從前至后、逐個(gè)子模塊進(jìn)行功能檢測(cè)的串行調(diào)試方法。
完成了TPC編譯碼模塊的硬件設(shè)計(jì)與調(diào)試后,將其應(yīng)用于某8Mb/s無(wú)線通信調(diào)制解調(diào)器,通過(guò)接口設(shè)計(jì)分別將2個(gè)模塊與調(diào)制解調(diào)器內(nèi)的調(diào)制、解調(diào)模塊進(jìn)行有效連接,進(jìn)而完成整個(gè)調(diào)制解調(diào)器的設(shè)計(jì),其連接框圖如圖5所示。其中,調(diào)制端通過(guò)插入幀頭將編碼后的碼字進(jìn)行成幀處理,解調(diào)端通過(guò)幀頭檢測(cè)對(duì)均衡解調(diào)后的信號(hào)流實(shí)現(xiàn)幀同步;由于衰落信道中解調(diào)信號(hào)存在相位旋轉(zhuǎn),采用去相位模糊模塊,根據(jù)幀頭檢測(cè)指示,對(duì)解調(diào)后的信號(hào)進(jìn)行相位糾正后送入譯碼模塊。
圖5 TPC編譯碼模塊在調(diào)制解調(diào)器中的應(yīng)用
針對(duì)該調(diào)制解調(diào)器在變參模擬信道中進(jìn)行測(cè)試,由于變參信道測(cè)試儀器的限制,無(wú)法實(shí)現(xiàn)調(diào)制解調(diào)器所需的4重空間分集,只能在2重空間分集下進(jìn)行近似測(cè)試,測(cè)試條件如下:2重分集、瑞利衰落信道、多徑數(shù)目5個(gè)、多普勒頻移5Hz、多徑時(shí)延500ns。測(cè)試結(jié)果如圖6所示,針對(duì)未采用TPC編碼時(shí)的性能與采用TPC編碼后的性能進(jìn)行比較可知,在誤碼率10-5時(shí)的編碼增益約3dB。因此,采用TPC糾錯(cuò)編碼顯著提高了調(diào)制解調(diào)器的性能。
圖6 變參信道性能測(cè)試
基于Turbo乘積碼的編譯碼原理,對(duì)以(64,57,4)擴(kuò)展BCH碼為子碼的TPC碼字進(jìn)行了不同參數(shù)時(shí)的性能仿真,根據(jù)仿真結(jié)果確定了硬件實(shí)現(xiàn)的設(shè)計(jì)參數(shù)并進(jìn)行了硬件設(shè)計(jì),將其成功應(yīng)用到無(wú)線調(diào)制解調(diào)器中,使得系統(tǒng)性能得到顯著改善。這種性能善使得無(wú)線通信系統(tǒng)可以實(shí)現(xiàn)更低的系統(tǒng)門(mén)限,也可用于改善系統(tǒng)通信質(zhì)量。
[1]劉東華,梁光明.Turbo碼設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2011.
[2]TRANTER W H,SHANMUGAN K S,RAPPAPORT T S.通信系統(tǒng)仿真原理與無(wú)線應(yīng)用[M].肖明波,楊光松譯.北京:機(jī)械工業(yè)出版社,2004.
[3]PYNDIAH R M.Near-optimum Decoding of Product Codes:Block Turbo Codes[J].IEEE Transactions on Communications,1998,46(8):1003-1010.
[4]吳丹.刪余Turbo乘積碼的編譯碼算法分析[J].無(wú)線電工程,2011,41(12):26-28.
[5]SHIC,LI Z W,WU D J,et al.Turbo Product Codes on Frequency Selective Fading Channel[C]// Vehicular Technology Conference,2002:1233-1236.
[6]BERROU C,GLAVIEUX A,THITIMAJSHIMA P.Near Shannon Limit Error-Correcting Codeing and Decoding:Turbo Codes[J].IEEE International Conference,1993(2):1064-1070.
[7]楊亮,胡家佺,馬騰飛.Turbo碼隨機(jī)性交織器設(shè)計(jì)[J].無(wú)線電工程,2011,41(6):36-39.
[8]CHEN Y,PARHI K K.Avery Low Complexity Block Turbo Decoder Composed of Extended Hamming Codes[C]// IEEE GlobalTelecommunicationsConference,2011:171-175.
[9]孟慶萍,周新力,田偉.基于DDEA算法的短波信道Turbo均衡研究[J].無(wú)線電通信技術(shù),2011,37(6):28-32.
[10]姚安,陳自力.Turbo均衡中迭代停止準(zhǔn)則的研究[J].無(wú)線電通信技術(shù),2014,40(1):37-40.
[11]吳丹,唐秋菊,梁保衛(wèi).刪余Turbo乘積碼的編譯碼算法分析[J].無(wú)線電工程,2011,41(12):26-28.
[12]段志輝.一種用于高可靠性系統(tǒng)蒙特卡羅仿真的抽樣方法[J].兵工學(xué)報(bào),1990(2):63-66.