,
(陸軍工程大學 信息工程系,石家莊 050003)
北斗衛(wèi)星導航系統(tǒng)(BDS)簡稱北斗系統(tǒng),是中國自主研制的全球衛(wèi)星導航系統(tǒng)。整個系統(tǒng)由空間段、地面段和用戶段三部分組成,其中,空間段由5顆靜止軌道衛(wèi)星和27顆中地球軌道衛(wèi)星和3顆傾斜地球同步軌道衛(wèi)星組成。目前,北斗衛(wèi)星導航系統(tǒng)已覆蓋亞太地區(qū),民用定位精度優(yōu)于10 s,測速精度優(yōu)于0.2 m/s,授時精度優(yōu)于50 ns,預計將在2020年左右覆蓋全球[1]。
北斗系統(tǒng)在向地面發(fā)送信號時,采用擴頻通信的方式。它將信號擴展到很寬的頻帶上,如果信號的總能量不變,則頻譜的展寬必定導致各頻譜成分的幅度下降,即讓信號的功率譜密度降低,這使得信號在傳輸時完全淹沒在噪聲中,只有在接收端通過相相關處理將信號恢復成窄帶信號,才會得到有用的發(fā)端信息。
香農(nóng)指出,在高斯噪聲的干擾下,在有限平均功率的信道上,可實現(xiàn)有效和可靠通信的最佳信號是具有白噪聲統(tǒng)計特性的信號。但是人們至今無法實現(xiàn)對白噪聲的調(diào)制、檢測及控制,因此只能用類似于白噪聲特性的偽隨機噪聲碼來逼近它。
白噪聲是一種隨機過程,其瞬時值服從高斯分布,功率在很寬的頻帶內(nèi)都是均勻分布的,其自相關函數(shù)具有類似δ函數(shù)的形狀。
(1)
其物理概念是:x(t)與其延遲τ的x(t-τ)相比,如τ≠0,則Rxx(τ)為0;如τ=0,則Rxx(τ)為常數(shù)。
我們定義碼序列的自相關函數(shù)為:
(2)
式中,P為碼周期,xi+j為對xi移位j后的碼序列。而當碼序列的自相關函數(shù)具有:
m=0,±1,±2,…
(3)
形式,稱之為偽隨機碼,又稱為狹義偽隨機碼。
m序列是一種應用廣泛的狹義偽隨機序列,具有良好的自相關函數(shù),并且具有易于產(chǎn)生和復制的優(yōu)點。m序列是由多級移位寄存器通過線性反饋產(chǎn)生的最長的碼序列。在二進制移位寄存器中,若n為移位寄存器的級數(shù),則共有2n個狀態(tài),除去全0狀態(tài)外還有2n-1個狀態(tài),則它能產(chǎn)生的最長的碼序列為2n-1位。我們通常用特征多項式的形式來表示一個序列:
(4)
其中:x的冪次表示寄存器的級數(shù),對應的Ci取值為0或者1,表示該級寄存器是否參與反饋。特征多項式一旦確定,碼序列發(fā)生器的結構也隨之確定,其所生成的序列也就確定了。
圖1給出了5級m序列發(fā)生器的示意圖,其對應的特征多項式為G(X)=1+X2+X5。根據(jù)圖1,假設寄存器的一種初始狀態(tài),即可產(chǎn)生與特征多項式對應的碼序列,周期為P=2n-1=25-1=31。
圖1 n=5, Ci=100101, m序列發(fā)生器
我們假設初始狀態(tài)為00001,則該序列發(fā)生器各級隨著時鐘周期CP的的變化狀態(tài)如表1所示。
由表1可知,經(jīng)過31個時鐘脈沖之后,碼序列發(fā)生器又回到初始的狀態(tài),這期間輸出級的輸出序列為1000 0100 1011 0011 1110 0011 0111 0101。
m序列具有以下性質(zhì):
1)初始狀態(tài)的不同只是決定了輸出m序列的起始位置不同,而不同的反饋系數(shù)將產(chǎn)生不同的碼序列。
2)m序列和其移位后的序列逐位模二加,所得到的序列還是該m序列,只是起始位置不同。
3)m序列的自相關函數(shù)為:
(5)
假設碼序列周期為P,碼元寬度為Tc,那么自相關系數(shù)是以PTc為周期的函數(shù),在|τ|≤Tc范圍內(nèi),自相關系數(shù)為:
≤Tc
(6)
自相關系數(shù)隨τ/Tc的波形如圖2所示。由圖2可知,m序列的自相關系數(shù)在τ=0處出現(xiàn)尖峰,并以PTc時間為周期重復。尖峰底寬為2Tc,Tc越小,峰越尖銳,周期P越大,|-1/P|就越小,m序列的自相關性就越好[2-4]。
通過自相關系數(shù)波形圖可以看出,如果兩序列之間的時延不是長度周期的整數(shù)倍,那么相關系數(shù)非常小。北斗系統(tǒng)正是利用偽隨機碼的這一特點來捕獲和識別不同衛(wèi)星的信號。
表1 n=5, Ci=100101, m序列發(fā)生器狀態(tài)表
圖2 m序列的自相關系數(shù)
m序列的抗干擾性較強,有著優(yōu)良的相關特性且易產(chǎn)生。但不足的是m序列的數(shù)目少,不能滿足作為地址碼的需求。1967年,R.Gold提出的Gold序列很好地解決了這類需求。Gold序列是在m序列的基礎上得到的,但它的條數(shù)遠遠多于m序列,并且具有著良好的自相關和互相關特性,因此得到廣泛應用[5]。
在北斗系統(tǒng)運轉中,為實現(xiàn)衛(wèi)星對地面目標的定位,對應衛(wèi)星會向地面發(fā)送測距碼來測量和目標之間的距離。當使用偽隨機碼作為測距碼時,由于偽隨機碼具有著良好的自相關性,我們可以在接收端得到經(jīng)過傳播而產(chǎn)生平移的信號,通過調(diào)整平移量,與發(fā)送端原有的信號進行相關性計算,使兩者相關系數(shù)達到最大,通過平移量來推算信號在傳播路徑上耗費的時間,進而轉化為衛(wèi)星到測站的距離。
北斗系統(tǒng)是一種無線電導航定位系統(tǒng),衛(wèi)星導航信號包括B1,B2,B3三個頻點,每個頻點信號都是由I,Q兩個支路的測距碼和導航電文正交調(diào)制在載波上構成。其中B1和B2頻點的測距碼(簡稱為CB1I碼和碼)的碼速率為2.046 Mcps,碼長為2046[6-7]。我們將以CB1I碼和碼為例,對北斗系統(tǒng)的偽隨機碼進行分析和硬件實現(xiàn)。
CB1I碼和碼均由兩個序列G1和G2模二加,產(chǎn)生平衡Gold碼后截短1碼片產(chǎn)生。G1和G2序列分別由11級線性移位寄存器產(chǎn)生,因此均有2046個碼元。其生成多項式為:
G1(X)=1+X+X7+X8+X9+X10+X11
(7)
G2(X)=1+X+X2+X3+X4+X5+X8+X9+X11
(8)
G1序列的初始相位為:01010101010,G2序列的初始相位為:01010101010。CB1I碼和碼發(fā)生器如圖3所示。
圖3 GB1I碼和CB2I碼發(fā)生器示意圖
G1序列采用寄存器的末級輸出,G2序列采用寄存器其中兩個抽頭的模二加進行輸出。通過對產(chǎn)生G2序列的移位寄存器不同抽頭的模二加可以實現(xiàn)G2序列相位的不同偏移,與G1序列模二加后可產(chǎn)生不同衛(wèi)星的測距碼。本次仿真以圖1為例,G2序列的生成采用第6級和第11級進行模二加[8-9]。
本次仿真采用Altera公司的Cyclone Ⅲ 代的系列芯片EP3C16Q240C8N,在QuartusⅡ環(huán)境采用Verilog HDL語言進行硬件描述[10]。定義11位寄存器用來描述11級移位寄存器各級的狀態(tài),將需要輸出的抽頭連接至模二加模塊。繼而生成G1序列和G2序列,最終將兩序列連接至模二加模塊生成目的CB1I碼和碼。Verilog HDL源程序如下:
module BDCODE(clk,Cb);
input clk;
output Cb; //聲明輸出的CB1I碼和碼
//11位寄存器表示11級移位寄存器的狀態(tài),設置初始狀態(tài)
reg[1:11] q1=11'b01010101010;
reg[1:11] q2=11'b01010101010;
reg g1,g2,Cb; //聲明G1序列,G2序列,CB1I碼和碼寄存器
//G1序列的生成
always@(posedge clk)
begin
q1[1]<=q1[1] ^ q1[7] ^ q1[8] ^ q1[9] ^ q1[10] ^ q1[11];
q1[2:11]<=q1[1:10];
g1<=q1[11];
end
//G2序列的生成
always@(posedge clk)
begin
q2[1]<=q2[1] ^ q2[2] ^ q2[3] ^ q2[4] ^ q2[5] ^ q2[8] ^ q2[9] ^ q2[11];
q2[2:11]<=q2[1:10];
g2<=q2[6] ^ q2[11];
end
//碼和碼的生成
always@(posedge clk)
begin
Cb<= g1^ g2;
end
endmodule
編譯并綜合工程后,通過QuartusⅡ自帶的RTL Viewer工具就可以看到綜合后的原理圖,如圖4所示。
圖4 綜合后RTL Viewer生成的原理圖
分配好輸出引腳后下載至EP3C16Q2440C8N芯片實現(xiàn)北斗系統(tǒng) 碼和 碼的硬件生成器。本文采用ModelSim進行仿真,生成的 碼和 碼仿真結果如圖5所示。
圖5 碼生成器仿真結果
配置輸入與輸出引腳,將核心板的50 MHz時鐘信號作為生成碼電路的輸入時鐘clk,編譯工程并下載至EP3C16Q240C8N核心板上,將生成的CB1I碼和碼輸出至示波器,生成信號如圖6所示。
圖6 碼生成器實驗輸出結果
可以看到,生成的CB1I碼和碼波形由于過沖和震蕩而失真,但是作為二值的數(shù)字信號,這并不影響其值的判定。
演化硬件技術(Evolvable Hardware,EHW)是一種以仿生方式建立代償機制的技術,其基本思想是基于進化算法,對集成電路芯片中可重配置的邏輯單元進行重配和組合,使得系統(tǒng)在執(zhí)行某項特殊任務時,其體系結構、連接方式以及局部功能會根據(jù)環(huán)境的變化進行自動演化從而實現(xiàn)動態(tài)調(diào)整。在現(xiàn)代戰(zhàn)爭中,武器裝備面對著十分復雜的電磁環(huán)境,演化硬件技術可以使裝備在復雜環(huán)境下實現(xiàn)“自適應、自診斷、自修復”,從更深層次上為武器裝備防護提供了一種十分高效的解決方案[11]。
在實現(xiàn)演化硬件時,可采用“可編程片上系統(tǒng)(System On a Programmable-Chip,SOPC)+ 虛擬可重構(Virtual reconfigurable circuits,VRC)技術”的設計方案?;赩RC技術的實現(xiàn)方法,其基本思想是通過硬件描述語言產(chǎn)生一個虛擬配置位流層,實現(xiàn)實際FPGA器件與虛擬電路結構的映射關系。這種方法較易開展,擁有良好的靈活性和通用性。SOPC采用可編程邏輯技術將整個系統(tǒng)集成到一個芯片上,同時具有以下優(yōu)點:它具有片上系統(tǒng)的特點,即由單個芯片完成整個系統(tǒng)的主要邏輯功能,又是可編程系統(tǒng),同時具備在軟件和硬件上的在線編程能力,還可以對應用程序進行重復修改,具有很好的設計靈活性。NiosⅡ就是一種較為優(yōu)秀的SOPC產(chǎn)品系列。另外,采用“SOPC+VRC”的設計方案還具有演化時間短,可獨立運行的優(yōu)點,且可以脫離PC機實現(xiàn)在片演化[12-15]。
本文設計了一種北斗偽隨機碼生成器的演化電路,整個演化系統(tǒng)由Nios II軟核和針對目標電路定制的VRC陣列構成。如圖7所示,Nios II軟核運行演化算法,生成染色體位串;與VRC陣列相互通信,將位串下載至VRC陣列生成具體電路,并接收VRC陣列的輸出結果進行適應度評估。該演化電路相比于傳統(tǒng)的冗余備份方式,具有自組織且冗余利用率高的特點。
圖7 系統(tǒng)框架
可編程單元(Programable Element,PE)是VRC陣列的基本元素,其內(nèi)部結構如圖8所示,包括一個多路信號選擇器和一個D觸發(fā)器。4位長的控制信號D_sel(3..0)用來控制Data_in(10..0)這11個數(shù)據(jù)的選擇,將選擇結果送至D觸發(fā)器,經(jīng)過一個時鐘沿將結果送至D_out。將其封裝成整體的元件如圖9所示。
圖8 PE單元的內(nèi)部結構
圖9 封裝后的PE單元
圖10 首尾確定的VRC陣列結構
在構建首尾確定的VRC陣列過程中,我們將12個PE單元分為2種:首尾級PE和中間PE。這兩種PE單元的區(qū)別僅僅在于送入多路信號選擇器的信號數(shù)量不同。如圖10所示,首級PE負責接收置初始相位信號和異或器的負反饋;尾級PE接收中間PE的輸入,并選擇其中的一個將結果輸出。中間PE共有10個,可接收首級PE和其他中間PE的輸入并選擇其中一個進行輸出。每個PE單元的輸出都會送往選擇異或模塊,在12位編碼的控制下實現(xiàn)特定PE單元的異或,并將異或結果送給首級PE實現(xiàn)反饋。由于每個PE單元和其他PE單元之間都是有可能互通的,因此這是一個網(wǎng)狀的VRC陣列。通過演化算法控制這12個PE單元的內(nèi)部結構和連接關系,最終生成目標電路。
Nios II中運行演化算法,將演化結果以二進制編碼的形式送至VRC陣列以生成具體電路。其中,首級PE不需要選擇信號因此不需要編碼。10個中間PE均需要4bit編碼來選擇10個輸入信號的哪一位,尾級PE需要4bit編碼來選擇11個輸入信號的哪一位。還需要12bit編碼來控制選擇異或器的12個輸入開關。因此共需要4bit*10+4bit+12bit=56bit的編碼來控制整個VRC陣列的演化。
為了應對復雜太空環(huán)境所造成的元件損壞,目前較為普遍的備份方式是將整個電路進行整體備份,當工作電路中的某元件發(fā)生損壞,直接啟用備份電路,這種方法所需要的冗余量很大。而本文設計的演化電路,當其中一個PE單元發(fā)生損壞時,由于有著冗余的存在,其余的PE單元將在演化算法的組織下生成同樣功能的電路,對于冗余的利用率更高。
伴隨著空間技術的廣泛應用,惡劣的太空環(huán)境已經(jīng)成為空間設施正常工作所要面對的第一道難關[16]。強烈的電磁輻射會導致電路元件的電平反轉甚至設施的損壞。以可編程邏輯器件來實現(xiàn)碼生成器電路,并提出了一種演化硬件實現(xiàn)碼生成電路的方法,有助于對空間中北斗系統(tǒng)偽隨機碼生成器的抗干擾能力和自修復能力的研究。
參考文獻:
[1] 中國衛(wèi)星導航系統(tǒng)管理辦公室. 北斗衛(wèi)星導航系統(tǒng)空間信號接口控制文件公開服務信號[OL/EB](2016-11-7) [2017-7-15]. http://www.beidou.gov.cn/attach/2016/11/07/13411.pdf.
[2] 暴 宇, 李新民.擴頻通信技術及應用[M].第二版.西安: 西安電子科技大學出版社, 2011.
[3] Chen Z, Tang T H. Coding technology in Galileosystembased on chaotic spreading spectrum CDMA[J]. Information & Electronic Engineering, 2010,8(2):25-31.
[4] Lee J H, Shim D S. Fast acquisition of GPS L5 PRN an nh code using L1 signal for software receivers[J]. International Journal of Control Automation & Systems, 2016(2):25-31.
[5] Diesposti R S.Global position system(GPS) user receiver and geometric surface processing for all-in-view coherent GPS signal PRN codes acquisition and navi-gation solution:US,US 7688261 B2[P].2010.http://www.freepatentsonline.com/7688261.html.
[6] 劉天昱. 北斗衛(wèi)星導航系統(tǒng)B1頻段信號分析研究[D]. 上海:上海交通大學, 2013.
[7] 梁銀龍. 北斗衛(wèi)星系統(tǒng)中偽碼捕獲技術的研究[D]. 合肥:安徽大學, 2016.
[8] 惠 楠,黃海生,李 鑫. 一種北斗二號測距碼生成器的設計[J].西安郵電大學學報, 2012,17(3):38-40.
[9] 中國衛(wèi)星導航定位協(xié)會.衛(wèi)星導航定位與北斗系統(tǒng)應用[M]. 北京: 測繪出版社, 2015.
[10] 蘇 揚,錢 皓. 基于FPGA的跳頻通信系統(tǒng)開發(fā)[J].計算機測量與控制,2016,24(10).
[11] 陳利光. 適合于硬件進化的FPGA 平臺設計實現(xiàn)[D]. 上海:復旦大學, 2009.
[12] 朱繼祥,李元香,夏學文,等. 基于演化硬件的在線自適應系統(tǒng)[J]. 計算機科學, 2009, 36(7): 267-269.
[13] Stoica A. Evolvable Hardware: From On-Chip Circuit Synthesis to Evolvable Space Systems[A].IEEE International Symposium on Multiple-Valued Logic[C]. IEEE Computer Society, 2000:161.
[14] Salvador R, Otero A, Mora J, et al. Self-Reconfigurable Evolvable Hardware System for Adaptive Image Processing[J]. IEEE Transactions on Computers, 2013, 62(8):1481-1493.
[15] Rajaram U, Perinbam R P. EHW Architecture for Design of FIR Filters for Adaptive Noise Cancellation[J]. International Journal of Computer Science & Network Security, 2009(1):41-48.
[16] 李鶴峰,黨亞民,秘金鐘,等. 北斗衛(wèi)星導航系統(tǒng)的發(fā)展、優(yōu)勢及建議[J]. 導航定位學報, 2013,1(2):49-54.