用FPGA實現(xiàn)TETRA數(shù)字集群通信系統(tǒng)語音信道編碼中的交織器
1 語音信道編碼流程
TETRA數(shù)字集群系統(tǒng)中,語音信號數(shù)字化處理再經(jīng)過ACELP算法[1]編碼后得到低速率的語音數(shù)據(jù)流,該語音數(shù)據(jù)流分為三類,分別為:每幀(30 ms)0類為51比特、1類為56比特、2類為30比特。
在這三類中,2類是最關(guān)鍵的。2類比特用CRC碼和卷積碼來保護(hù),1類比特只用卷積碼來保護(hù),而0類比特是沒有保護(hù)的。根據(jù)TETRA數(shù)字集群標(biāo)準(zhǔn),將2個連續(xù)的30 ms(精確為29.97 ms)語音信息組合并。第一步把0類、1類和2類比特組合成一個群,產(chǎn)生一個代表60 ms話音的274比特的單組。2類比特通過一個CRC碼產(chǎn)生8比特校驗碼,并加到2類子組的尾部。卷積碼既適用于1類比特,又適用于2類比特。4比特的尾部加到重新設(shè)置的編碼器狀態(tài)上。這里采用一種經(jīng)濟(jì)的收縮碼以3/2速率用于1類比特,以18/8速率用于2類比特、奇偶校驗比特和尾部。
然后,所合成的330比特與無保護(hù)的0類比特重新合并,形成一個432比特組。最后對形成的432比特組進(jìn)行時隙內(nèi)的比特交織[2],形成新的數(shù)據(jù)比特流,最后將該數(shù)據(jù)比特流與系統(tǒng)其他信息比特流復(fù)用,經(jīng)過調(diào)制后送入無線信道。
在信道編碼中采用交織技術(shù),將連續(xù)的突發(fā)錯誤分散,使其轉(zhuǎn)換為隨機(jī)錯誤,從而提高整個通信系統(tǒng)的可靠性。下面將主要研究語音信道編碼中如何使用交織技術(shù)。
2 交織器工作原理
數(shù)字通信中常用的交織器按交織對象分可分為字節(jié)交織和比特交織。這里以比特交織為例介紹一下交織器的工作原理。
假設(shè)有3個要傳輸?shù)模?,3)碼塊B1,B2,B3為:
本文引用地址:http://cafeforensic.com/article/201706/349357.htm
不采用交織技術(shù)在信道上傳輸?shù)臄?shù)據(jù)比特流為:
變換后即交織處理后在信道上傳輸?shù)臄?shù)據(jù)比特流為:
假設(shè)不采用交織技術(shù)接收端收到數(shù)據(jù)為(“×”表示傳輸過程中出錯的數(shù)據(jù)):a2a1a0P1P0b2b1×××c2c1c0 R1R0。因為傳輸?shù)氖牵?,3)碼塊,這樣每個碼塊中出現(xiàn)一位錯誤可以糾正,故對碼塊b2 b1×××連續(xù)突發(fā)出現(xiàn)的三位錯誤就無法進(jìn)行糾正了。如果采用交織編碼后再傳輸數(shù)據(jù),接收端收到數(shù)據(jù)應(yīng)為:a2b2c2a1 b1c1 a0×××Q1R1 P0 Q0 R0。接收端再對數(shù)據(jù)進(jìn)行序列變換得:a2 a1a0×P0b2 b1×Q1Q0c2c1×R1 R0。這樣連續(xù)突發(fā)出現(xiàn)的三位錯誤就分散到3個碼塊中,均可得到糾正。
一般來說,如果有r個(n,k)碼,排成r×n矩陣,按列交織后存儲或傳送,讀出或接收時恢復(fù)原來的排列,若(n,k)碼能糾t個錯誤,那么交織后就可糾rt個錯誤[3]。對糾正信道傳輸過程中出現(xiàn)的突發(fā)錯誤效果明顯。TETRA語音信道編碼中使用這種比特交織器。
3 用FPGA實現(xiàn)交織器的方法
TETRA數(shù)字集群系統(tǒng)語音信道編碼對語音比特流進(jìn)行交織編碼時,以CRC和FEC編碼后一個時隙內(nèi)432比特的語音數(shù)據(jù)流為處理單位,分成18行,每行24比特,進(jìn)行比特交織編碼。
根據(jù)Altera公司FLEX系列器件的內(nèi)部結(jié)構(gòu)特點,可以利用EAB資源,用存儲器實現(xiàn)TETRA數(shù)字集群語音信道編碼中的交織器。這種方法實現(xiàn)起來比較簡單,可以用現(xiàn)有的邏輯器件LPM-RAM-DP來實現(xiàn)。
考慮到語音實時傳輸過程延時要盡可能小,在此選用雙口RAM,以保證能對存儲器的緩沖區(qū)同時讀寫,減小延時。因為24×18=432<1 024,故容量用1kB即可,圖1為實現(xiàn)該交織器的原理框圖。交織器實際工作時,先將一個時隙內(nèi)(60 ms)的432比特語音數(shù)據(jù)流按地址從0~431全部寫入左RAM,432比特的數(shù)據(jù)全部送達(dá)左RAM后,用分頻器產(chǎn)生控制信號使左RAM由寫狀態(tài)轉(zhuǎn)換為讀狀態(tài),可以從中讀出交織處理后的數(shù)據(jù)。同時右RAM狀態(tài)變?yōu)閷懀乱粫r隙的432比特數(shù)據(jù)寫入右RAM,432比特的數(shù)據(jù)全部送達(dá)右RAM后,用分頻器產(chǎn)生控制信號使右RAM由寫狀態(tài)轉(zhuǎn)換為讀狀態(tài),同時左RAM變成寫狀態(tài),依次反復(fù)循環(huán)完成交織編碼。
這種實現(xiàn)交織編碼的方法是將輸入的數(shù)據(jù)直接存入存儲器,存儲的順序由地址確定。然后再將這些數(shù)據(jù)按照一定的順序讀出來,順序也是由地址確定。因此做一個合適的地址產(chǎn)生器便能滿足交織編碼的要求,使用Altara的開發(fā)工具QUARTUS可以實現(xiàn)對該交織器的仿真。圖2為使用QUARTUSII實現(xiàn)該交織器的電路原理圖。
這是基于FLEX10K的EPF10K30EFC256-1器件實現(xiàn)的交織器,在QUARTUSII編輯器中,在lpmrom0存儲器中存儲滿足交織編碼的數(shù)據(jù)地址變換程序,仿真后編碼延遲遠(yuǎn)小于60 ms(一個時隙),滿足TETRA數(shù)字集群系統(tǒng)語音信道編碼中交織編碼的要求。
4 結(jié) 語
隨著通信技術(shù)的發(fā)展,我國現(xiàn)有的模擬集群通信系統(tǒng)必將被數(shù)字集群通信系統(tǒng)所代替。本文針對信息產(chǎn)業(yè)部重點支持發(fā)展的TETRA數(shù)字集群通信系統(tǒng),詳細(xì)介紹了該系統(tǒng)語音信道編碼結(jié)構(gòu)和流程,分析了信道編碼中采用的交織技術(shù),針對語音通信的特點,詳細(xì)介紹了用FPGA實現(xiàn)TETRA數(shù)字集群通信系統(tǒng)語音信道編碼中的交織器的方法。為進(jìn)一步研究TERTA數(shù)字集群通信系統(tǒng)和信道編碼打下了良好的基礎(chǔ)。
參考文獻(xiàn)
[1]傅寅飛,劉亞康,朱學(xué)勇.全數(shù)字集群系統(tǒng)(TETRA)聲碼器的仿真與實現(xiàn)[J].移動通
[2]蘇閩,張乃通,譚學(xué)治,等.交織編碼在TETRA數(shù)字集群系統(tǒng)語音業(yè)務(wù)信道中的性能研究[J].移動通信,2002,(5):39-42.
[3]林福宗.多媒體技術(shù)基礎(chǔ)[M].北京:清華大學(xué)出版社,2000.
(編輯:chiying)
評論