摘 要: 考慮到超寬帶無線通信系統(tǒng)在高精度定位中需要極低的誤碼率,而實際通信中比特差錯經(jīng)常成串發(fā)生,為此在MB?OFDM?UWB通信中采用一種交織技術(shù)將連續(xù)誤碼分散成非連續(xù)誤碼,這樣信道的突發(fā)錯誤在時間上得以擴散,使得此類誤碼大為降低,在接收端利用解交織器完成反交織。以上方案利用FPGA編程實現(xiàn),并下載到目標板中,使用ChipScope在線測試和驗證設(shè)計的正確性。
關(guān)鍵詞: 交織技術(shù); FPGA; UWB; ChipScope
中圖分類號: TN925?34 文獻標識碼: A 文章編號: 1004?373X(2013)13?0056?04
Design of interleaver and deinterleaver in positioning system based on MB?OFDM?UWB
XU Tao, LI Kai?hang, ZHUANG Jin?qing, XUE Jia?mei
(Department of physics, Xiamen University, Xiamen 361005, China)
Abstract: Taking account of the UWB wireless communication systems′ requirement of low bit error rate, but in actual communication the bit error often occurs in clusters, the interleaving technique is adopted in MB?OFDM?UWB communication to transform the continuous error into discontinuous error. In this way, the burst error in the channel can be spread in the time domain, so the type of error is greatly reduced. The inverse interlacing is achieved with a deinterleaver in the receiver. The above scheme can be realized by FPGA programming, which can be downloaded to the target FPGA board to perform online test with ChipScope and to verify the correctness of the design.
Keywords: interleaving technology; FPGA; UWB; ChipScope
0 引 言
超寬帶UWB無線通信由于抗干擾能力強和保密性好而受到廣泛重視,特別是其中MB?OFDM?UWB技術(shù)具有信道寬度高和誤碼率低而使它具有很強的吸引力,適合高精度無線定位等應(yīng)用領(lǐng)域。在UWB技術(shù)的應(yīng)用中,采用何種編碼方法是高質(zhì)量通信的關(guān)鍵之一,數(shù)字通信信道中噪聲干擾的影響往往是前后相關(guān)的,誤碼往往是成串出現(xiàn)的,也就是說發(fā)生的錯誤有很強的相關(guān)性,當(dāng)發(fā)生一個錯誤時,往往波及后面的很多數(shù)據(jù),導(dǎo)致一片數(shù)據(jù)都發(fā)生錯誤,此類錯誤稱為突發(fā)差錯。用一般的糾正隨機獨立差錯的信道編碼來糾正突發(fā)差錯是沒有什么效果的,為了使糾錯碼能抵抗這些突發(fā)錯誤,實際應(yīng)用中糾錯編碼往往要結(jié)合數(shù)據(jù)交織技術(shù),在發(fā)送端加上數(shù)據(jù)交織器[1]。
交織實質(zhì)是為了在時域或頻域或者同時在時域、頻域上分布傳輸?shù)男畔⒈忍兀沟眯诺赖耐话l(fā)錯誤在時間上得以擴散,使得譯碼器可以將它們當(dāng)做隨機錯誤來處理。經(jīng)常使用的交織器分兩種,一種是分組交織器、另一種是卷積交織器。解交織是在接收端實現(xiàn)與交織相反的過程, 最終實現(xiàn)對原始碼元信息的恢復(fù)。
1 交織和解交織原理
1.1 分組交織器
分組交織是一種簡單的交織方式,其原理是在發(fā)送端將待交織的輸入數(shù)據(jù)分成[m]個碼組,每個碼組由[n]段數(shù)據(jù)組成,這樣便構(gòu)成一個[n×m]的交織矩陣,其中,[m]為交織深度,[n]為交織約束長度或?qū)挾取=豢棿鎯ζ鲗嶋H上為一行列交織矩陣,它按列寫入數(shù)據(jù)信息,然后按行讀出,或者相反。可見利用RAM就可實現(xiàn)分組交織器。例如數(shù)據(jù)輸入[x=(x11x12x13x21x22x23x31x32x33)]按行寫入一個[3×3]的RAM中,得到:
[A=x11x12x13x21x22x23x31x32x33]
然后按列讀出,這時:[x=(x11x21x31x12x22x32x13x23x33)],即完成了數(shù)據(jù)的交織。
1.2 卷積交織器
卷積交織器是一種非常適合于使用連續(xù)比特流系統(tǒng)的交織方式。圖1所示為卷積交織器的基本結(jié)構(gòu),這種交織器將比特在左邊的轉(zhuǎn)換器中寫入,在右邊的轉(zhuǎn)換器中讀出。
卷積交織器的主要優(yōu)點在于達到同樣的交織深度時,其所存儲的容量幾乎是分組交織器所存儲容量的一半,因此可以大大減少由交織而引起的延時。卷積交織器的反交織是通過對交織器沿其水平軸翻轉(zhuǎn)來實現(xiàn)的,操作過程與交織過程類似 [2] 。
圖1 卷積交織器
2 MB?OFDM?UWB中交織器及解交織的運用
2.1 MB?OFDM?UWB技術(shù)
UWB是一種無線載波通信技術(shù),他不采用傳統(tǒng)的正弦,而是利用納秒級的非正弦波脈沖傳播技術(shù),其所占的頻譜范圍很寬,因此可將UWB應(yīng)用于定位系統(tǒng)。傳統(tǒng)的幾種定位技術(shù)如GPS定位、基于蜂窩網(wǎng)的無線定位等方法具有不同的局限性。因此基于UWB的定位技術(shù)具有傳統(tǒng)的定位技術(shù)無法比擬的優(yōu)勢 [3] 。
MB?OFDM?UWB系統(tǒng)與傳統(tǒng)OFDM系統(tǒng)有很多相似之處,主要不同之處在于子載波的間隔和反快速傅里葉變換IFFT的長度上。基本思想將高速的數(shù)據(jù)流串并轉(zhuǎn)換成多路低速并行的數(shù)據(jù)流,利用[N]個相互正交的載波來發(fā)送這些并行的低速數(shù)據(jù)流。
在UWB定位系統(tǒng)的基帶發(fā)射系統(tǒng)主要由擾碼器、卷積編碼器、交織器、QPSK映射、IFFT等部分組成,接收機主要包括解調(diào)、解交織、解碼、解擾等過程。本文將重點探討交織與解交織技術(shù)在MB?OFDM?UWB無線通信系統(tǒng)中的應(yīng)用 [4]。
2.2 分組交織及解交織應(yīng)用于UWB定位系統(tǒng)
2.2.1 分組交織器設(shè)計
分組交織是針對一組比特進行的,該分組中的比特數(shù)量稱為交織深度,交織深度愈大,對突發(fā)錯誤的糾正能力就越強,然而由于交織在系統(tǒng)上會引起時延,而且時延的長短和交織深度成比例,因此交織深度通常取決于系統(tǒng)規(guī)定的所能容忍的最大延時。
在本系統(tǒng)中交織深度設(shè)置為一個MB?OFDM符號,標準規(guī)定了一個MB?OFDM符號包含200個編碼比特,所以交織深度為200,硬件上采用一塊片上雙口RAM作為交織器,系統(tǒng)采用亂序?qū)懭霐?shù)據(jù),順序讀出數(shù)據(jù)來實現(xiàn)交織處理,即按照交織后的地址寫入到RAM里,而后再依次讀出 [5]。
如何產(chǎn)生RAM的寫地址是整個設(shè)計的關(guān)鍵,對于深度為200的RAM模塊,把它看作是[25×8]的矩陣:
[x0x2...x7x8x10...x15............x192x193...x199]
對比輸入比特流的同步數(shù)據(jù)標簽INDEX,進行相應(yīng)的運算,從而得到寫地址。
[WA_1=(200/8)(INDEX mod 8)+floor(INDEX/8) =25×INDEX[2:0]+INDEX[7:3] =(INDEX[2:0]<<3)+(INDEX[2:0]<<4)+ INDEX[2:0]+INDEX[7:3]]
其中乘法運算可以用“移位相加”來代替,除8運算中的余數(shù)和商分別等于INDEX的低3位和高4位。這樣可以節(jié)省大量的乘法器[5]。
因為接收到的比特順序與信息源發(fā)送的比特順序不相同,顯然在讀出的過程中是不允許新的數(shù)據(jù)寫入的,這樣在交織的過程中必然會產(chǎn)生等待,無法對數(shù)據(jù)進行連續(xù)的處理。本文采用乒乓結(jié)構(gòu)來解決這一問題,即將RAM的存儲空間擴展一倍,使得存入數(shù)據(jù)和讀出數(shù)據(jù)分別在前一半和后一半的存儲空間同時進行,這樣就不會因為前一個MB?OFDM符號元沒有處理完成,而使后一個符號元等待。如圖2所示。
圖2 乒乓結(jié)構(gòu)
2.2.2 解交織器設(shè)計
鑒于前面交織模塊原理,解交織模塊需要進行二級處理。第一級交織處理為:每24 b為一個單元,前12個順序保持不變,后12個每相鄰兩位交換位置。硬件上可以用一個計數(shù)器判斷其是前12 b還是后12 b。其實現(xiàn)結(jié)構(gòu)如圖3所示。
第二級交織是標準塊交織的逆過程,交織深度為[N]=192,即把數(shù)據(jù)按列寫入12×16的矩陣,按行讀取。可采取與第一級交織類似的結(jié)構(gòu),使用一塊片上雙口RAM作為核心器件,按寫地址亂序,讀地址順序的方式。本模塊的輸入、輸出是4位,而處理過程是對位進行的。故要進行串并處理。第二級交織的實現(xiàn)結(jié)構(gòu)如圖4所示。
圖3 第一級解交織結(jié)構(gòu)圖
圖4 第二級解交織結(jié)構(gòu)框圖
3 仿真波形和FPGA實現(xiàn)
3.1 交織器仿真波形及實現(xiàn)
文中交織模塊的輸入數(shù)據(jù)來源于上一級信道編碼的輸出信號,根據(jù)線性交織原理對輸入數(shù)據(jù)進行交織。文中數(shù)據(jù)由一個Signal符號和多個Data符號組成。Signal和Data符號的數(shù)據(jù)要采用不同的交織方式完成。Signal符號其作用是保證相鄰的編碼比特不被映射到不相鄰的子載波上,硬件上采用一雙口RAM完成。Data符號的整個交織處理過程分為兩級,第一級為標準的分組交織器,第二級使用一塊24 b雙口分布式存儲器作為第二級的存儲單元。
在交織模塊中,使用雙口塊RAM對數(shù)據(jù)進行分組交織,在硬件實現(xiàn)上,本文使用Xilinx公司提供的IP核 Dual Port Block Memory 5.0來實現(xiàn)雙口塊RAM功能,模塊框圖如圖5所示。
圖5 Dual Port Block Memory模塊框圖
Dual Port Block Memory 5.0 IP核具有兩套完全獨立的數(shù)據(jù)線、地址線和讀寫控制線,并允許兩個系統(tǒng)同時對其進行隨機性的訪問。根據(jù)使用要求,可以分別設(shè)置RAM的A口為只寫模式,B口為只讀模式,通過控制讀地址和寫地址,從而達到分組交織的目的。相應(yīng)的代碼如下:
if (ND)
begin
if (!WAC_1)
WA_1<=(INDEX[2:0]<<3)+(INDEX[2:0]<<4)+
INDEX[2:0]+INDEX[7:3];
else
WA_1<=(INDEX[2:0]<<3)+(INDEX[2:0]<<4)+INDEX[2:0]+INDEX[7:3]+200;
WEN_1<=1 ′b1;
DIN_1<=DIN;
if (INDEX==199)
begin
WAC_1<=~WAC_1;
REN_1<=1′b1;
end
end
交織模塊外部接口如圖6所示。
圖6 交織模塊外部接口
對工程文件進行綜合、布局布線后仿真,得到如圖7所示結(jié)果。
圖7 交織模塊仿真結(jié)果
使用Chipscope添加觀察信號采樣時鐘、觸發(fā)信號和待觀察信號,重新綜合、布局布線生成bit文件,下載到目標板后用ChipScope進行在線測試,得到觀測結(jié)果如圖8所示。通過仿真結(jié)果和在線測試結(jié)果的對比,可以驗證交織模塊設(shè)計的正確性。
圖8 交織模塊在線測試結(jié)果
3.2 解交織器仿真波形及實現(xiàn)
解交織模塊位于解調(diào)模塊和解碼模塊之前,外部接口如圖9所示。當(dāng)數(shù)據(jù)到達時,由計數(shù)器index判斷是保持順序不變輸出,還是每相鄰兩位交換位置后輸出,從而完成第一級解交織處理;接著通過并串轉(zhuǎn)換處理,把并行4 b數(shù)據(jù)轉(zhuǎn)換成1 b串行輸出;然后通過RAM寫地址亂序、讀地址順序的方法完成標準塊交織;最后通過串并轉(zhuǎn)換,再次轉(zhuǎn)換成4 b輸出。第一級解交織在數(shù)據(jù)分組到達時即可進行解交織處理,而第二級解交織是一個OFDM符號長度的塊交織,需接收一個symbol數(shù)據(jù)才能進行解交織處理,外加輸入輸出緩存等延遲,因此第二級解交織的延遲較大。
圖9 解交織模塊外部接口
其相應(yīng)的解交織模塊代碼如下:
begin
if(index[2:0]<3)
begin
dataOut[3:0]<=data[3:0];
index[2:0]<=index[2:0]+1;
end
else
begin
dataOut[3:0]<={data[2],data[3],data[0],data[1]};
if(index[2:0]==3′b101)
begin
index[2:0]<=0;
end
else
begin
index[2:0]<=index[2:0]+1;
end
end
outEn<=1;
outSymCount<=SymCount;
end
對解交織模塊的工程文件進行綜合、布局布線后仿真,得到如圖10所示結(jié)果。
圖10 解交織模塊仿真結(jié)果
將解交織模塊的文件下載到目標板后用ChipScope進行在線測試。通過仿真結(jié)果和在線測試結(jié)果的對比,可以驗證設(shè)計的正確性。其觀測結(jié)果如圖11所示。
圖11 解交織模塊在線測試結(jié)果
4 結(jié) 語
本文中交織和解交織模塊的設(shè)計,屬于MB?OFDM?UWB定位系統(tǒng)的一部分,其數(shù)據(jù)流是來自于上一級模塊。通過Modelsim仿真和下載到ChipScope中進行在線測試進行對比可以看出其設(shè)計的正確性。 但對于多徑環(huán)境下的信號傳輸,當(dāng)發(fā)射機與接收機之間有移動時,交織會起到抗多徑的效果。隨著移動速度的提高,雖然通信的質(zhì)量下降,但同時交織作用在增加,對系統(tǒng)的差錯性能的貢獻就越大。當(dāng)交織深度越大,離散度就越大,抗突發(fā)差錯能力就越強。但交織處理的時間也就越長,必須把處理的時間保持在允許的時延之內(nèi)。同時要考慮到接收機的同步問題。本文僅討論交織和解交織模塊,所以在此不討論接收機同步問題。
參考文獻
[1] 畢成余,趙力.交織在信道編碼中的應(yīng)用[J].信息技術(shù)與信息化,2005(2):36?38.
[2] 徐元欣,王匡,仇佩亮.實現(xiàn)卷積交織的幾種實用方法[J].電路與系統(tǒng)學(xué)報,2001,6(1):82?85.
[3] 史治國,洪少華,陳抗生.基于Xilinx FPGA的OFDM通信系統(tǒng)基帶設(shè)計[M].杭州:浙江大學(xué)出版社,2009.
[4] 郎俊杰,喬強.OFDM調(diào)制解調(diào)技術(shù)[J].無線電工程,2004,34(4):54?55.
[5] 雷偉,李開航.MB?OFDM?U發(fā)射機基帶數(shù)據(jù)處理系統(tǒng)的研究與實現(xiàn)[D].廈門:廈門大學(xué),2011.
[6] 朱華,王玟.超寬帶室內(nèi)定位系統(tǒng)的FPGA設(shè)計與實現(xiàn)[D].桂林:桂林電子科技大學(xué),2008.
[7] 張新躍,沈樹群.OFDM技術(shù)在UWB系統(tǒng)中的應(yīng)用前景展望[J].數(shù)據(jù)通信,2004,6(4):1?4.