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