TETRA數(shù)字集群通信系統(tǒng)是一種基于數(shù)字時(shí)分多址(TDMA)技術(shù)的專業(yè)移動(dòng)通信系統(tǒng)。該系統(tǒng)可在同一技術(shù)平臺上提供指揮調(diào)度、數(shù)據(jù)傳輸和電話服務(wù)。信息產(chǎn)業(yè)部于2000年發(fā)布了我國《數(shù)字集群移動(dòng)通信系統(tǒng)體制》(SJ/T11228-2000)標(biāo)準(zhǔn),在該標(biāo)準(zhǔn)中確定了TETRA數(shù)字集群通信系統(tǒng)和iDEN數(shù)字集群通信系統(tǒng)兩種體制。
語音信道編解碼技術(shù)是TETRA數(shù)字集群系統(tǒng)中的重要部分,它不僅能夠提高系統(tǒng)的頻譜利用率,而且能夠?yàn)橄到y(tǒng)提供有效的差錯(cuò)控制,保證系統(tǒng)傳輸?shù)目煽啃裕M(jìn)一步提高系統(tǒng)語音通信質(zhì)量。
2 TETRA數(shù)字集群系統(tǒng)語音信道的編碼技術(shù)
2.1刪余卷積編碼
TETRA數(shù)字集群系統(tǒng)語音信道采用碼率兼容刪除卷積碼(RCPC),進(jìn)行前向糾錯(cuò)編碼,實(shí)現(xiàn)語音的不同等級差錯(cuò)保護(hù)控制。卷積碼可表示為(n,k,N),即每輸入k個(gè)信息比特輸出n個(gè)編碼比特,其約束長度為N。為了提高碼率,需要增加k的值,但是k值的增加會顯著提高解碼器計(jì)算的復(fù)雜度。對于常用的Viterbi解碼器,k增加1,寄存器狀態(tài)數(shù)將翻倍,而且每個(gè)狀態(tài)至下一狀態(tài)的轉(zhuǎn)移路徑有2k條,加比選(ACS)的工作量也將隨k的增長而呈指數(shù)倍增長。這樣在硬件實(shí)現(xiàn)時(shí),將大大增加對存儲單元的需求,使得解碼器的實(shí)現(xiàn)變得十分復(fù)雜。為了獲得較高的通信速率且不增加編解碼器的復(fù)雜度,使用刪除(Puncture)方法。
首先利用某一固定碼率的編碼器進(jìn)行卷積編碼,然后根據(jù)要生成的碼率要求,周期性地刪除碼序列中某些位置上的比特,從而提高編碼效率。以一個(gè)碼率為1/n的碼為母本來進(jìn)行刪除,設(shè)刪除的周期為p。在一個(gè)周期內(nèi),當(dāng)編碼器輸入p個(gè)信息比特時(shí),將輸出n*p個(gè)編碼比特,n*p個(gè)編碼比特對應(yīng)的刪除矩陣A為:
(1)
其中:A每列的n元素與編碼器輸出的n個(gè)比特相對應(yīng)。
矩陣A的元素為0或1,當(dāng)aij=1時(shí),編碼器輸出對應(yīng)的編碼比特;當(dāng)aij=0時(shí),編碼器刪除對應(yīng)的編碼比特。因此,n、刪除周期p以及矩陣A中1的個(gè)數(shù)能夠確定最后輸出的碼率。當(dāng)從n*p個(gè)比特中刪除N個(gè)比特時(shí),碼率為p/(n*p-N)。
2.2交織
TETRA數(shù)字集群通信系統(tǒng)中使用的交織技術(shù)主要有兩種:塊內(nèi)交織和塊間交織。塊內(nèi)交織是在單個(gè)數(shù)據(jù)塊內(nèi)對數(shù)據(jù)進(jìn)行矩陣變換,將原數(shù)據(jù)排列次序置亂。塊間交織是首先將當(dāng)前數(shù)據(jù)塊中的數(shù)據(jù)分散到N個(gè)交織塊中,當(dāng)前塊和前N-1個(gè)數(shù)據(jù)塊中的部分?jǐn)?shù)據(jù)合成為一個(gè)數(shù)據(jù)塊;然后對于每個(gè)數(shù)據(jù)塊再進(jìn)行塊內(nèi)交織,交織深度N的取值范圍是1、4或8。交織深度N越大,交織效果越好,但將增加編碼和解碼的延時(shí),導(dǎo)致業(yè)務(wù)傳輸?shù)臅r(shí)延加大。
2.3加擾
為了保證數(shù)字基帶傳輸中定時(shí)恢復(fù)的質(zhì)量,要求所傳輸比特流中所含有的“1”和“0”出現(xiàn)的概率是相等的。在交織之后,TETRA數(shù)字集群系統(tǒng)將利用一個(gè)偽隨機(jī)序列對傳送的碼流進(jìn)行擾亂處理,使之變?yōu)閭坞S機(jī)序列,從而限制連“0”碼和連“1”碼的長度。
3 TETRA數(shù)字集群系統(tǒng)語音信道的編碼流程
在TETRA數(shù)字集群標(biāo)準(zhǔn)中,下MAC層的邏輯信道可以分為業(yè)務(wù)信道和信令信道兩類,通過業(yè)務(wù)信道中的語音業(yè)務(wù)信道實(shí)現(xiàn)TETRA數(shù)字集群通信系統(tǒng)中的語音信號傳輸。在語音信號采集端,模擬語音信號經(jīng)8kHz采樣,16比特量化后轉(zhuǎn)化為128kbit/s的數(shù)字信號,然后將采樣數(shù)據(jù)進(jìn)行ACELP(Algebraic Code—Excited Linear Predictive:代數(shù)碼激勵(lì)線性預(yù)測)語音編碼,得到每幀137比特的語音編碼數(shù)據(jù)。通常,一個(gè)時(shí)隙(14.167毫秒)會傳輸2個(gè)語音幀,共274比特的語音編碼數(shù)據(jù),這兩個(gè)語音幀的數(shù)據(jù)將會被相互交叉合并進(jìn)行編碼,以提高語音信道編碼的魯棒性,用于傳輸這種格式語音數(shù)據(jù)的邏輯信道為全時(shí)隙業(yè)務(wù)信道(TCH/F);當(dāng)發(fā)生了信道挪用且只挪用了2個(gè)語音幀中的一幀時(shí),一個(gè)時(shí)隙(14.167毫秒)只傳輸1個(gè)語音幀共137比特的語音編碼數(shù)據(jù),用于傳輸這種格式語音數(shù)據(jù)的邏輯信道為半時(shí)隙業(yè)務(wù)信道(TCH/H)。
全時(shí)隙業(yè)務(wù)信道(TCH/F)和半時(shí)隙業(yè)務(wù)信道(TCH/H)的信道編碼方案不同,但編碼的步驟是相同的。圖1示出了TETRA數(shù)字集群系統(tǒng)全時(shí)隙業(yè)務(wù)信道(TCH/F)和半時(shí)隙業(yè)務(wù)信道(TCH/H)的信道編碼結(jié)構(gòu)。
圖1 TETRA數(shù)字集群系統(tǒng)的信道編碼結(jié)構(gòu)
TETRA數(shù)字集群系統(tǒng)TCH/F的主要編碼流程為:
(1)等級分類
由于TETRA數(shù)字集群系統(tǒng)的信道帶度為25kHz,所以為了提高信道利用率,其信道糾錯(cuò)編碼方案采用非均等保護(hù)。由于語音編碼后的274比特對于語音重建的作用是不同的,根據(jù)對語音信號重建的重要性,將語音編碼后的274比特分為3個(gè)等級,即:0等級(102比特)、1等級(112比特)以及2等級(60比特),其中0等級比特最不重要,2等級比特最重要。
(2)加入循環(huán)碼校驗(yàn)
在等級分類后,根據(jù)不同等級對語音重建作用的不同,對語音編碼數(shù)據(jù)進(jìn)行非均等糾錯(cuò)保護(hù)。因?yàn)?等級的數(shù)據(jù)最為重要,所以TETRA數(shù)字集群系統(tǒng)利用循環(huán)冗余碼(CRC碼)對其保護(hù),其生成多項(xiàng)式為:
(2)
(3)刪余卷積碼
刪余卷積碼也采用了非均等糾錯(cuò)保護(hù),對2等級數(shù)據(jù)、CRC校驗(yàn)碼以及4比特尾碼進(jìn)行碼率為8/18的刪除卷積編碼,對1等級數(shù)據(jù)進(jìn)行碼率為2/3的刪除卷積編碼,0等級數(shù)據(jù)不加保護(hù)。
(4)交織和加擾
所有數(shù)據(jù)都要進(jìn)行交織和加擾。交織是將突發(fā)錯(cuò)誤分散并轉(zhuǎn)換成為隨機(jī)錯(cuò)誤,從而提高系統(tǒng)的糾錯(cuò)能力。TETRA數(shù)字集群系統(tǒng)對全時(shí)隙業(yè)務(wù)信道(TCH/F)采用了塊內(nèi)交織,對其進(jìn)行的矩陣變換。
4 TETRA數(shù)字集群系統(tǒng)語音信道的FPGA實(shí)現(xiàn)
在FPGA平臺上,利用VHDL語言實(shí)現(xiàn)語音信道編解碼,F(xiàn)PGA選芯片型號為Virtex-4 SX55,其信道編碼器的結(jié)構(gòu)如圖2所示。
圖2 TETRA系統(tǒng)信道編碼器的結(jié)構(gòu)
TETRA數(shù)字集群系統(tǒng)信道編碼器主要由兩大類模塊構(gòu)成:控制模塊和編碼模塊。
(1)控制模塊
控制模塊主要由主控制模塊、讀RAM地址控制器、1路變2路選擇器以及2路變1路選擇器。根據(jù)TETRA數(shù)字集群協(xié)議棧所要求編碼的邏輯信道類型,主控制模塊控制整個(gè)編碼模塊的工作。讀RAM地址控制器通過對讀地址的控制,實(shí)現(xiàn)了不同等級的分類。1路變2路選擇器將AACH的編碼數(shù)據(jù)和其他邏輯信道的編碼數(shù)據(jù)分離。2路變1路選擇器將兩路編碼數(shù)據(jù)合并成一路數(shù)據(jù),然后進(jìn)入擾碼模塊。
(2)編碼模塊
編碼模塊主要由循環(huán)編碼模塊、RM(Reed-Muller)編碼模塊、卷積編碼模塊、交織模塊以及加擾模塊組成。循環(huán)編碼模塊是由移位寄存器實(shí)現(xiàn)的,在加入CRC校驗(yàn)碼之后,還加入了4個(gè)比特的尾碼。RM(Reed-Muller)編碼模塊只應(yīng)用于AACH邏輯信道。卷積編碼模塊支持TETRA協(xié)議中規(guī)定的各種碼率。交織模塊由塊內(nèi)交織和塊間交織兩個(gè)子模塊組成。在編碼之前,加擾模塊需要協(xié)議棧提供色碼參數(shù),才能正確輸出編碼結(jié)果。
在獲知協(xié)議棧所要求編碼的邏輯信道類型之后,主控制模塊開始從存儲數(shù)據(jù)的RAM中讀取待編碼數(shù)據(jù),讀取的個(gè)數(shù)隨著邏輯信道類型的不同而不同。因?yàn)榇幋a數(shù)據(jù)是按順序存入RAM中,而TETRA數(shù)字集群系統(tǒng)中語音信道的編碼方案采用了非均等保護(hù),要求輸入編碼器的碼元順序按等級分類,所以在對語音數(shù)據(jù)進(jìn)行編碼之前,主控制模塊通過讀RAM地址控制器模塊來控制讀RAM的地址順序,從而完成等級分類。
在TETRA數(shù)字集群系統(tǒng)的信道編碼方案中,AACH邏輯信道的編碼流程與其他邏輯信道的編碼流程不同,所以在實(shí)際實(shí)現(xiàn)的過程中,通過兩個(gè)路徑選擇器形成兩條編碼路徑,使AACH的編碼路徑與其他邏輯信道分開。
圖3示出了TETRA語音業(yè)務(wù)信道信道編碼的流程。
圖3 TETRA語音業(yè)務(wù)信道編碼流程
在接收到編碼指令之后,信道編碼器首先判斷協(xié)議棧要求編碼的邏輯信道類型,并根據(jù)邏輯信道類型從語音緩存區(qū)里讀取數(shù)據(jù):全時(shí)隙業(yè)務(wù)信道(TCH/F)讀取274比特的數(shù)據(jù);半時(shí)隙業(yè)務(wù)信道(TCH/H)讀取137比特的數(shù)據(jù)。由于語音緩存區(qū)里的比特流級別順序是混亂的,所以必須對比特進(jìn)行重排,將各級別數(shù)據(jù)分類,并按順序排放。只對第二等級的比特進(jìn)行CRC編碼,在第二等級比特流末端加入CRC校驗(yàn)值之后,還要再加入4比特尾碼。根據(jù)395-2協(xié)議,業(yè)務(wù)信道編碼前的碼元是逆序進(jìn)入移位寄存器的,即最先進(jìn)入編碼模塊,最后進(jìn)入移位寄存器;最后進(jìn)入編碼模塊,最先進(jìn)入移位寄存器。當(dāng)進(jìn)行RCPC編碼時(shí),首先對第1等級比特進(jìn)行卷積,然后對第2等級比特(包括CRC校驗(yàn)碼和尾碼)進(jìn)行運(yùn)算。第1等級和第2等級的比特所進(jìn)行刪余的碼率是不同的,但處理是連續(xù)進(jìn)行的,在碼率轉(zhuǎn)換的時(shí)刻,寄存器不要清空。對所有比特進(jìn)行交織和加擾。
5 結(jié)束語
本文對TETRA數(shù)字集群系統(tǒng)語音業(yè)務(wù)信道所采用的糾錯(cuò)編碼技術(shù)進(jìn)行了分析,闡述了語音業(yè)務(wù)信道的編碼流程,并給出了用FPGA實(shí)現(xiàn)編碼器的方案,為進(jìn)一步的研究與開發(fā)提供參考。
參考文獻(xiàn):
[1] ETSI ETS 300 395-2(2003). Terrestrial Trunked Radio(TETRA) Speech Codec for Full-rate Traffic Channel;Part2:TETRA codec.Second Edition[S].1998-02.
[2] 鄭祖輝,陸錦華,鄭嵐. 數(shù)字集群移動(dòng)通信系統(tǒng)(第二版)[M]. 北京:電子工業(yè)出版社,2002.
[3] 王新梅,肖國鎮(zhèn). 糾錯(cuò)碼-原理與方法(第二版)[M]. 西安:西安電子科技大學(xué)出版社,2001. ★