權(quán)進(jìn)國(guó),陳海飛,林孝康
(清華大學(xué)深圳研究生院現(xiàn)代通信實(shí)驗(yàn)室,深圳518055)
DMR(Digital Private Radio)標(biāo)準(zhǔn)是歐洲電信標(biāo)準(zhǔn)協(xié)會(huì)在2006年頒布的數(shù)字對(duì)講機(jī)標(biāo)準(zhǔn)。DMR標(biāo)準(zhǔn)采用了多種信道編碼對(duì)不同的幀進(jìn)行編碼。在語(yǔ)音、數(shù)據(jù)和控制幀中,控制幀負(fù)責(zé)通話的建立、連接和終止,因而控制幀的信道編碼顯得尤為重要。控制幀的信道編碼類(lèi)型中一種很重要的編碼就是Turbo乘積碼。
目前市場(chǎng)上流通的DMR標(biāo)準(zhǔn)芯片大多由歐美公司把持,他們憑借自身的資本優(yōu)勢(shì)和技術(shù)優(yōu)勢(shì),形成了大量的專(zhuān)利,正是這些技術(shù)專(zhuān)利壁壘大大抬高了芯片的成本。所以研發(fā)具有自主知識(shí)產(chǎn)權(quán)的價(jià)格低廉、性能優(yōu)良的專(zhuān)用芯片對(duì)我國(guó)數(shù)字集群通信的發(fā)展有著重要意義。在分析DMR標(biāo)準(zhǔn)信道編碼算法的基礎(chǔ)上,設(shè)計(jì)了一種基于DMR標(biāo)準(zhǔn)的TPC信道編解碼器,并且通過(guò)了仿真與驗(yàn)證。
1994年,Pyndiah等人[1]在 Chase算法的基礎(chǔ)上提出了一種線性分組碼的軟輸入軟輸出迭代譯碼算法,并將它應(yīng)用于乘積碼譯碼中,獲得了很好的編碼增益。其性能與Turbo卷積碼較為相近。基于Chase算法的TPC迭代譯碼算法是一種通過(guò)縮小碼字搜索范圍的次最優(yōu)譯碼算法。在譯碼時(shí),將碼元的對(duì)數(shù)似然比(Log-Likelihood Ratio,LLR)作為譯碼器的軟輸出,并將軟輸出信息減去軟輸入信息,作為下次迭代的外信息。通過(guò)這種方式不斷修正碼元的軟信息,增大其可靠度,獲得較好的譯碼性能。
以二維乘積碼為例來(lái)講述TPC的構(gòu)成。設(shè)分組碼:C1(n1,k1,d1)和 C2(n2,k2,d2)。其中 n 表示編碼長(zhǎng)度,k表示信息比特長(zhǎng)度,d表示最小漢明距離。二維乘積碼P=C1?C2的構(gòu)造方式如圖1所示。

圖1 二維TPC的構(gòu)造
發(fā)送的序列首先經(jīng)過(guò)一個(gè)交織器,打亂原始序列的順序,這樣可以有效抵抗信道上的瞬時(shí)干擾。經(jīng)過(guò)交織的序列排成一個(gè)K=K9×11的信息矩陣,送入TPC編碼器。DMR規(guī)定TPC編碼器的行編碼為C2=Hamming(15,11,3),列編碼為 C1=Hamming(13,9,3)。生成的編碼矩陣為 N=N13×15。編碼矩陣如圖2所示。

圖2 TPC(196,96)
DMR信道編碼器的核心模塊是漢明碼編碼器的設(shè)計(jì),DMR 規(guī)定行編碼 C1=Hamming(15,11,3),列編碼 C2=Hamming(13,9,3)。生成多項(xiàng)式:G(x)=x4+x+1=238。根據(jù)生成矩陣設(shè)計(jì)漢明碼編碼器,以 Hamming(13,9,3)為例,編碼器的實(shí)現(xiàn)框圖如圖3所示。

圖3 Hamming(13,9,3)編碼
發(fā)送的序列首先經(jīng)過(guò)一個(gè)交織器,打亂原始序列的順序,這樣可以有效抵抗信道上的瞬時(shí)干擾。經(jīng)過(guò)交織的序列排成一個(gè)K9*13的信息矩陣,送入TPC編碼器。DMR規(guī)定TPC編碼器的行編碼為Hamming(15,11,3)方案,列編碼為 Hamming(13,9,3)方案。行編碼和列編碼是順序執(zhí)行的,先后關(guān)系不影響最終的編碼輸出。圖4中TPC編碼矩陣右下角為校驗(yàn)的校驗(yàn),可以證明校驗(yàn)的校驗(yàn)與行/列編碼的順序沒(méi)有關(guān)系。在編碼器的最后執(zhí)行串轉(zhuǎn)并操作,將編碼矩陣中的數(shù)據(jù)轉(zhuǎn)化為比特序列送入調(diào)制器。編碼器的整體結(jié)構(gòu)如圖4所示。

