陳偉波,艾 倫,黃曉瑞,杜曉冬
導(dǎo)航衛(wèi)星有效載荷新型擴(kuò)頻碼研究及實(shí)現(xiàn)*
陳偉波,艾 倫,黃曉瑞,杜曉冬
(北京遙測(cè)技術(shù)研究所 北京 100076)
針對(duì)導(dǎo)航衛(wèi)星中Gold擴(kuò)頻碼存在的不足,衛(wèi)星導(dǎo)航系統(tǒng)的多個(gè)頻點(diǎn)在下一代系統(tǒng)建設(shè)中選用Weil碼作為擴(kuò)頻碼。首先對(duì)Gold碼和Weil碼的特性進(jìn)行仿真分析,仿真結(jié)果表明,Weil碼的自相關(guān)特性和互相關(guān)特性有明顯的優(yōu)勢(shì)。針對(duì)導(dǎo)航衛(wèi)星有效載荷需要提供長(zhǎng)期穩(wěn)定可靠的導(dǎo)航服務(wù)且資源有限,對(duì)Weil碼的實(shí)現(xiàn)方式也有很高的要求,設(shè)計(jì)一種基于FPGA平臺(tái)的Weil碼實(shí)現(xiàn)方案,解決了導(dǎo)航衛(wèi)星有效載荷中Weil擴(kuò)頻碼生成的資源和可靠性問(wèn)題,已實(shí)際在軌連續(xù)運(yùn)行超過(guò)一年沒(méi)有出現(xiàn)故障。
擴(kuò)頻碼;Weil碼;相關(guān)性;可靠性
對(duì)基于CDMA(Code Division Multiple Access)的GNSS(Global Navigation Satellite System)系統(tǒng)而言,擴(kuò)頻碼是其重要組成部分。GNSS信號(hào)的擴(kuò)頻碼是一種偽隨機(jī)序列,需要有良好的自相關(guān)和互相關(guān)特性,以便接收機(jī)可以快速準(zhǔn)確地與接收信號(hào)進(jìn)行相關(guān)運(yùn)算實(shí)現(xiàn)同步和測(cè)距。因此,選用相關(guān)特性良好的擴(kuò)頻碼是信號(hào)設(shè)計(jì)的重要工作。目前,使用最多的擴(kuò)頻碼是Gold碼。Gold碼序列是一種基于線(xiàn)性反饋移位寄存器序列生成的m序列[1],該序列在以GPS(Global Positioning System)L1 C/A碼為代表的信號(hào)中已經(jīng)得到了廣泛的應(yīng)用。但是,隨著各個(gè)國(guó)家導(dǎo)航系統(tǒng)的建設(shè)以及GPS III計(jì)劃的實(shí)施,Gold碼序列難以滿(mǎn)足應(yīng)用上的需求,需要設(shè)計(jì)新型擴(kuò)頻碼。其中,Weil碼基于其良好的相關(guān)特性和靈活的可選序列長(zhǎng)度,已經(jīng)在GPS L1C等信號(hào)中使用。
在導(dǎo)航衛(wèi)星有效載荷中,擴(kuò)頻碼生成模塊是其中的核心模塊,其負(fù)責(zé)生成導(dǎo)航衛(wèi)星播發(fā)信號(hào)中的擴(kuò)頻碼序列。Gold碼是基于移位寄存器生成的,其實(shí)現(xiàn)結(jié)構(gòu)較為簡(jiǎn)單,而鑒于Weil碼的數(shù)學(xué)表達(dá)式,其實(shí)現(xiàn)結(jié)構(gòu)復(fù)雜,目前常用的實(shí)現(xiàn)方式需要使用大量的資源,并且實(shí)現(xiàn)方式的可靠性低,無(wú)法滿(mǎn)足導(dǎo)航衛(wèi)星連續(xù)穩(wěn)定可靠地播發(fā)導(dǎo)航信號(hào)的需求。同時(shí),導(dǎo)航衛(wèi)星有效載荷資源有限,也無(wú)法滿(mǎn)足當(dāng)前Weil碼實(shí)現(xiàn)方式的資源需求。因此,需要設(shè)計(jì)一種穩(wěn)定可靠且資源占用少的Weil碼實(shí)現(xiàn)方案,以滿(mǎn)足導(dǎo)航衛(wèi)星有效載荷的Weil碼生成需求。
如果級(jí)線(xiàn)性反饋移位寄存器產(chǎn)生的序列周期為2–1,則稱(chēng)其為最大長(zhǎng)度反饋移位寄存器序列,即m序列。反饋移位寄存器的抽頭系數(shù)由特征多項(xiàng)式?jīng)Q定,特征多項(xiàng)式可表示為
Gold碼序列是由兩個(gè)優(yōu)選的長(zhǎng)度相同的m序列異或得到的,其具有良好的自相關(guān)和互相關(guān)特性。每改變兩個(gè)m序列的相位關(guān)系就會(huì)產(chǎn)生一個(gè)新的Gold序列,因此其可作為擴(kuò)頻碼的數(shù)量相當(dāng)可觀。Gold碼序列生成的通用結(jié)構(gòu)如圖1所示。
圖1 Gold碼生成結(jié)構(gòu)
通過(guò)圖1可以看出,Gold碼序列生成過(guò)程中共有四個(gè)可調(diào)量,分別是寄存器1和寄存器2的初相與寄存器1和寄存器2的反饋多項(xiàng)式系數(shù)。因此通過(guò)設(shè)置不同的反饋多項(xiàng)式和寄存器初相就可以區(qū)分不同衛(wèi)星。
Weil碼是由Legendre序列生成的。Legendre序列是一種有限長(zhǎng)的偽隨機(jī)序列,它的長(zhǎng)度為質(zhì)數(shù)[2]。長(zhǎng)度為的Legendre序列的定義為
Legendre序列具有很良好的偽隨機(jī)性和相關(guān)性[3]。但是對(duì)于固定的長(zhǎng)度,只存在一個(gè)Legendre序列,因此不直接用作擴(kuò)頻碼。
Weil碼是由兩個(gè)Legendre序列循環(huán)異或生成的,長(zhǎng)度為的Weil碼序列定義為
式中,()是碼長(zhǎng)為的Legendre序列,表示兩個(gè)Legendre序列之間的相位差。
在生成Weil碼序列后,通過(guò)循環(huán)截取的方式生成新的Weil碼序列作為擴(kuò)頻碼序列使用[4],新生成的Weil碼序列為
式中,n表示擴(kuò)頻碼序列長(zhǎng)度,p為截取點(diǎn),表示從Weil碼的第p位開(kāi)始截取,取值為1到N。
圖2所示為Weil碼序列的生成結(jié)構(gòu),從圖中可以看出,其生成過(guò)程主要分為三步,首先生成Legendre序列;其次根據(jù)偏移值將偏移后的Legendre序列與未偏移的Legendre序列進(jìn)行異或生成Weil碼序列;最后根據(jù)值對(duì)Weil碼序列進(jìn)行循環(huán)截短生成最終的衛(wèi)星擴(kuò)頻碼序列。綜上分析可以看出,不同衛(wèi)星的擴(kuò)頻碼序列通過(guò)選取不同的和值來(lái)進(jìn)行區(qū)分。
擴(kuò)頻信號(hào)的接收依靠本地復(fù)現(xiàn)的擴(kuò)頻碼序列與接收信號(hào)進(jìn)行循環(huán)相關(guān)運(yùn)算,因此對(duì)于指定長(zhǎng)度的擴(kuò)頻碼序列,具有更好的自相關(guān)和互相關(guān)特性可以使地面接收機(jī)快速準(zhǔn)確地捕獲信號(hào)。Gold碼有較好的自相關(guān)和互相關(guān)特性,并且其通過(guò)對(duì)雙線(xiàn)性移位寄存器產(chǎn)生的m序列進(jìn)行異或生成擴(kuò)頻碼,生成方式簡(jiǎn)單,易于采用硬件方案實(shí)現(xiàn),因此在各大衛(wèi)星導(dǎo)航系統(tǒng)中得到了廣泛的應(yīng)用。由于受到導(dǎo)航系統(tǒng)衛(wèi)星上原子鐘頻率的限制,擴(kuò)頻碼的碼長(zhǎng)需為1023的整數(shù)倍。但是采用雙線(xiàn)性移位寄存器生成的Gold碼周期的長(zhǎng)度固定為2–1,因此Gold碼周期與某些擴(kuò)頻碼序列的碼長(zhǎng)相比相差甚遠(yuǎn),需要采用截短或拼接的方式生成擴(kuò)頻碼序列,如此則會(huì)損壞Gold碼序列的自相關(guān)和互相關(guān)特性[5]。另外,由于各大導(dǎo)航系統(tǒng)多數(shù)采用Gold碼作為擴(kuò)頻碼方案,各系統(tǒng)間的擴(kuò)頻碼容易受到互相關(guān)干擾,因此需要選用一種新的擴(kuò)頻碼方案。
與Gold碼相比,Weil碼序列通過(guò)使用Legendre序列進(jìn)行移位異或獲得,其長(zhǎng)度和Legendre序列的長(zhǎng)度相同,都為質(zhì)數(shù)。對(duì)于不同長(zhǎng)度的擴(kuò)頻碼序列,都可以很容易地找到相近的Weil碼序列進(jìn)行截短或增長(zhǎng)來(lái)獲得,并且保持偽碼的相關(guān)性。
下面對(duì)Gold碼和Weil碼的相關(guān)特性進(jìn)行仿真分析,選取碼長(zhǎng)為10230的Gold碼和Weil碼序列各60組,代表60顆不同的衛(wèi)星,分別計(jì)算各個(gè)擴(kuò)頻碼序列的最大自相關(guān)副峰值和不同擴(kuò)頻碼序列的最大互相關(guān)結(jié)果,仿真結(jié)果如圖3所示。
在圖3中,橫軸和縱軸分別表示衛(wèi)星號(hào),豎軸表示最大相關(guān)結(jié)果。若橫軸和縱軸對(duì)應(yīng)的衛(wèi)星號(hào)不同,則豎軸表示兩顆衛(wèi)星擴(kuò)頻碼的最大互相關(guān)結(jié)果;若橫軸和縱軸對(duì)應(yīng)的衛(wèi)星號(hào)相同,則豎軸表示該衛(wèi)星擴(kuò)頻碼的最大自相關(guān)副峰值。從仿真結(jié)果可以得出,所選的60組Gold碼序列的最大互相關(guān)結(jié)果為504,相對(duì)最大自相關(guān)結(jié)果衰減26.15dB,最大自相關(guān)副峰值為362,相對(duì)于最大自相關(guān)結(jié)果衰減29.02dB;而所選的60組Weil碼的最大互相關(guān)結(jié)果為444,相對(duì)最大自相關(guān)結(jié)果衰減27.25dB,最大自相關(guān)副峰值為282,相對(duì)最大自相關(guān)結(jié)果衰減31.19dB。
圖3 相關(guān)特性仿真結(jié)果
通過(guò)仿真結(jié)果可以看出,對(duì)于固定長(zhǎng)度的擴(kuò)頻碼序列,Weil碼的互相關(guān)特性和自相關(guān)特性相比Gold碼分別優(yōu)化1dB和2dB。因此在衛(wèi)星導(dǎo)航系統(tǒng)中,選用Weil碼作為擴(kuò)頻碼序列使用,可以有效減少不同衛(wèi)星之間的互相關(guān)干擾,并且可以降低接收機(jī)在自相關(guān)副峰位置假鎖的概率。
鑒于Legendre函數(shù)的數(shù)學(xué)定義,其無(wú)法使用線(xiàn)性移位寄存器的方式直接生成。而利用基于歐拉準(zhǔn)則的二次剩余判定則需運(yùn)用大量的除法運(yùn)算,如此會(huì)消耗巨大的硬件資源,因此使用FPGA難以實(shí)現(xiàn)。目前常采用的實(shí)現(xiàn)方式有兩種,一種方式是采用軟件生成所有衛(wèi)星對(duì)應(yīng)的Weil碼序列存儲(chǔ)到ROM中,工作過(guò)程中針對(duì)不同的衛(wèi)星號(hào)到指定存儲(chǔ)空間中讀取相應(yīng)的Weil碼序列。由于每顆衛(wèi)星對(duì)應(yīng)的Weil碼序列不一樣,因此需要將所有衛(wèi)星的Weil碼都存儲(chǔ)下來(lái),如此則需要占用大量的存儲(chǔ)空間;另一種方式是針對(duì)不同的衛(wèi)星號(hào),首先使用CPU軟件計(jì)算產(chǎn)生所需衛(wèi)星對(duì)應(yīng)的Weil碼序列,之后將生成的序列寫(xiě)入到FPGA的RAM空間后使用。這種方法占用較少的FPGA存儲(chǔ)空間,但是需要DSP參與大量的計(jì)算工作。對(duì)于導(dǎo)航衛(wèi)星來(lái)說(shuō),其所處的空間環(huán)境十分惡劣,采用該方案會(huì)使系統(tǒng)的可靠性受很大的影響,而擴(kuò)頻碼序列作為導(dǎo)航信號(hào)的核心單元,對(duì)可靠性要求極高,因此不適宜選取該方案作為導(dǎo)航衛(wèi)星上的Weil碼實(shí)現(xiàn)方式。
通過(guò)分析Weil碼的特性可以看出,同一頻點(diǎn)不同衛(wèi)星的Weil碼都使用相同的Legendre序列,不同衛(wèi)星對(duì)應(yīng)的Weil碼序列只是通過(guò)不同的和值來(lái)進(jìn)行區(qū)分。經(jīng)過(guò)對(duì)Weil碼生成過(guò)程的進(jìn)一步研究可以將Weil碼的生成過(guò)程由三步簡(jiǎn)化為兩步:首先生成Legendre序列,然后分別在–1和(+–1)mod兩個(gè)起始位置循環(huán)讀取Legendre序列后進(jìn)行異或,讀取到要求的擴(kuò)頻碼序列長(zhǎng)度后再回到起始位置開(kāi)始讀取,如此就可生成周期性的擴(kuò)頻碼序列。
因此,可以通過(guò)以下方式來(lái)生成Weil碼:首先使用軟件仿真生成Legendre序列后存儲(chǔ)在一個(gè)塊RAM中,而將所有衛(wèi)星的Weil碼序列參數(shù)(–1和(+–1)mod)存儲(chǔ)在另外一個(gè)塊RAM中;然后在信號(hào)啟動(dòng)前置入衛(wèi)星號(hào)作為地址,分別讀取其對(duì)應(yīng)的兩組擴(kuò)頻碼序列參數(shù)作為兩個(gè)計(jì)數(shù)器的初始值;最后在啟動(dòng)信號(hào)后以碼時(shí)鐘驅(qū)動(dòng)計(jì)數(shù)器進(jìn)行計(jì)數(shù),并將計(jì)數(shù)器的輸出結(jié)果作為雙端口RAM的兩個(gè)輸入地址,對(duì)雙端口RAM的兩個(gè)輸出序列進(jìn)行異或得到所需Weil碼序列。實(shí)現(xiàn)過(guò)程如圖4所示。
通過(guò)上述的實(shí)現(xiàn)方案進(jìn)行設(shè)計(jì)有如下優(yōu)點(diǎn):
①在Weil碼序列生成模塊中,僅使用兩個(gè)塊RAM分別存儲(chǔ)擴(kuò)頻碼參數(shù)和Legendre序列,另外通過(guò)兩個(gè)計(jì)數(shù)器產(chǎn)生地址控制信號(hào)。在此基礎(chǔ)上通過(guò)輸入不同的衛(wèi)星號(hào)就可以產(chǎn)生對(duì)應(yīng)的Weil碼序列,如此使用很少的資源就可以實(shí)現(xiàn)不同衛(wèi)星的Weil碼序列生成功能;
圖4 Weil碼在FPGA中實(shí)現(xiàn)框圖
圖5 Weil碼可靠性設(shè)計(jì)
② Weil碼序列的實(shí)現(xiàn)過(guò)程中沒(méi)有DSP等軟件參與工作,全部采用FPGA實(shí)現(xiàn),因此該模塊設(shè)計(jì)的獨(dú)立性很強(qiáng),具有很高的可靠性和可移植性;
③ 在設(shè)計(jì)過(guò)程中增加了擴(kuò)頻碼參數(shù)重構(gòu)功能。導(dǎo)航衛(wèi)星在軌運(yùn)行過(guò)程中如果需要使用原先所有衛(wèi)星對(duì)應(yīng)的擴(kuò)頻碼之外的Weil碼,只需要將相應(yīng)的Weil碼對(duì)應(yīng)的參數(shù)注入,就可以生成指定的Weil碼序列。
采用上節(jié)描述的實(shí)現(xiàn)方案生成Weil碼序列相比軟件實(shí)現(xiàn)方案在可靠性上有很大的提高,但是在空間環(huán)境中,F(xiàn)PGA還是容易受到單粒子的影響,因此還需要進(jìn)行可靠性設(shè)計(jì)。對(duì)于星載FPGA軟件,一般采用三模冗余和配置刷新的方式進(jìn)行可靠性防護(hù)?;赬ilinx FPGA的三模冗余設(shè)計(jì)可以使用XTMRTOOL,但是該工具并不包含塊RAM的三模冗余設(shè)計(jì),并且配置刷新一般也不對(duì)塊RAM區(qū)進(jìn)行刷新??紤]到導(dǎo)航衛(wèi)星的在軌運(yùn)行時(shí)間長(zhǎng)、所處空間環(huán)境惡劣,為保證衛(wèi)星在軌運(yùn)行過(guò)程中連續(xù)可靠地生成擴(kuò)頻碼序列,需要進(jìn)行可靠性防護(hù)設(shè)計(jì)。設(shè)計(jì)框圖如圖5所示。
在圖5所示的可靠性設(shè)計(jì)中,對(duì)所有雙端口RAM都進(jìn)行了三模冗余設(shè)計(jì),可以有效提高導(dǎo)航衛(wèi)星在空間環(huán)境下運(yùn)行的可靠性;并且在此基礎(chǔ)上對(duì)所有塊RAM內(nèi)容都進(jìn)行自刷新設(shè)計(jì),避免了衛(wèi)星長(zhǎng)期運(yùn)行過(guò)程中由于單粒子事件累積造成的故障。因此,通過(guò)本文中所描述的可靠性設(shè)計(jì),可以有效保證衛(wèi)星長(zhǎng)期可靠連續(xù)地運(yùn)行。
本文首先介紹了衛(wèi)星導(dǎo)航系統(tǒng)中常用的擴(kuò)頻碼序列Gold碼和Weil碼,并仿真分析了兩種擴(kuò)頻碼的自相關(guān)和互相關(guān)特性。仿真結(jié)果表明,與Gold碼相比,Weil碼有更好的相關(guān)特性,作為導(dǎo)航衛(wèi)星的擴(kuò)頻碼有明顯的優(yōu)勢(shì)。然后針對(duì)導(dǎo)航衛(wèi)星有效載荷的空間應(yīng)用環(huán)境需求及Weil碼的特性,設(shè)計(jì)了一種導(dǎo)航衛(wèi)星有效載荷上的Weil碼實(shí)現(xiàn)方案,解決了目前常用Weil碼實(shí)現(xiàn)方式資源使用多和可靠性低的問(wèn)題,可以保證導(dǎo)航衛(wèi)星連續(xù)有效地在軌運(yùn)行,目前該設(shè)計(jì)方案已在導(dǎo)航衛(wèi)星有效載荷上連續(xù)運(yùn)行超過(guò)一年沒(méi)有出現(xiàn)故障。
[1] 張威, 張克, 徐熙宗. GPS信號(hào)C/A碼生成算法設(shè)計(jì)及其仿真實(shí)現(xiàn)[J]. 通信技術(shù), 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信號(hào)Weil碼相關(guān)性能分析[J]. 無(wú)線(xiàn)電通信技術(shù), 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
國(guó)家重大專(zhuān)項(xiàng)
2019-10-25
Email:ycyk704@163.com
TEL:010-68382327 010-68382557
陳偉波 1988年生,碩士,工程師,主要研究方向?yàn)樾l(wèi)星導(dǎo)航。
艾 倫 1982年生,碩士,高級(jí)工程師,主要研究方向?yàn)樾l(wèi)星導(dǎo)航。
黃曉瑞 1971年生,博士,研究員,主要研究方向?yàn)樾l(wèi)星導(dǎo)航。
杜曉冬 1971年生,碩士,研究員,主要研究方向?yàn)樾l(wèi)星導(dǎo)航與無(wú)線(xiàn)通信。