移動(dòng)通信系統(tǒng)中交織編碼器的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
軟件無線電是一種實(shí)現(xiàn)無線通信的新的體系結(jié)構(gòu),是無線通信產(chǎn)業(yè)從模擬到數(shù)字、從固定到移動(dòng)這兩次革命后的第三次革命,是從硬件無線通信到軟件無線通信的革命。
在從事使用軟件無線實(shí)現(xiàn)GSM基站研究中,在深入研究GSM通信系統(tǒng)信道編碼結(jié)構(gòu)、交織方式的基礎(chǔ)上,利用VHDL硬件描述語言完成GSM基站信道編碼中使用的交織器的具體設(shè)計(jì),為進(jìn)一步研究軟件無線技術(shù)在GSM基站系統(tǒng)中應(yīng)用打下基礎(chǔ)。
1 GSM的話音編碼與信道編碼
在GSM通信系統(tǒng)中,全速率話音編碼算法為規(guī)則脈沖激勵(lì)及長期預(yù)測(cè)算法(RPE-LTP)。模擬話音首先通過一個(gè)ADC以8 kHz采樣頻率進(jìn)行采樣,每個(gè)采樣點(diǎn)用均勻13 b編碼。話音編碼器對(duì)每20 ms一段的話音進(jìn)行壓縮編碼,編碼結(jié)果為每20 ms產(chǎn)生260 b的數(shù)據(jù)塊。這260 b的數(shù)據(jù)根據(jù)他們的重要性分成為3類:Ia類、Ib類和Ⅱ類。Ia類共50 b,為非常重要的數(shù)據(jù)。如果這些數(shù)據(jù)被修改,恢復(fù)的話音將發(fā)生很大的錯(cuò)誤,甚至無法恢復(fù)正常的話音,因此這些數(shù)據(jù)需要嚴(yán)格保護(hù)。Ib類數(shù)據(jù)共132 b,是比較重要的數(shù)據(jù),需要進(jìn)行較好的保護(hù)。Ⅱ類數(shù)據(jù)共78 b,為一般重要的數(shù)據(jù),發(fā)生一些差錯(cuò)也不會(huì)對(duì)恢復(fù)的話音有太大的影響,通常不對(duì)其進(jìn)行保護(hù)。根據(jù)數(shù)據(jù)重要性的不同,決定信道編碼中采用不同的保護(hù)方法。
GSM通信系統(tǒng)的信道編碼首先對(duì)Ia類數(shù)據(jù)進(jìn)行差錯(cuò)檢測(cè)編碼,產(chǎn)生3個(gè)循環(huán)冗余校驗(yàn)(CRC)比特,這些比特的產(chǎn)生使用多項(xiàng)式為G(x)=X3⊕X⊕1。3個(gè)CRC比特附在Ia類的50 b后面,再與Ib類數(shù)據(jù)組合在一起進(jìn)行K=5,r=1/2的卷積編碼,卷積編碼器使用的2個(gè)多項(xiàng)式為P1(x)=X4⊕X3⊕1和P2(x)=X4⊕X3⊕X⊕1,卷積編碼產(chǎn)生的結(jié)果是兩個(gè)189 b的序列,將他們與不需要保護(hù)的Ⅱ類數(shù)據(jù)復(fù)合在一起,產(chǎn)生一個(gè)完整的經(jīng)過信道編碼的話音幀,共456 b。
2 交織編碼器工作原理
信道編碼中采用交織技術(shù),可打亂碼字比特之間的相關(guān)性,將信道中傳輸過程中的成群突發(fā)錯(cuò)誤轉(zhuǎn)換為隨機(jī)錯(cuò)誤,從而提高整個(gè)通信系統(tǒng)的可靠性。交織編碼根據(jù)交織方式的不同,可分為線性交織、卷積交織和偽隨機(jī)交織。其中線性交織編碼是一種比較常見的形式。所謂線性交織編碼器,是指把糾錯(cuò)編碼器輸出信號(hào)均勻分成m個(gè)碼組,每個(gè)碼組由n段數(shù)據(jù)構(gòu)成,這樣就構(gòu)成一個(gè)n×m的矩陣。這里把這個(gè)矩陣稱為交織矩陣。如圖1所示,數(shù)據(jù)以a11,a12,…,a1n,a21,a22,…,a2n,…,aij,…,am1,am2,…,amn(i=1,2,…,m;j=1,2,…,n)的順序進(jìn)入交織矩陣,交織處理后以a11,n21,…,am1,a12,a22,…,am2,…,a1n,a2n,…,amn的順序從交織矩陣中送出,這樣就完成對(duì)數(shù)據(jù)的交織編碼。還可以按照其他順序從交織矩陣中讀出數(shù)據(jù),不管采用哪種方式,其最終目的都是把輸入數(shù)據(jù)的次序打亂。如果aij只包含1個(gè)數(shù)據(jù)比特,稱為按比特交織;如果aij包含多個(gè)數(shù)據(jù)比特,則稱為按字交織。接收端的交織譯碼同交織編碼過程相類似。
一般來說,如果有n個(gè)(m,k)碼,排成,n×m矩陣,按列交織后存儲(chǔ)或傳送,讀出或接收時(shí)恢復(fù)原來的排列,若(m,k)碼能糾t個(gè)錯(cuò)誤,那么交織后就可糾m個(gè)錯(cuò)誤。對(duì)糾正信道傳輸過程中出現(xiàn)的突發(fā)錯(cuò)誤效果明顯。
GSM中使用這種比特交織器。其交織方式為將信道編碼后的每20 ms的數(shù)據(jù)塊m=456 b拆分到8組中,每組57 b,然后這每組57 b分配到不同的Burst中。
3 交織編碼器的軟件設(shè)計(jì)
GSM通信系統(tǒng)必須滿足實(shí)時(shí)性的要求,因此,交織編碼引入的延時(shí)應(yīng)盡可能小。為了同時(shí)滿足塊內(nèi)交織進(jìn)行(57,8)矩陣轉(zhuǎn)置變換和延時(shí)盡可能小的要求,該交織器利用2片雙口RAM實(shí)現(xiàn),記作RAM_和RAM_B。交織處理時(shí),按地址從0~455將456 b輸入數(shù)據(jù)全部寫入RAM_A,待456 b數(shù)據(jù)全部送入RAM_A后,控制信號(hào)使RAM_A由寫狀態(tài)轉(zhuǎn)換到讀狀態(tài),同時(shí),將輸入的待交織數(shù)據(jù)寫入RAM_B,RAM_B為寫狀態(tài),交織器由RAM_A輸出數(shù)據(jù)。經(jīng)過456個(gè)時(shí)鐘周期后,從RAM_A讀出456 b數(shù)據(jù)的同時(shí),RAM_B寫入一個(gè)時(shí)隙的456 b數(shù)據(jù)。此時(shí),改變RAM_A和RAM_B的讀寫狀態(tài),RAM_A開始寫,從RAM_B中讀取數(shù)據(jù)。如此反復(fù)完成數(shù)據(jù)的實(shí)時(shí)連續(xù)交織處理。
完成交織處理的核心問題是處理好讀/寫地址之間的關(guān)系,該交織器讀/寫地址的變換采用如下算法完成:
為減少FPGA運(yùn)算量,可利用Matlab,C語言等實(shí)現(xiàn)讀/寫地址矩陣轉(zhuǎn)置運(yùn)算。這里采用Matlab完成讀/寫地址矩陣轉(zhuǎn)置運(yùn)算,具體程序?yàn)椋簒=0:1:455;reshape(x,57,8)。讀/寫地址的變換結(jié)果存儲(chǔ)在address_ROM.mif文件中。利用VHDL語言描述該交織編碼器完整代碼如下:
4 仿真分析
利用Altera公司的QuartusⅡ工具軟件,對(duì)該交織器仿真分析,得到的時(shí)序仿真波形如圖2所示。從讀地址(rd_addr_A)和寫地址(wr_addr_A)以及(data_in)和(intlv_out)可以看出,該交織器完成既定的交織功能,延時(shí)相當(dāng)小,該設(shè)計(jì)方法正確可行。
5 結(jié)語
本文提出基于FPGA實(shí)現(xiàn)交織器的方法,給出利用VHDL語言描述該交織器的全部代碼。通過仿真分析驗(yàn)證該實(shí)現(xiàn)方案的正確性和可行性。為進(jìn)一步研究GSM通信系統(tǒng)基站軟件化打下了良好的基礎(chǔ)。