肖雪芳,左石凱,蘇國良,雷國偉
(1.廈門理工學院光電與通信工程學院,福建 廈門 361024;2.福建省高校光電技術重點實驗室,福建 廈門 361024;3.廈門市LED照明應用工程技術中心,福建 廈門 361024;4.集美大學理學院,福建 廈門 361021)
隨著當代通信的高速發(fā)展,高速率傳輸以及高可靠性傳輸被稱為信息傳輸中最重要的兩個方面。而在這方面,卷積碼都有著非常大的優(yōu)勢。已廣泛應用于各類無線通信系統(tǒng)中。卷積碼是由伊萊亞斯在1955年提出的一種非分組的連環(huán)碼[1],具有高結構化的映射關系,由連續(xù)的信息序列比特構成,是一種向前糾錯型的編碼類型[2]。在卷積碼中,譯碼方法有許多種,Viterbi的最大似然譯碼是迄今為止性能最好的一種譯碼算法。文獻[3-4]在不同類型的數字信號處理(digital signal process,簡稱DSP)技術芯片上使用Viterbi方法進行卷積碼的譯碼。文獻[5-6]在DSP上實現了咬尾卷積碼的編譯碼。文獻[7-8]從不同約束長度的角度,討論在DSP上實現不同卷積碼結構的性能。除了上述對卷積碼結構的性能比較外,關于卷積碼的幸存路徑、進制等還需要進行性能比較。
本文分析了不同進制、不同碼率下的編碼結構,并從譯碼角度探討了不同幸存路徑下的譯碼性能,并在TMS320C5509系列平臺上搭建卷積碼的編譯碼系統(tǒng)。系統(tǒng)中,對卷積碼的碼字進行模擬干擾,以便更好地分析比較卷積碼的性能。最后通過實驗仿真,驗證了卷積碼在不同編碼結構、不同幸存路徑、不同進制等條件下譯碼的性能。
卷積碼編碼的基本原理是編碼器對數據流進行1 bit或kbit編碼運算,編碼輸出n個bit的編碼符號。在通常情況下卷積碼是用(n,k,m)來表示。其中,n為一個編碼器輸出的編碼標志個數,k表示為輸入的信息碼元長度,m為連續(xù)式輸入的寄存器個數。編碼率r=k/n。卷積碼就是在編碼的時候,將kbit的信息編譯生成nbit的編碼組,這就讓編碼的產生不單單與當前狀態(tài)下k比特的信息有關聯,還與當時這個信息段的前面m-1個信息有關[1],其中m為編碼約束長度。二進制(2,1,3)和四進制(3,1,3)編碼器結構如圖1所示。圖1(a)和圖1(b)均由3級移位寄存器組成。其中圖1(a)由兩個模2加法器和兩個輸出構成,圖1(b)由3個模4加法器和3個輸出構成。
(a)二進制(2,1,3)(b)四進制(3,1,3)
圖1編碼器結構
Fig.1Convolutionalencoder
卷積碼的譯碼方式一般有兩種。第一種方式是代數譯碼[9],第二種方式是概率譯碼。前者有大數邏輯譯碼,后者也被稱為最大似然譯碼。維特比(viterbi,VB)譯碼算法是一種最大似然譯碼算法,即它對整個信息比特序列譯碼的差錯概率最小。當前應用最多最廣的是維特比譯碼方式,其基本思想是把接收到的矢量,和網格圖上諸種可能的路徑比較,刪去距離大的路徑,保留距離小的路徑,以距離最小路徑作為發(fā)碼的估值。具體來說,就是在每個單元時間,運算出2L個分叉的度量,加到相對應之前路徑上的度量中。然后進行對比2L個度量,找出路徑度量中擁有最多的度量路徑。像這種結果路徑就被叫做幸存路徑[10]。經過路徑度量相加后比對,找出幸存路徑,就是硬判決。而在離散信道中,軟判決運用的歐式距離,將可信度最大的作為幸存路徑。正常來說軟判決的譯碼結果相對于硬判決的譯碼結果來說性能會比較好。圖2是編碼器圖1(a)的狀態(tài)網格圖。從圖2可以看出,當輸入為(1011100)時,輸出為(11100001100111),碼率為1/2(見加粗標注路徑)。
圖2 狀態(tài)網格圖Fig. 2 Trellis graph
在DSP平臺上模擬搭建卷積碼通信系統(tǒng),該實驗系統(tǒng)有豐富的硬件資源,如CPU板,E_LAB總線接口、模擬信號源、A/D與D/A轉換單元、I/O單元、鍵盤接口單元、液晶顯示單元、JTAG仿真器等??梢酝瓿啥喾NDSP基礎實驗、算法實驗、控制對象實驗和編解碼通信實驗。該DSP平臺所選用的DSP芯片為TMS320C5509系列。該卷積碼通信系統(tǒng)主要由信源、交織器、編碼器、信道、譯碼器、解交織器、判決等部分組成。
信源模塊由rand()函數產生隨機小數,再通過round()函數取整后產生0或1的隨機數。四進制的隨機數產生比較簡單,只要將rand()函數產生的隨機小數乘以3,然后通過round()函數取整即可得到。交織器是對隨機數進行塊交織,重新編排其數據順序。本質上來說就是一種實現最大限度的改變信息結構而不改變信息內容的器件。使信道傳輸過程中所突發(fā)產生集中的錯誤最大限度的分散化。編碼器是對交織后的數據進行卷積碼編碼。卷積碼屬于信道編碼,它能增強數據在信道中傳輸時抵御各種干擾的能力,提高信息傳輸的可靠性。信道模塊由rand()函數產生模擬信道噪聲。譯碼器是編碼器的逆過程,一般借助狀態(tài)網格圖對數據進行維特比譯碼。解交織器是對譯碼數據按原序重排。判決器是將譯碼結果與源信息數據進行一一核驗,統(tǒng)計錯誤數量。最后計算系統(tǒng)的誤碼率。
編碼過程:運行CCS3.0軟件,新建項目juanji.pjt;然后添加編寫好的juanji.c(源文件)、juanji.cmd(cmd文件)、rts.lib(庫文件)。該源文件包括信源模塊、交織模塊、編碼模塊以及信道模塊。模擬信道就是對編碼文件bianmazhi.txt添加模擬噪聲,生成bianmazhi2.txt文件。
譯碼過程:新建yima.pjt;然后添加yima.c(源文件)、yima.cmd(cmd文件)、rts.lib(庫文件)。該源文件作用是先從c://bianmazhi.txt文件中接收卷積碼字,進行維特比譯碼,結果保存到c://yimajieguojz.txt文件當中,并對數據進行解交織,保存到c://jyimajieguo.txt文件當中去。
最后判決就是取出譯碼文件c://jyimajieguo.txt與源數據文件c://bianma.txt核對統(tǒng)計誤碼率。
為了更好地評估卷積碼性能,在原有誤碼率的基礎上,引入擾碼率的概念,對編碼后的卷積碼字進行隨機干擾,即擾碼率=傳輸中的擾碼/所傳輸的總碼數×100%,誤碼率=譯碼錯誤個數/傳輸數據總數×100%。然后從幸存路徑、編碼標志數、進制等不同側面來比較分析其性能。
由圖3可見,在相同卷積碼結構中,幸存路徑較大的維特比譯碼方式的抗噪能力較優(yōu)于幸存路徑較小的譯碼方式。
圖4顯示了卷積碼的編碼標志數對卷積碼的影響。從圖4(a)可以看出,在相同擾碼率下,卷積碼二進制(3,1,3)的誤碼率遠低于卷積碼二進制(2,1,3)的誤碼率。這意味著卷積碼編碼標志數n越大,其抗噪性能越優(yōu)。圖4(b)是從另一個側面來分析,當信噪比一定時,卷積碼二進制(3,1,3)的性能要優(yōu)于卷積碼二進制(2,1,3)。圖4說明了編碼率r=k/n對卷積碼性能的影響。雖然(3,1,3)的誤碼率要低于(2,1,3),但(3,1,3)的編碼率僅為r=1/3,而(2,1,3)的編碼率為r=1/2。因此對卷積碼而言,編碼率與誤碼率是難以調和的兩個性能指標。要提高系統(tǒng)的抗干擾性能,就不得不靠增加更多的冗余比特,這樣就無形中降低了有效信息的比重。反之,若要實現高速率傳輸,就不得不降低抗干擾性能。
由圖5(a)可以看出,在相同擾碼率下,四進制卷積碼(3,1,3)的誤碼率低于二進制卷積碼(3,1,3)。圖5(b)是從另一個側面來分析,當信噪比一定時,四進制卷積碼(3,1,3)的性能要優(yōu)于二進制卷積碼(3,1,3)。并且當信噪比逐漸增大,效果更明顯。因此,采用多進制的卷積碼,不啻為另一種實現高速率傳輸的手段。
基于DSP平臺,模擬搭建了卷積碼的通信系統(tǒng)。通過實驗,引入擾碼率的概念,從幸存路徑、編碼標志數、進制等不同側面對比分析其性能。結果顯示:幸存路徑越大,譯碼性能越好,但是要以譯碼復雜度為代價;編碼標志數越大,抗噪性能越優(yōu),但是要以犧牲數據率為代價;而高進制編碼不啻為改善性能和提高數據率的有效方法之一。高速率傳輸與誤碼率是一對難以調和的矛盾。要降低誤碼率就需要為信息位增加冗余比特,以增強糾錯性能。而本文提到的多進制卷積碼,繞開了這種單純靠約束長度來降低誤碼率的方法。本文的分析結果也適用于任何型號的DSP芯片,特別對未來的無線通信、衛(wèi)星通信、以及高速寬帶的通信都具有重要的意義。
[參考文獻]
[1]RYAN W E,林舒.信道編碼:經典與現代[M].白寶明,馬嘯,譯.北京:電子工業(yè)出版社,2017.
[2]MCELIECE R J,LIN W.The trellis complexity of convolutional codes[J].IEEE Transactions on Information Theory,1996,42(6):1 855-1 864.
[3]周軍,韓曉莉.Viterbi譯碼及其DSP算法研究[J].通信與廣播電視,1999(2):15-21.
[4]趙冰.卷積編碼及基于DSP的Viterbi譯碼器設計[J].信息與控制,2002,31(5):473-476.
[5]羅友寶,李小文.LTE系統(tǒng)的Viterbi譯碼算法仿真及DSP實現[J].光通信研究,2010(3):67-70.
[6]陳發(fā)堂,孫鵬,代修文,等.TD-LTE系統(tǒng)中咬尾卷積碼的DSP實現及性能測試[J].電子技術應用,2014,40(6):115-118.
[7]魏旭,陳雙良.基于高性能DSP的(3,2,2)卷積編解碼應用研究[J].貴陽學院學報(自然科學版),2012,7(2):48-50.
[8]王宏俊,杜長斌,楊自恒,等.基于(2,1,7)卷積碼實現低誤碼率通信的DSP設計[J].電子器件,2014,37(1):97-102.
[9]徐英杰.卷積編碼及基于DSP的Viterbi譯碼器設計[D].北京:北方工業(yè)大學,2005.
[10]張博.卷積碼的譯碼研究及DSP實現[D].天津:天津大學,2008.