陳偉波,艾 倫,黃曉瑞,杜曉冬
導航衛(wèi)星有效載荷新型擴頻碼研究及實現(xiàn)*
陳偉波,艾 倫,黃曉瑞,杜曉冬
(北京遙測技術研究所 北京 100076)
針對導航衛(wèi)星中Gold擴頻碼存在的不足,衛(wèi)星導航系統(tǒng)的多個頻點在下一代系統(tǒng)建設中選用Weil碼作為擴頻碼。首先對Gold碼和Weil碼的特性進行仿真分析,仿真結果表明,Weil碼的自相關特性和互相關特性有明顯的優(yōu)勢。針對導航衛(wèi)星有效載荷需要提供長期穩(wěn)定可靠的導航服務且資源有限,對Weil碼的實現(xiàn)方式也有很高的要求,設計一種基于FPGA平臺的Weil碼實現(xiàn)方案,解決了導航衛(wèi)星有效載荷中Weil擴頻碼生成的資源和可靠性問題,已實際在軌連續(xù)運行超過一年沒有出現(xiàn)故障。
擴頻碼;Weil碼;相關性;可靠性
對基于CDMA(Code Division Multiple Access)的GNSS(Global Navigation Satellite System)系統(tǒng)而言,擴頻碼是其重要組成部分。GNSS信號的擴頻碼是一種偽隨機序列,需要有良好的自相關和互相關特性,以便接收機可以快速準確地與接收信號進行相關運算實現(xiàn)同步和測距。因此,選用相關特性良好的擴頻碼是信號設計的重要工作。目前,使用最多的擴頻碼是Gold碼。Gold碼序列是一種基于線性反饋移位寄存器序列生成的m序列[1],該序列在以GPS(Global Positioning System)L1 C/A碼為代表的信號中已經(jīng)得到了廣泛的應用。但是,隨著各個國家導航系統(tǒng)的建設以及GPS III計劃的實施,Gold碼序列難以滿足應用上的需求,需要設計新型擴頻碼。其中,Weil碼基于其良好的相關特性和靈活的可選序列長度,已經(jīng)在GPS L1C等信號中使用。
在導航衛(wèi)星有效載荷中,擴頻碼生成模塊是其中的核心模塊,其負責生成導航衛(wèi)星播發(fā)信號中的擴頻碼序列。Gold碼是基于移位寄存器生成的,其實現(xiàn)結構較為簡單,而鑒于Weil碼的數(shù)學表達式,其實現(xiàn)結構復雜,目前常用的實現(xiàn)方式需要使用大量的資源,并且實現(xiàn)方式的可靠性低,無法滿足導航衛(wèi)星連續(xù)穩(wěn)定可靠地播發(fā)導航信號的需求。同時,導航衛(wèi)星有效載荷資源有限,也無法滿足當前Weil碼實現(xiàn)方式的資源需求。因此,需要設計一種穩(wěn)定可靠且資源占用少的Weil碼實現(xiàn)方案,以滿足導航衛(wèi)星有效載荷的Weil碼生成需求。
如果級線性反饋移位寄存器產(chǎn)生的序列周期為2–1,則稱其為最大長度反饋移位寄存器序列,即m序列。反饋移位寄存器的抽頭系數(shù)由特征多項式?jīng)Q定,特征多項式可表示為
Gold碼序列是由兩個優(yōu)選的長度相同的m序列異或得到的,其具有良好的自相關和互相關特性。每改變兩個m序列的相位關系就會產(chǎn)生一個新的Gold序列,因此其可作為擴頻碼的數(shù)量相當可觀。Gold碼序列生成的通用結構如圖1所示。
圖1 Gold碼生成結構
通過圖1可以看出,Gold碼序列生成過程中共有四個可調量,分別是寄存器1和寄存器2的初相與寄存器1和寄存器2的反饋多項式系數(shù)。因此通過設置不同的反饋多項式和寄存器初相就可以區(qū)分不同衛(wèi)星。
Weil碼是由Legendre序列生成的。Legendre序列是一種有限長的偽隨機序列,它的長度為質數(shù)[2]。長度為的Legendre序列的定義為
Legendre序列具有很良好的偽隨機性和相關性[3]。但是對于固定的長度,只存在一個Legendre序列,因此不直接用作擴頻碼。
Weil碼是由兩個Legendre序列循環(huán)異或生成的,長度為的Weil碼序列定義為
式中,()是碼長為的Legendre序列,表示兩個Legendre序列之間的相位差。
在生成Weil碼序列后,通過循環(huán)截取的方式生成新的Weil碼序列作為擴頻碼序列使用[4],新生成的Weil碼序列為
式中,n表示擴頻碼序列長度,p為截取點,表示從Weil碼的第p位開始截取,取值為1到N。
圖2所示為Weil碼序列的生成結構,從圖中可以看出,其生成過程主要分為三步,首先生成Legendre序列;其次根據(jù)偏移值將偏移后的Legendre序列與未偏移的Legendre序列進行異或生成Weil碼序列;最后根據(jù)值對Weil碼序列進行循環(huán)截短生成最終的衛(wèi)星擴頻碼序列。綜上分析可以看出,不同衛(wèi)星的擴頻碼序列通過選取不同的和值來進行區(qū)分。
擴頻信號的接收依靠本地復現(xiàn)的擴頻碼序列與接收信號進行循環(huán)相關運算,因此對于指定長度的擴頻碼序列,具有更好的自相關和互相關特性可以使地面接收機快速準確地捕獲信號。Gold碼有較好的自相關和互相關特性,并且其通過對雙線性移位寄存器產(chǎn)生的m序列進行異或生成擴頻碼,生成方式簡單,易于采用硬件方案實現(xiàn),因此在各大衛(wèi)星導航系統(tǒng)中得到了廣泛的應用。由于受到導航系統(tǒng)衛(wèi)星上原子鐘頻率的限制,擴頻碼的碼長需為1023的整數(shù)倍。但是采用雙線性移位寄存器生成的Gold碼周期的長度固定為2–1,因此Gold碼周期與某些擴頻碼序列的碼長相比相差甚遠,需要采用截短或拼接的方式生成擴頻碼序列,如此則會損壞Gold碼序列的自相關和互相關特性[5]。另外,由于各大導航系統(tǒng)多數(shù)采用Gold碼作為擴頻碼方案,各系統(tǒng)間的擴頻碼容易受到互相關干擾,因此需要選用一種新的擴頻碼方案。
與Gold碼相比,Weil碼序列通過使用Legendre序列進行移位異或獲得,其長度和Legendre序列的長度相同,都為質數(shù)。對于不同長度的擴頻碼序列,都可以很容易地找到相近的Weil碼序列進行截短或增長來獲得,并且保持偽碼的相關性。
下面對Gold碼和Weil碼的相關特性進行仿真分析,選取碼長為10230的Gold碼和Weil碼序列各60組,代表60顆不同的衛(wèi)星,分別計算各個擴頻碼序列的最大自相關副峰值和不同擴頻碼序列的最大互相關結果,仿真結果如圖3所示。
在圖3中,橫軸和縱軸分別表示衛(wèi)星號,豎軸表示最大相關結果。若橫軸和縱軸對應的衛(wèi)星號不同,則豎軸表示兩顆衛(wèi)星擴頻碼的最大互相關結果;若橫軸和縱軸對應的衛(wèi)星號相同,則豎軸表示該衛(wèi)星擴頻碼的最大自相關副峰值。從仿真結果可以得出,所選的60組Gold碼序列的最大互相關結果為504,相對最大自相關結果衰減26.15dB,最大自相關副峰值為362,相對于最大自相關結果衰減29.02dB;而所選的60組Weil碼的最大互相關結果為444,相對最大自相關結果衰減27.25dB,最大自相關副峰值為282,相對最大自相關結果衰減31.19dB。
圖3 相關特性仿真結果
通過仿真結果可以看出,對于固定長度的擴頻碼序列,Weil碼的互相關特性和自相關特性相比Gold碼分別優(yōu)化1dB和2dB。因此在衛(wèi)星導航系統(tǒng)中,選用Weil碼作為擴頻碼序列使用,可以有效減少不同衛(wèi)星之間的互相關干擾,并且可以降低接收機在自相關副峰位置假鎖的概率。
鑒于Legendre函數(shù)的數(shù)學定義,其無法使用線性移位寄存器的方式直接生成。而利用基于歐拉準則的二次剩余判定則需運用大量的除法運算,如此會消耗巨大的硬件資源,因此使用FPGA難以實現(xiàn)。目前常采用的實現(xiàn)方式有兩種,一種方式是采用軟件生成所有衛(wèi)星對應的Weil碼序列存儲到ROM中,工作過程中針對不同的衛(wèi)星號到指定存儲空間中讀取相應的Weil碼序列。由于每顆衛(wèi)星對應的Weil碼序列不一樣,因此需要將所有衛(wèi)星的Weil碼都存儲下來,如此則需要占用大量的存儲空間;另一種方式是針對不同的衛(wèi)星號,首先使用CPU軟件計算產(chǎn)生所需衛(wèi)星對應的Weil碼序列,之后將生成的序列寫入到FPGA的RAM空間后使用。這種方法占用較少的FPGA存儲空間,但是需要DSP參與大量的計算工作。對于導航衛(wèi)星來說,其所處的空間環(huán)境十分惡劣,采用該方案會使系統(tǒng)的可靠性受很大的影響,而擴頻碼序列作為導航信號的核心單元,對可靠性要求極高,因此不適宜選取該方案作為導航衛(wèi)星上的Weil碼實現(xiàn)方式。
通過分析Weil碼的特性可以看出,同一頻點不同衛(wèi)星的Weil碼都使用相同的Legendre序列,不同衛(wèi)星對應的Weil碼序列只是通過不同的和值來進行區(qū)分。經(jīng)過對Weil碼生成過程的進一步研究可以將Weil碼的生成過程由三步簡化為兩步:首先生成Legendre序列,然后分別在–1和(+–1)mod兩個起始位置循環(huán)讀取Legendre序列后進行異或,讀取到要求的擴頻碼序列長度后再回到起始位置開始讀取,如此就可生成周期性的擴頻碼序列。
因此,可以通過以下方式來生成Weil碼:首先使用軟件仿真生成Legendre序列后存儲在一個塊RAM中,而將所有衛(wèi)星的Weil碼序列參數(shù)(–1和(+–1)mod)存儲在另外一個塊RAM中;然后在信號啟動前置入衛(wèi)星號作為地址,分別讀取其對應的兩組擴頻碼序列參數(shù)作為兩個計數(shù)器的初始值;最后在啟動信號后以碼時鐘驅動計數(shù)器進行計數(shù),并將計數(shù)器的輸出結果作為雙端口RAM的兩個輸入地址,對雙端口RAM的兩個輸出序列進行異或得到所需Weil碼序列。實現(xiàn)過程如圖4所示。
通過上述的實現(xiàn)方案進行設計有如下優(yōu)點:
①在Weil碼序列生成模塊中,僅使用兩個塊RAM分別存儲擴頻碼參數(shù)和Legendre序列,另外通過兩個計數(shù)器產(chǎn)生地址控制信號。在此基礎上通過輸入不同的衛(wèi)星號就可以產(chǎn)生對應的Weil碼序列,如此使用很少的資源就可以實現(xiàn)不同衛(wèi)星的Weil碼序列生成功能;
圖4 Weil碼在FPGA中實現(xiàn)框圖
圖5 Weil碼可靠性設計
② Weil碼序列的實現(xiàn)過程中沒有DSP等軟件參與工作,全部采用FPGA實現(xiàn),因此該模塊設計的獨立性很強,具有很高的可靠性和可移植性;
③ 在設計過程中增加了擴頻碼參數(shù)重構功能。導航衛(wèi)星在軌運行過程中如果需要使用原先所有衛(wèi)星對應的擴頻碼之外的Weil碼,只需要將相應的Weil碼對應的參數(shù)注入,就可以生成指定的Weil碼序列。
采用上節(jié)描述的實現(xiàn)方案生成Weil碼序列相比軟件實現(xiàn)方案在可靠性上有很大的提高,但是在空間環(huán)境中,F(xiàn)PGA還是容易受到單粒子的影響,因此還需要進行可靠性設計。對于星載FPGA軟件,一般采用三模冗余和配置刷新的方式進行可靠性防護?;赬ilinx FPGA的三模冗余設計可以使用XTMRTOOL,但是該工具并不包含塊RAM的三模冗余設計,并且配置刷新一般也不對塊RAM區(qū)進行刷新??紤]到導航衛(wèi)星的在軌運行時間長、所處空間環(huán)境惡劣,為保證衛(wèi)星在軌運行過程中連續(xù)可靠地生成擴頻碼序列,需要進行可靠性防護設計。設計框圖如圖5所示。
在圖5所示的可靠性設計中,對所有雙端口RAM都進行了三模冗余設計,可以有效提高導航衛(wèi)星在空間環(huán)境下運行的可靠性;并且在此基礎上對所有塊RAM內容都進行自刷新設計,避免了衛(wèi)星長期運行過程中由于單粒子事件累積造成的故障。因此,通過本文中所描述的可靠性設計,可以有效保證衛(wèi)星長期可靠連續(xù)地運行。
本文首先介紹了衛(wèi)星導航系統(tǒng)中常用的擴頻碼序列Gold碼和Weil碼,并仿真分析了兩種擴頻碼的自相關和互相關特性。仿真結果表明,與Gold碼相比,Weil碼有更好的相關特性,作為導航衛(wèi)星的擴頻碼有明顯的優(yōu)勢。然后針對導航衛(wèi)星有效載荷的空間應用環(huán)境需求及Weil碼的特性,設計了一種導航衛(wèi)星有效載荷上的Weil碼實現(xiàn)方案,解決了目前常用Weil碼實現(xiàn)方式資源使用多和可靠性低的問題,可以保證導航衛(wèi)星連續(xù)有效地在軌運行,目前該設計方案已在導航衛(wèi)星有效載荷上連續(xù)運行超過一年沒有出現(xiàn)故障。
[1] 張威, 張克, 徐熙宗. GPS信號C/A碼生成算法設計及其仿真實現(xiàn)[J]. 通信技術, 2008, 41(11): 216–218. ZHANG Wei, ZHANG Ke, XU Xizong. Simulation analysis of in GPS C/A code algorithm design[J]. Communication Technology, 2008, 41(11): 216–218.
[2] ZHANG Guohua, ZHOU Quan. Pseudo noise codes constructed by Legendre sequence[J]. Electronics Letters, 2001, (38)8: 376–377.
[3] SHANKAR S, CHOU C T, CHALAPALI K, et al. Spectrum agile radio: capacity and QoS implementations of dynamic spectrum assignment[C]. Global Tele-communications Conf, 2005: 2510–2516.
[4] RUSHANAN J J. The spreading and overlay codes for the L1C signal[J]. ION, 2007, 54(1): 43–51.
[5] 何成龍, 王垚. GPS L1C信號Weil碼相關性能分析[J]. 無線電通信技術, 2013, 39(1): 32–35. HE Chenglong, WANG Yao. Weil code correlation performance of GPS L1C signal[J]. Radio Communications Technology, 2013, 39(1): 32–35.
Research and implementation of a new kind of spreading code for navigation satellite payload
CHEN Weibo, AI Lun, HUANG Xiaorui, DU Xiaodong
(Beijing Research Institute of Telemetry, Beijing 100076, China)
Aiming at the defects of Gold spreading code on navigation satellite, several frequencies of satellite navigation system have chose Weil code as spreading code on next system built. This paper analyzes the character of Gold code and Weil code firstly, the simulation results demonstrate that the self-correlation and cross-correlation performance of Weil Code are better than Gold Code. Since navigation satellite payload needs to provide long-term stable and reliable navigation services with limited resources, there are high requirements for the implementation of Weil code, this paper designs a Weil code implement method based on the FPGA platform, the solution solves the problem of resource and reliability of the Weil code generation in the navigation satellite payload, has been actually running in orbit for more than one year without failure.
Spreading code; Weil code; Correlation property; Reliability
P228.4
A
CN11-1780(2020)02-0043-06
國家重大專項
2019-10-25
Email:ycyk704@163.com
TEL:010-68382327 010-68382557
陳偉波 1988年生,碩士,工程師,主要研究方向為衛(wèi)星導航。
艾 倫 1982年生,碩士,高級工程師,主要研究方向為衛(wèi)星導航。
黃曉瑞 1971年生,博士,研究員,主要研究方向為衛(wèi)星導航。
杜曉冬 1971年生,碩士,研究員,主要研究方向為衛(wèi)星導航與無線通信。