圖4 編碼器整體結(jié)構(gòu)
譯碼器執(zhí)行的是與編碼器相反的過(guò)程,為了降低譯碼器的誤碼率,采用軟譯碼方案。從解調(diào)器接收到的軟信息序列,按照發(fā)送時(shí)的并轉(zhuǎn)串順序恢復(fù)TPC編碼矩陣 R13×15。TPC軟譯碼采用經(jīng)典的Chase-Pyndiah迭代譯碼方案。經(jīng)過(guò)TPC軟譯碼輸出的信息碼字再經(jīng)過(guò)解交織得到原始的信息序列。譯碼整體結(jié)構(gòu)如圖5所示。

圖5 譯碼器結(jié)構(gòu)
Turbo乘積碼是一種串行級(jí)聯(lián)碼,所以采用軟判決迭代譯碼能提升Turbo乘積碼的性能。最常用的就是Chase譯碼迭代算法。Chase算法是一種軟輸入硬輸出的譯碼算法,其輸出為硬判決信息,1998年P(guān)yndiah[2]針對(duì)Turbo乘積碼提出一種基于修正的Chase譯碼算法的迭代譯碼算法。迭代譯碼結(jié)構(gòu)由行、列譯碼器串行級(jí)聯(lián)而成,結(jié)構(gòu)如圖6所示。

圖6 SISO迭代譯碼器
每一次迭代譯碼輸入外信息W[m],經(jīng)過(guò)軟譯碼單元計(jì)算輸出外信息W[m+1]。如圖2所示,在單元譯碼器中α[m]表示第m次迭代時(shí)的加權(quán)因子,β[m]表示第m次迭代時(shí)的可靠度因子。它們的值都是通過(guò)經(jīng)驗(yàn)獲得,在迭代初始階段信噪比較大時(shí),α[m]一般取值較小,主要由于抑制了外信息W[m]的作用。在迭代后期,信噪比較小時(shí),其值可以逐漸增大。β[m]主要用于控制軟輸出信息輸出峰值范圍。
迭代譯碼器中行/列譯碼器單元為漢明碼譯碼器。漢明譯碼器首先將軟信息r做硬判決得到H,根據(jù)H的譯碼信息在碼字空間找到一組備選碼字C,在碼字C中找到距離軟信息r最近的碼字作為譯碼輸出D。并用D與備選碼字C的距離來(lái)計(jì)算外信息W[m],作為下一次迭代譯碼的輸入。
提出基于DMR標(biāo)準(zhǔn)的Turbo乘積碼編解碼器整體方案,整個(gè)信道編解碼是用Verilog HDL實(shí)現(xiàn)的,利用Modelsim SE 6.0進(jìn)行仿真,綜合工具使用Xilinx ISE 10.1軟件,F(xiàn)PGA平臺(tái)選用Xilinx Spartan 3 XC3S1500[3]。為了驗(yàn)證模塊功能的正確性,將測(cè)試序列同時(shí)送給硬件模塊和Matlab程序仿真,結(jié)果兩者輸出一致,說(shuō)明模塊功能正確。
根據(jù)DMR標(biāo)準(zhǔn)信道編碼算法的原理設(shè)計(jì)了基于FPGA的信道編解碼系統(tǒng),系統(tǒng)用Verilog HDL實(shí)現(xiàn)并通過(guò)了FPGA的綜合驗(yàn)證。最后驗(yàn)證結(jié)果表明該系統(tǒng)在占用較少硬件資源的同時(shí),設(shè)計(jì)的結(jié)果符合DMR標(biāo)準(zhǔn)要求,能夠應(yīng)用到整個(gè)DMR標(biāo)準(zhǔn)的SoC實(shí)現(xiàn)中。該設(shè)計(jì)對(duì)DMR標(biāo)準(zhǔn)的ASIC芯片的研發(fā)也具有一定的指導(dǎo)意義。
[1] PYNDIAH R,GLAVIEUX A,PICARTA,et al.Near optimum de-coding of product codes[C].IEEE GLOBECOM.NewYork:IEEE,1994.
[2] Pyndiah R.Near-Optimum Decoding of Product Codes:Block Turbo Codes[J].IEEE Trans.on Communications,1998,48(8):1003-1010.
[3] 曹志剛,錢(qián)亞生.現(xiàn)代通信原理[M].北京:清華大學(xué)出版社,2001.
[4] 王新梅,肖國(guó)鎮(zhèn).糾錯(cuò)碼-原理與方法[M].西安:西安電子科技大學(xué)出版社,1991.
[5] 張忠培,史治平,王傳丹.現(xiàn)代編碼理論與應(yīng)用[M].北京:國(guó)防工業(yè)出版社,2007.
[6] Chase D.A Class of Algorithms for Decoding Block Codes with Channel Measurement Information[J].IEEE Trans.Inform.Theory,1972,18(1):170-182.
[7] Hirst Simon A,Honary Bahram,Markarian Garik.Fast Chase Algorithm with an Application in Turbo Decoding[J].IEEE Trans.on Communications,2001,49(10):1693-1699.