摘 要: 考慮到超寬帶無線通信系統在高精度定位中需要極低的誤碼率,而實際通信中比特差錯經常成串發生,為此在MB?OFDM?UWB通信中采用一種交織技術將連續誤碼分散成非連續誤碼,這樣信道的突發錯誤在時間上得以擴散,使得此類誤碼大為降低,在接收端利用解交織器完成反交織。以上方案利用FPGA編程實現,并下載到目標板中,使用ChipScope在線測試和驗證設計的正確性。
關鍵詞: 交織技術; 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技術具有信道寬度高和誤碼率低而使它具有很強的吸引力,適合高精度無線定位等應用領域。在UWB技術的應用中,采用何種編碼方法是高質量通信的關鍵之一,數字通信信道中噪聲干擾的影響往往是前后相關的,誤碼往往是成串出現的,也就是說發生的錯誤有很強的相關性,當發生一個錯誤時,往往波及后面的很多數據,導致一片數據都發生錯誤,此類錯誤稱為突發差錯。用一般的糾正隨機獨立差錯的信道編碼來糾正突發差錯是沒有什么效果的,為了使糾錯碼能抵抗這些突發錯誤,實際應用中糾錯編碼往往要結合數據交織技術,在發送端加上數據交織器[1]。
交織實質是為了在時域或頻域或者同時在時域、頻域上分布傳輸的信息比特,使得信道的突發錯誤在時間上得以擴散,使得譯碼器可以將它們當做隨機錯誤來處理。經常使用的交織器分兩種,一種是分組交織器、另一種是卷積交織器。解交織是在接收端實現與交織相反的過程, 最終實現對原始碼元信息的恢復。
1 交織和解交織原理
1.1 分組交織器
分組交織是一種簡單的交織方式,其原理是在發送端將待交織的輸入數據分成[m]個碼組,每個碼組由[n]段數據組成,這樣便構成一個[n×m]的交織矩陣,其中,[m]為交織深度,[n]為交織約束長度或寬度。交織存儲器實際上為一行列交織矩陣,它按列寫入數據信息,然后按行讀出,或者相反。可見利用RAM就可實現分組交織器。例如數據輸入[x=(x11x12x13x21x22x23x31x32x33)]按行寫入一個[3×3]的RAM中,得到:
[A=x11x12x13x21x22x23x31x32x33]
然后按列讀出,這時:[x=(x11x21x31x12x22x32x13x23x33)],即完成了數據的交織。
1.2 卷積交織器
卷積交織器是一種非常適合于使用連續比特流系統的交織方式。圖1所示為卷積交織器的基本結構,這種交織器將比特在左邊的轉換器中寫入,在右邊的轉換器中讀出。
卷積交織器的主要優點在于達到同樣的交織深度時,其所存儲的容量幾乎是分組交織器所存儲容量的一半,因此可以大大減少由交織而引起的延時。卷積交織器的反交織是通過對交織器沿其水平軸翻轉來實現的,操作過程與交織過程類似 [2] 。
圖1 卷積交織器
2 MB?OFDM?UWB中交織器及解交織的運用
2.1 MB?OFDM?UWB技術
UWB是一種無線載波通信技術,他不采用傳統的正弦,而是利用納秒級的非正弦波脈沖傳播技術,其所占的頻譜范圍很寬,因此可將UWB應用于定位系統。傳統的幾種定位技術如GPS定位、基于蜂窩網的無線定位等方法具有不同的局限性。因此基于UWB的定位技術具有傳統的定位技術無法比擬的優勢 [3] 。
MB?OFDM?UWB系統與傳統OFDM系統有很多相似之處,主要不同之處在于子載波的間隔和反快速傅里葉變換IFFT的長度上?;舅枷雽⒏咚俚臄祿鞔⑥D換成多路低速并行的數據流,利用[N]個相互正交的載波來發送這些并行的低速數據流。
在UWB定位系統的基帶發射系統主要由擾碼器、卷積編碼器、交織器、QPSK映射、IFFT等部分組成,接收機主要包括解調、解交織、解碼、解擾等過程。本文將重點探討交織與解交織技術在MB?OFDM?UWB無線通信系統中的應用 [4]。
2.2 分組交織及解交織應用于UWB定位系統
2.2.1 分組交織器設計
分組交織是針對一組比特進行的,該分組中的比特數量稱為交織深度,交織深度愈大,對突發錯誤的糾正能力就越強,然而由于交織在系統上會引起時延,而且時延的長短和交織深度成比例,因此交織深度通常取決于系統規定的所能容忍的最大延時。
在本系統中交織深度設置為一個MB?OFDM符號,標準規定了一個MB?OFDM符號包含200個編碼比特,所以交織深度為200,硬件上采用一塊片上雙口RAM作為交織器,系統采用亂序寫入數據,順序讀出數據來實現交織處理,即按照交織后的地址寫入到RAM里,而后再依次讀出 [5]。
如何產生RAM的寫地址是整個設計的關鍵,對于深度為200的RAM模塊,把它看作是[25×8]的矩陣:
[x0x2...x7x8x10...x15............x192x193...x199]
對比輸入比特流的同步數據標簽INDEX,進行相應的運算,從而得到寫地址。
[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運算中的余數和商分別等于INDEX的低3位和高4位。這樣可以節省大量的乘法器[5]。
因為接收到的比特順序與信息源發送的比特順序不相同,顯然在讀出的過程中是不允許新的數據寫入的,這樣在交織的過程中必然會產生等待,無法對數據進行連續的處理。本文采用乒乓結構來解決這一問題,即將RAM的存儲空間擴展一倍,使得存入數據和讀出數據分別在前一半和后一半的存儲空間同時進行,這樣就不會因為前一個MB?OFDM符號元沒有處理完成,而使后一個符號元等待。如圖2所示。
圖2 乒乓結構
2.2.2 解交織器設計
鑒于前面交織模塊原理,解交織模塊需要進行二級處理。第一級交織處理為:每24 b為一個單元,前12個順序保持不變,后12個每相鄰兩位交換位置。硬件上可以用一個計數器判斷其是前12 b還是后12 b。其實現結構如圖3所示。
第二級交織是標準塊交織的逆過程,交織深度為[N]=192,即把數據按列寫入12×16的矩陣,按行讀取。可采取與第一級交織類似的結構,使用一塊片上雙口RAM作為核心器件,按寫地址亂序,讀地址順序的方式。本模塊的輸入、輸出是4位,而處理過程是對位進行的。故要進行串并處理。第二級交織的實現結構如圖4所示。
圖3 第一級解交織結構圖
圖4 第二級解交織結構框圖
3 仿真波形和FPGA實現
3.1 交織器仿真波形及實現
文中交織模塊的輸入數據來源于上一級信道編碼的輸出信號,根據線性交織原理對輸入數據進行交織。文中數據由一個Signal符號和多個Data符號組成。Signal和Data符號的數據要采用不同的交織方式完成。Signal符號其作用是保證相鄰的編碼比特不被映射到不相鄰的子載波上,硬件上采用一雙口RAM完成。Data符號的整個交織處理過程分為兩級,第一級為標準的分組交織器,第二級使用一塊24 b雙口分布式存儲器作為第二級的存儲單元。
在交織模塊中,使用雙口塊RAM對數據進行分組交織,在硬件實現上,本文使用Xilinx公司提供的IP核 Dual Port Block Memory 5.0來實現雙口塊RAM功能,模塊框圖如圖5所示。
圖5 Dual Port Block Memory模塊框圖
Dual Port Block Memory 5.0 IP核具有兩套完全獨立的數據線、地址線和讀寫控制線,并允許兩個系統同時對其進行隨機性的訪問。根據使用要求,可以分別設置RAM的A口為只寫模式,B口為只讀模式,通過控制讀地址和寫地址,從而達到分組交織的目的。相應的代碼如下:
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所示結果。
圖7 交織模塊仿真結果
使用Chipscope添加觀察信號采樣時鐘、觸發信號和待觀察信號,重新綜合、布局布線生成bit文件,下載到目標板后用ChipScope進行在線測試,得到觀測結果如圖8所示。通過仿真結果和在線測試結果的對比,可以驗證交織模塊設計的正確性。
圖8 交織模塊在線測試結果
3.2 解交織器仿真波形及實現
解交織模塊位于解調模塊和解碼模塊之前,外部接口如圖9所示。當數據到達時,由計數器index判斷是保持順序不變輸出,還是每相鄰兩位交換位置后輸出,從而完成第一級解交織處理;接著通過并串轉換處理,把并行4 b數據轉換成1 b串行輸出;然后通過RAM寫地址亂序、讀地址順序的方法完成標準塊交織;最后通過串并轉換,再次轉換成4 b輸出。第一級解交織在數據分組到達時即可進行解交織處理,而第二級解交織是一個OFDM符號長度的塊交織,需接收一個symbol數據才能進行解交織處理,外加輸入輸出緩存等延遲,因此第二級解交織的延遲較大。
圖9 解交織模塊外部接口
其相應的解交織模塊代碼如下:
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所示結果。
圖10 解交織模塊仿真結果
將解交織模塊的文件下載到目標板后用ChipScope進行在線測試。通過仿真結果和在線測試結果的對比,可以驗證設計的正確性。其觀測結果如圖11所示。
圖11 解交織模塊在線測試結果
4 結 語
本文中交織和解交織模塊的設計,屬于MB?OFDM?UWB定位系統的一部分,其數據流是來自于上一級模塊。通過Modelsim仿真和下載到ChipScope中進行在線測試進行對比可以看出其設計的正確性。 但對于多徑環境下的信號傳輸,當發射機與接收機之間有移動時,交織會起到抗多徑的效果。隨著移動速度的提高,雖然通信的質量下降,但同時交織作用在增加,對系統的差錯性能的貢獻就越大。當交織深度越大,離散度就越大,抗突發差錯能力就越強。但交織處理的時間也就越長,必須把處理的時間保持在允許的時延之內。同時要考慮到接收機的同步問題。本文僅討論交織和解交織模塊,所以在此不討論接收機同步問題。
參考文獻
[1] 畢成余,趙力.交織在信道編碼中的應用[J].信息技術與信息化,2005(2):36?38.
[2] 徐元欣,王匡,仇佩亮.實現卷積交織的幾種實用方法[J].電路與系統學報,2001,6(1):82?85.
[3] 史治國,洪少華,陳抗生.基于Xilinx FPGA的OFDM通信系統基帶設計[M].杭州:浙江大學出版社,2009.
[4] 郎俊杰,喬強.OFDM調制解調技術[J].無線電工程,2004,34(4):54?55.
[5] 雷偉,李開航.MB?OFDM?U發射機基帶數據處理系統的研究與實現[D].廈門:廈門大學,2011.
[6] 朱華,王玟.超寬帶室內定位系統的FPGA設計與實現[D].桂林:桂林電子科技大學,2008.
[7] 張新躍,沈樹群.OFDM技術在UWB系統中的應用前景展望[J].數據通信,2004,6(4):1?4.