專利名稱:Gps數字中頻信號的模擬方法及系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及一種衛(wèi)星導航領域的方法及系統(tǒng),具體為一種使用軟件方法模擬GPS 數字中頻信號的方法及系統(tǒng)。
背景技術:
功能完備的GPS接收機需要三個功能模塊第一個是射頻接收模塊,具體功能是通過天線接收GPS衛(wèi)星發(fā)射的射頻信號,再經過混頻和濾波處理將射頻信號變?yōu)轭l率較低的中頻信號,最后經過ADC采樣后成為數字信號交與基帶處理模塊處理;第二個是基帶處理模塊,負責對射頻接收模塊輸出的數字信號進行捕獲和跟蹤,獲取導航電文信息和各個衛(wèi)星的傳播時間信息;第三個是導航解算模塊,負責將基帶處理模塊輸出的信息經過一定的數學運算處理得到接收機的PVT (位置、速度、時間)信息,實現了 GPS定位。因此,GPS接收機芯片在前期設計驗證的過程中就需要有GPS信號源作為測試激勵,并且設計驗證人員需要掌握信號的一定先驗信息,方能驗證接收機的正確性和健壯性。 一般采用的解決方案有兩種。一種是建立真實的接收環(huán)境,即購買第三方的射頻接收模塊和自己的測試系統(tǒng)對接,通過實地信號接收和測量來獲取測試統(tǒng)計結果,并需要一臺參考接收機同時同地點同條件地運行,獲取對比測試數據;另一種是搭建獨立的射頻接收和采樣系統(tǒng),該系統(tǒng)需要連接存儲設備,把實地采集的信號以文件形式存儲,作為測試激勵。這兩種解決方案的局限都在于環(huán)境成本較高,而且實驗條件非??量?。對第一種方案來說,一方面實時的測試環(huán)境只能完成系統(tǒng)級測試,很難實現模塊測試或者高層次模型測試,另一方面需要在戶外進行,需要大量額外的人工成本和使用如機車、便攜式電源等額外的輔助設備、工具。對于第二種方案來說,同樣需要額外的人工和設備,并且存儲的信號是沒有先驗知識的,需要額外的軟件工具對其進行分析,掌握可靠的信息后才能用于測試,而測試結果的可靠性又依賴于對信號信息的挖掘是否正確。
發(fā)明內容
本發(fā)明針對上述技術中的缺點和不足,提出了一種基于通用計算機平臺的軟件方式實現的GPS中頻數字信號模擬方法及系統(tǒng)。該方法使用真實星歷數據,經過軟件編碼和模擬真實的載波與擴頻碼調制,并經過逆推運算調整不同衛(wèi)星的信號到達接收機的時間差,合成出給定時間、地點和信噪比的可見衛(wèi)星信號,以二進制文件形式存儲,可隨時用于測試激勵。該系統(tǒng)模擬的為GPS導航接收機的射頻模塊中ADC的輸出信號。軟件方法保證了使用的便捷性和靈活性,信號可以隨時生成并且滿足任意的信號特征的需求。根據本發(fā)明的一個方面,提出一種GPS數字中頻信號的模擬方法,包括如下步驟 步驟一,讀取用戶按照規(guī)定格式編寫的配置文件,提取系統(tǒng)配置參數,配置模擬的信號特征和系統(tǒng)工作所需輸入;步驟二,提取RINEX文件頭信息和所定義時間段內的全部衛(wèi)星的星歷數據組;步驟三,將步驟二中提取出的星歷數據進行編碼,形成二進制的導航電文碼流; 步驟四,將步驟三中得到的電文碼流調制載波和擴頻碼,合成出中頻數字信號數據。
根據本發(fā)明的另一個方面,還提供一種GPS數字中頻信號的模擬系統(tǒng),包括信號生成模塊、RINEX管理模塊和輔助模塊,其中,輔助模塊主要包含的子模塊有導航解算模塊、 時間系統(tǒng)管理模塊、地理坐標轉換模塊、宏模塊。更為具體地,本發(fā)明是通過以下的技術方案實現的
本發(fā)明涉及的基于通用計算機平臺的軟件GPS中頻數字信號模擬方法,包括以下步
驟
步驟一,讀取用戶按照規(guī)定格式編寫的配置文件,提取系統(tǒng)配置參數,配置模擬的信號特征和系統(tǒng)工作所需輸入。所述系統(tǒng)配置參數包括
1) RINEX導航星歷文件路徑。RINEX是一種存儲導航相關數據的通用文本文件格式,
其中的一種導航星歷文件用于存儲一段時間內某觀測站采集的衛(wèi)星星歷數據。星歷數據用于計算衛(wèi)星運行參數(速度、位置、鐘差等)。從該格式文件提取星歷、并且按照官方給定星歷編碼格式和規(guī)范進行編碼,能夠還原指定衛(wèi)星在一定時間段內發(fā)射的導航數據流。2)彳j收機位置、速度、加速度信息。這些參數用于配置接收機模型的運動狀態(tài)。 這些和運動狀態(tài)相關的參數最終會作用到模擬出的GPS信號中。&所模擬的信號的接收起始時刻、時間跨度、星歷使用組數信息。該步驟從配置文件讀取以上列舉的配置參數配置系統(tǒng)的各個模塊,設定了系統(tǒng)當前的運行方式和數據的生成模式。 步驟二,檢查RINEX導航星歷文件有效性,提取RINEX星歷文件頭信息和所定義時間段內的全部衛(wèi)星的星歷數據。所述RINEX星歷文件頭信息,包含=RINEX版本信息、觀測站位置信息、信號接收時段信息、電離層校正模型參數、UTC時間信息等。其中較為重要的有版本信息,決定了文件的格式;電離層校正模型參數和UTC時間信息,這些參數也存在于衛(wèi)星播發(fā)的導航電文中, 分別用于校正電離層延遲和在GPST時與UTC之間轉換。任何一類信息在文件頭中占據若干行,并用一個描述符(descriptor)區(qū)分。該步驟首先緩存RINEX文件的文件頭,然后用戶可根據需要通過特定的描述符在緩存中搜索相應的信息,在信號生成中使用。步驟一中說明了星歷的作用,它用來描述衛(wèi)星軌道信息和衛(wèi)星運動信息。GPS衛(wèi)星以兩個小時為周期更新播發(fā)的星歷,保證這些信息的精度。制作RINEX文件的觀測站會不間斷地接收衛(wèi)星信號,把一個時間段(例如一天)內所能觀測到的全部衛(wèi)星的多套星歷按照時間順序存儲于一個RINEX導航星歷文件中。該步驟在解析完RINEX文件頭之后,把信號模擬時間段內的全部星歷數據提取出來,存儲于一個動態(tài)二維數組中構成星歷數據組。所述星歷數據組的類型為一個自定義結構體,該結構體存儲一顆衛(wèi)星的一套星歷。之所以是動態(tài)數組,是因為當信號模擬的時間跨度中存在理論上的星歷更新時,每顆衛(wèi)星需要多套星歷。該二維數組的每一行對應一顆GPS 衛(wèi)星,共32行,而每一列對應一套星歷數據,不同列對應不同的時間段,列數則由。該步驟根據信號起始時間和時間跨度的配置信息,在RINEX導航星歷文件中搜尋對應于該時間段的全部衛(wèi)星星歷,并計算是否存在星歷更新,總共更新幾次。例如,當計算出需要生成的信號包含一次星歷更新,則每顆衛(wèi)星需提取兩套時間上連續(xù)的星歷,且和起始時間和長度的配置信息吻合。
步驟三,將步驟二中提取出的星歷數據進行編碼形成二進制的導航電文碼流。所述將步驟二中提取出的星歷數據進行編碼,形成二進制的導航電文碼流,是指 根據所模擬的信號起始時刻和時間跨度,以及GPS官方文檔對電文格式的規(guī)定,對每一顆衛(wèi)星的星歷進行編碼,形成二進制的導航電文碼流,同時計算出奇偶校驗位,最后將每顆衛(wèi)星的碼流都存儲于一個獨立的文件中。導航電文為二進制格式,以30秒為一幀,步驟二中提取出的星歷數據即對應一幀包含的信息。一幀包含5個子幀,編號從1到5,每個子幀包含300比特數據,所以每比特數據的寬度為20 ms。每顆衛(wèi)星都從世界協(xié)調時間(UTC)的周日凌晨開始播送導航電文,從1號子幀到5號子幀不斷循環(huán),并以兩小時為間隔進行更新。 對所有衛(wèi)星電文編碼的算法相同,其流程如下
1.根據信號起始時刻的信息計算周內時TOW;
2.用TOW除以6得到的商對5取余,(余數+1)即為信號起始時刻所在子幀的子幀號 k(理論上每顆衛(wèi)星發(fā)射子幀的時間是同步的,以上計算的子幀號可作為所有衛(wèi)星生成的導航電文碼流的起始子幀);
3.根據信號時間跨度η(單位為秒)計算每顆衛(wèi)星需要生成的子幀數量Ν = n/6+l ;
4.對衛(wèi)星ρ,需要生成的第i(0 < i< N)個子幀的子幀號
sf = (k+i) * 5,若計算得 sf 為 0,sf = sf ! 5 ; 根據該子幀對應的周內時itow計算應選取哪一個星歷組中的星歷數據 itow = TOW - TOW * 6 + (i-1) X 6
找到所模擬的信號時間跨度內的2小時星歷更新時刻,判斷itow出現的時間段,判斷應該選取的星歷數據組。根據sf號子幀對應的子幀格式和所選星歷數據組中衛(wèi)星ρ的星歷數據進行第i個子幀的編碼;重復該步驟完成所有子幀的編碼,得到衛(wèi)星P的電文碼流。步驟四,對導航電文調制載波和擴頻碼,合成出中頻數字信號數據。本發(fā)明模擬 GPS導航接收機射頻模塊中ADC的輸出信號,該信號的特征為1.數字信號,2.載波頻率為范圍在幾兆到幾十兆之間的中頻,該中頻認為是接收機射頻模塊將射頻下變頻得到。依據這兩點特征,該步驟完成信號最后的模擬合成功能,核心思想是逐采樣點地計算信號樣值, 即在每個采樣點處計算此時刻天線所接收到的信號由哪幾顆衛(wèi)星的信號合成,分別是怎樣的電文數值、擴頻碼相位和載波相位、頻率,并考慮天線對信號進行降頻時出現的頻率折疊、ADC的量化階數等因素,準確地模擬接收端的行為對信號的影響。其算法步驟如下
1.計算GPS擴頻碼序列。生成方式按照GPS官方接口文檔的定義實現,生成的序列存于一個二維數組CA_Code中,其行向量代表一顆GPS衛(wèi)星的CA碼序列。CA碼周期為1ms, 包含1023個碼片,因此行向量的長度為1023,存放CA碼一個周期序列值。計算待生成的數字中頻信號的樣點數Nsample。計算方法是IfeanijIe:::
π Xsanpling_£reqo其中η為信號的時間跨度(單位為秒),sanplingjreq為采樣率(單
位為Hz)。當i小于Nsample時,開始計算第i (初始值為0)個采樣點的值。進入步驟4。否則進入步驟6。
判斷i是否對應于整毫秒的樣點數。該算法在整毫秒處推算每顆衛(wèi)星的信號的傳播時間(信號從衛(wèi)星天線到接收機天線),并假設在接下來的1毫秒內該傳播時間不變,即接下來的1毫秒內到達接收機的信號的傳播時間是不變的,這種假設保證了極小的誤差,并且避免對每個采樣點對應的各顆衛(wèi)星信號的傳播時間進行推算,在采樣率為1兆以上的前提下,將算法效率提高了 1000倍以上。若i為整毫秒的樣點數,則對每一顆衛(wèi)星(在全部32 顆GPS衛(wèi)星范圍內)進行如下步驟1)到5)的計算,否則跳至步驟5
1)根據i找到當前時刻對應的衛(wèi)星星歷數據組,從中提取當前衛(wèi)星P的星歷,檢查星歷的有效性,無效則該衛(wèi)星置為不可見,并跳至下一顆衛(wèi)星重復步驟4的流程;
2)依據GPS官方接口文檔的說明計算當前時刻(和i對應)接收到的該衛(wèi)星的信號在
傳播時間propogate—time秒之前的衛(wèi)星鐘差校正值elk和鐘漂校正值clk_drift ;傳播時
間propogate—tiioe使川丨一次整毫秒計算時得到的值,即暫時認為在過去的Ims內傳播時
間沒有發(fā)生變化,在初始化時定義為0. 07秒;
3)計算當前時亥IJ(和i對應)接收到的該衛(wèi)星的信號的發(fā)射時亥IJ,發(fā)射時刻
二 ini t_gpstow + ids ~clk-propogate_tiiDe, inlt^pstow 為信號起始時刻(周內時),
ms為當前記錄的毫秒數(單位為秒);
4)循環(huán)迭代計算當前計算的信號被發(fā)射的時刻的衛(wèi)星PVT信息、衛(wèi)星和接收機距離及其變化率信息。具體方法是
i.重新計算傳播時間
propogat e_t iiiie = range / LIGIII'SPEED
range為上一次進行步驟4時計算得到的衛(wèi)星和接收機距離,LIGHTSPEED為光速; .重新計算信號發(fā)射時刻tow
tow = init_gpstow + ms ■■ propogate_tiroe ;
iii.根據GPS官方接口文檔定義的方法計算衛(wèi)星在tow時刻的PVT信息;
iv.在ECEF坐標系下計算在tow時刻衛(wèi)星和接收機之間的距離range和距離變化率 x'ange_rate ;
V.返回第i步重復這個過程,迭代4次得到精確的range、range^rate和 propogate_t Iiue0)計算在tow時刻的衛(wèi)星仰角和方位角,若仰角大于0,則計算多普勒頻移 doppler = ^range_rate / WAVELEWGTHL1
其中WAVELENGTHL1為GPS Ll信號載波波長。此處的負號是因為認為射頻接收模塊在下變頻中將頻譜做了反轉,因此doppler的符號出現了反轉; 然后計算當前采樣率下的載波相位步長
Carrierphasestep = ( IF + doppler ) / saspling^_freq
其中IF為中頻頻率。最后計算精確的傳播時間propogate—time = range / LIGHTSPEED ~ elk
elk為第2)步計算出的衛(wèi)星鐘差。計算完畢后返回第1)步,進入對下一顆衛(wèi)星在當前整毫秒時刻到達的信號的發(fā)射時刻和相應PVT信息。若仰角小于0,則該顆衛(wèi)星設置為不可見,跳過該步的其他運算,同樣返回第1)步對下一顆衛(wèi)星執(zhí)行以上步驟。對當前可見的每顆衛(wèi)星的信號計算第i個采樣點的值。衛(wèi)星的可見性已經在步驟 4中確定,并在下一次處理步驟4 (即到達下一個整毫秒)之前保持不變。該步驟的算法步驟如下
1)計算當前可見衛(wèi)星q的第i個采樣點對應的導航電文數值。其偽代碼如下 rel_tx = i / sanpling^fi-eq - propogat e_time + iiiit_gpstow % 6, bite = (int) (xel_tx * 50)+1; n_(¥or<i = bite / 30; n—bit = bite % 30;
t ..nav_bit = ( nav data[q] [jx..word] (29 - njbit) ) & 0x1,
其中,init^ffitow 6表示信號起始時刻所在子幀的起始時刻,則:rel—tX表示當前
采樣點距離該子幀起點的時間距離。計算rel—tx的原因是,在步驟三中編碼得到的每顆衛(wèi)星的導航電文碼流均以該子幀為起點,因此尋找當前采樣點對應的電文數值也需以此為起點。設該子幀、M START_;fraie ..^data為一個二維數組,每一行對應一顆衛(wèi)星的導航電文碼流,該碼流在步驟三中得到。一行中的每個元素在軟件中為無符號整型,其低30位存放一個長度為30比特的導航字。以上偽代碼找到當前采樣點所在的碼流中的第幾個字(η—word)的第幾個比
特(n—Mt),然后從胃_data中找出對應的電文數值tjmvJ}it。)計算當前可見衛(wèi)星q的第i個采樣點對應的擴頻碼和載波數值。其偽代碼如下 codf hase (rel_tx * 1000 - Cint) (rel_tx * 1000) ) * 1023;
data + t_nav_bi t [q] * CA_Codc[int (codci^iasc)] [q] * sin(2 * PI *
carrier);
carrier += carri erphas est ep ;
if*《camrier ^i) carrier - caorrier - 1;
由于CA碼以Ims為周期,一周期包含1023個碼片,該算法假設STAKT—FRAIE起始對應
的碼相位為0,并且CA碼的doppler效應忽略不計。因此cod印hase即為當前采樣點對應的擴頻碼碼相位。為載波相位,其步長由第4步計算得到,并在Ims內保持不變。合成的數據data即為各顆衛(wèi)星在當前采樣點處的導航電文、CA碼和載波數值的乘積之和。)對data疊加高斯白噪聲,其信噪比在步驟一中由用戶配置。將data存入預先打開的二進制文件中。所有采樣點計算完畢,退出步驟四,同時得到了 GPS數字中頻信號的文件。本發(fā)明涉及的GPS數字中頻信號模擬系統(tǒng),包括信號生成模塊、RINEX管理模塊和輔助模塊,其中輔助模塊主要包含的子模塊有導航解算模塊、時間系統(tǒng)管理模塊、地理坐標轉換模塊、宏模塊。所述信號生成模塊提供以下功能的接口,包括系統(tǒng)配置信息的提取;調用RINEX 管理模塊提取所需數量的星歷數據組,該星歷數據組對應所有GPS衛(wèi)星在兩小時有效期內的全部星歷,而該星歷組的組數由所模擬的信號的起始時間和時間跨度決定,在該時間跨度中出現多少次星歷更新,則需提取相應數量的星歷數據組;對星歷數據進行編碼和校驗位添加,得到導航電文碼流;對導航電文碼流調制載波和擴頻碼;高斯噪聲模擬;提供組合以上功能部件實現信號模擬的整體算法流程。所述RINEX管理模塊提供以下功能的接口,包括獲取用戶配置的RINEX星歷文件;解析文件名檢查文件可用性和提取文件名包含的信息,包括基站名稱縮寫、信號采集時間;緩存RINEX星歷文件的文件頭數據;提取RINEX星歷文件的文件頭中的RINEX版本信息、基站位置信息、信號接收時段信息、電離層校正參數、UTC時間信息等;根據一個時間參考點提取一組星歷數據,該功能模塊由前述信號生成模塊中提取星歷數據組的接口反復調用,獲取所需數量的星歷數據組。所述導航解算模塊提供以下功能的接口,包括衛(wèi)星鐘差和鐘漂的計算;衛(wèi)星位置、速度信息的計算;衛(wèi)星、接收機距離、距離變化率的計算;衛(wèi)星相對于接收機的仰角和方位角的計算。所述時間系統(tǒng)管理模塊負責不同時間系統(tǒng)間的數據轉換。所述地理坐標轉換模塊負責不同地理坐標系統(tǒng)間坐標值的轉換。所述宏模塊負責完成系統(tǒng)的宏管理,包括全局常量的管理、自定義數學運算宏的管理。
圖1為本發(fā)明GPS數字中頻信號模擬系統(tǒng)的輸入輸出示意圖; 圖2為本發(fā)明的軟件頂層流程圖3為本發(fā)明系統(tǒng)輸入配置文件格式的示意圖; 圖4為本發(fā)明RINEX文件頭信息提取的過程示意圖; 圖5為本發(fā)明衛(wèi)星星歷數據組提取的過程示意圖; 圖6為本發(fā)明的衛(wèi)星電文碼流生成過程的示意圖; 圖7為本發(fā)明的信號合成過程的算法流程圖; 圖8為本發(fā)明的軟件邏輯層次結構圖。
具體實施例方式下面結合附圖對本發(fā)明的實施例作詳細說明本實施例在以本發(fā)明技術方案為前提下進行實施,給出了詳細的實施方式和具體的操作過程,但本發(fā)明的保護范圍不限于下述的實施例。如圖1所示,為根據本發(fā)明提供的系統(tǒng)的IO模式,所述系統(tǒng)的輸入為用戶按對生成的信號的需求和系統(tǒng)對配置文件的格式要求編寫的配置文本文件,輸出為存儲數字中頻信號的二進制文件。如圖2所示,為根據本發(fā)明提供的系統(tǒng)的軟件頂層流程圖。該圖顯示了本發(fā)明所提供的GPS數字中頻信號模擬方法,包括以下具體步驟
步驟一,讀取用戶按照規(guī)定格式編寫的配置文件,提取接收機位置、RINEX星歷文件路徑、信號時間信息等參數。如圖3所示為所述系統(tǒng)輸入配置文件格式的示意圖,可配置參數分為三類,用波浪號( .)加大寫英文字母標識,分別是接收機坐標信息、RINEX星歷文件路徑信息和時間信息。每組信息中的每個單元信息之間用空格區(qū)分。具體說明參見下表
表1配置文件格式說明表
步驟二,配置參數提取成功后,打開RINEX星歷文件,將頭信息進行緩沖,并根據需求提取出相應的數據。提取完畢后尋找所需組數的導航星歷數據組,供后續(xù)的電文編碼使用。如圖4所示,在本實施例中電離層延遲校正模型的參數存在于文件頭的第三行和第四行中。在文件頭緩沖于一個一維字符串數組中后,以換行符為結束符、行為單位進行搜索,在每個搜索單元中搜索和電離層校正模型參數對應的描述符(descriptor),找到后將該搜索單元提取出來放入一個臨時數組,然后檢查下一個搜索單元,如此反復直到文件頭緩沖區(qū)的末尾。所有臨時數組按先后順序組成新的緩沖區(qū),最后從該緩沖區(qū)中按照RINEX 的官方格式提取出對應數據。如圖5所示,按照配置的信號起始時刻、時間跨度、更新的星歷數據組數提取衛(wèi)星星歷。RINEX文件的正文部分按時間段存儲每顆可見衛(wèi)星的星歷,該時間段長度為GPS衛(wèi)星星歷的更新周期——2小時。本實施例采用的RINEX文件存儲了一天的星歷,所以其正文分為12段。而所模擬的信號的起始時刻1點58分,時間跨度為330秒,因此出現了一次星歷更新,需要提取兩組星歷數據組。搜索信號起始時刻所在的時間段,將該時間段和隨后的一個時間段、共兩組星歷數據組提取出來,放入一個二維數組。該二維數組的每一列對應一個時間段的一組星歷數據,列長度為GPS衛(wèi)星總數;每一行對應于同一顆衛(wèi)星,其數據結構包含標志位來標識該顆衛(wèi)星的星歷在對應時間段內是否有效(存在)。步驟三,計算信號的起始時刻對應的周內時,從該時刻開始、每隔6秒對當前子幀進行編碼,直到完成不小于信號時長的幀數據。每顆衛(wèi)星的電文碼流存于一個文本文件中。如圖6所示,將步驟一中配置的信號起始時刻換算到周內時T0W,在本實施例中為 93520s,因GPS子幀長度為6s,所以從93516s開始對導航電文逐子幀編碼。首先計算起始子幀的子幀號
93520 / 6 = 15586 ...... 4
15586 5+1=2
則此后的子幀序列為2, 3, 4,5, 1,2, 3,4, 5,1.……;
同時需要生成的子幀總數為 330 / 6 + 1 = 56
即每顆衛(wèi)星均需從2號子幀開始編碼56個連續(xù)子幀。對于衛(wèi)星ρ的第i個子幀G < i < 56),其應該生成的子幀號Sf為(2+i) % 5,
若sf等于0,則令其為5。根據其對應的周內時計算應選取哪一個星歷組。本實施例中信號時間跨度內的2 小時整倍數時間出現于93600s。因此,計算第i個子幀存在的時間
it 93516 + (i-1) X6
當it小于93600,則選取第一組星歷組中衛(wèi)星ρ的星歷,否則選取第二組星歷組中衛(wèi)星 P的星歷。然后按照GPS電文格式對星歷進行編碼得到對應子幀的碼流。衛(wèi)星ρ的所有子幀編碼完成后,存入一個單獨的文件。所有衛(wèi)星均進行如上的步
馬聚ο步驟四,對步驟三得到的導航電文調制載波和擴頻碼,合成出中頻數字信號數據。如圖7所示,為該信號合成過程的算法流程圖。計算GPS擴頻碼序列。生成方式按照GPS官方接口文檔的定義實現,生成的序列存于一個二維數組.CAJCode*,其行向量代表一顆GPS衛(wèi)星的CA碼序列。CA碼周期為1ms, 包含1023個碼片,因此行向量的長度為1023,存放CA碼一個周期序列值。計算樣點數:Nsanule:Nsanple = 330 X 5. 714285e6. 其中 5. 714285e6 為采樣率。逐采樣點計算樣值。設臨時變量i=0。當i小于Nsample時,計算第i個采樣點的值。進入步驟4。否則進入步驟6。判斷iH5714是否為0,其中5714取Ims采樣點數的約數。若i是否對應于整毫秒
的樣點數,則對全部GPS衛(wèi)星進行如下1)到5)的步驟,否則跳過該步驟
1)根據i找到當前時刻對應的衛(wèi)星星歷數據組,從中提取當前衛(wèi)星P的星歷,檢查星歷的有效性,無效則衛(wèi)星P置為不可見,并跳至下一顆衛(wèi)星重復步驟4的流程;
2)依據GPS官方接口文檔的說明計算當前時刻接收到的該衛(wèi)星的信號在傳播時
IhJ prop ogat e_t ι me
秒之前的衛(wèi)星鐘差校正值elk和鐘漂校正值:clk drift ;傳播時間propogate—time使用上一次整毫秒計算時得到的值,即暫時認為在過去的Ims內傳播時間沒有發(fā)生變化,在初始化時定義為0. 07秒;
3)計算當前時刻(和i對應)接收到的該衛(wèi)星的信號的發(fā)射時刻=93520 f ins ~c Ik-propogat e_t i me ;
4)循環(huán)迭代計算當前計算的信號被發(fā)射的時刻的衛(wèi)星PVT信息、衛(wèi)星和接收機距離及其變化率信息。具體方法是
i.重新計算傳播時間
propogate—time 二 range / LIGHTSPEED
range為上一次進行步驟4時計算得到的衛(wèi)星和接收機距離,LIGHTSPEED為光速。重新計算信號發(fā)射時刻tow
tow 二 93520 + ids - propogate_time
iii.根據GPS官方接口文檔定義的方法計算衛(wèi)星在tow時刻的PVT信息;
iv.在ECEF坐標系下計算在tow時刻衛(wèi)星和接收機之間的距離range和距離變化率 range_rate ;
V.返回第i步重復這個過程,迭代4次得到精確的range、range—rate和 prcjpogate_time □)計算在tow時刻的衛(wèi)星仰角和方位角,若仰角大于0,則計算多普勒頻移
doppler = orange—rate / WAVELEW&THIJ
其中WAVELENGTHL1為GPS Ll信號載波波長。此處的負號是因為認為射頻接收模塊在下變頻中將頻譜做了反轉,因此doppler的符號出現了反轉; 然后計算當前采樣率下的載波相位步長
Carxierphasestep - ( IF + doppler ) / sanpling_freq
其中IF為中頻頻率。最后計算精確的傳播時間
propoga t e_t ime 二 range / LIGHTSPEED _ elk
elk為第2)步計算出的衛(wèi)星鐘差。計算完畢后返回第1)步,進入對下一顆衛(wèi)星在當前整毫秒時刻到達的信號的發(fā)射時刻和相應PVT信息。若仰角小于0,則該顆衛(wèi)星設置為不可見,跳過該步的其他運算,同樣返回第1)步對下一顆衛(wèi)星執(zhí)行以上步驟。對當前可見的每顆衛(wèi)星的信號計算第i個采樣點的值。衛(wèi)星的可見性已經在步驟 4中確定,并在下一次處理步驟4 (即到達下一個整毫秒)之前保持不變。該步驟的算法步驟如下
1)計算可見衛(wèi)星q的第i個采樣點對應的導航電文數值rel_tx = i / 5. 714285e6 - propogat e_t ime I- 93520 % 6; bite 二 (int)(rel_tx * b0)+lj njword = bite / 30; n—bit = bite % 30;
t_nav_bit :: ( nay_data[q] [n_srard] (29 - n_bit) ) & 0x1;
2)計算衛(wèi)星q的第i個采樣點對應的擴頻碼和載波數值。其偽代碼如下 codephase = (rel_t* * IWO — Gut) (rel_ti:傘 1000))孝 102 data ■§·= t—naw—bitiq] * CA_Code|iiit Ccodephase)] [q] * sin(2 * Pl *
3)對data疊加高斯白噪聲,其信噪比在步驟一中由用戶配置。將data存入預先打開的二進制文件中。所有采樣點計算完畢,退出步驟四,同時得到了 GPS數字中頻信號的文件。如圖8所示,為本發(fā)明提供的GPS中頻信號模擬系統(tǒng)的軟件邏輯層次結構圖,本發(fā)明的軟件實現包括三個邏輯層次信號生成模塊、RINEX管理模塊、輔助模塊。所述信號生成模塊提供以下功能的接口,包括系統(tǒng)配置信息的提??;調用RINEX 管理模塊提取所需數量的星歷數據組,該星歷數據組對應所有GPS衛(wèi)星在兩小時有效期內的全部星歷,而該星歷組的組數由所模擬的信號的起始時間和時間跨度決定,在該時間跨度中出現多少次星歷更新,則需提取相應數量的星歷數據組;對星歷數據進行編碼和校驗位添加,得到導航電文碼流;對導航電文碼流調制載波和擴頻碼;高斯噪聲模擬;提供組合以上功能部件實現信號模擬的整體算法流程。所述RINEX管理模塊提供以下功能的接口,包括獲取用戶配置的RINEX星歷文件;解析文件名檢查文件可用性和提取文件名包含的信息,包括基站名稱縮寫、信號采集時間;緩存RINEX星歷文件的文件頭數據;提取RINEX星歷文件的文件頭中的RINEX版本信息、基站位置信息、信號接收時段信息、電離層校正參數、UTC時間信息等;根據一個時間參考點提取一組星歷數據,該功能模塊由前述信號生成模塊中提取星歷數據組的接口反復調用,獲取所需數量的星歷數據組。所述導航解算模塊提供以下功能的接口,包括衛(wèi)星鐘差和鐘漂的計算;衛(wèi)星位置、速度信息的計算;衛(wèi)星、接收機距離、距離變化率的計算;衛(wèi)星相對于接收機的仰角和方位角的計算。所述時間系統(tǒng)管理模塊負責不同時間系統(tǒng)間的數據轉換。所述地理坐標轉換模塊負責不同地理坐標系統(tǒng)間坐標值的轉換。所述宏模塊負責完成系統(tǒng)的宏管理,包括全局常量的管理、自定義數學運算宏的管理。
權利要求
1.一種GPS數字中頻信號的模擬方法,其特征在于,包括如下步驟步驟一,讀取用戶按照規(guī)定格式編寫的配置文件,提取系統(tǒng)配置參數,配置模擬的信號特征和系統(tǒng)工作所需輸入;步驟二,提取RINEX文件頭信息和所定義時間段內的全部衛(wèi)星的星歷數據組;步驟三,將步驟二中提取出的星歷數據進行編碼,形成二進制的導航電文碼流;步驟四,將步驟三中得到的電文碼流調制載波和擴頻碼,合成出中頻數字信號數據。
2.根據權利要求1所述的GPS數字中頻信號的模擬方法,其特征在于,所述系統(tǒng)配置參數包括=RINEX導航星歷文件路徑、接收機位置信息、所模擬的信號的接收起始時刻、時間跨度、以及星歷使用組數信息;其中,星歷文件路徑指定信號模擬所使用的RINEX導航星歷文件,使用該文件內的星歷作為電文編碼的來源;接收機位置信息指定了所模擬信號的接收位置;接收起始時刻、時間跨度、以及星歷使用組數信息描述了所模擬信號的時間信息和星歷更新信息;步驟一包括子步驟提取全部信息配置系統(tǒng)工作所需輸入和各模塊的運行參數。
3.根據權利要求1所述的GPS數字中頻信號的模擬方法,其特征在于,所述RINEX文件頭信息包含RINEX版本信息、觀測站位置信息、信號接收時段信息、電離層校正模型參數、 UTC時間信息等;其中,RINEX版本信息決定了文件的格式;電離層校正模型參數和UTC時間信息,這些參數也存在于衛(wèi)星播發(fā)的導航電文中,分別用于校正電離層延遲和在GPST時與UTC之間轉換;任何一類信息在文件頭中占據若干行,并用一個描述符區(qū)分,根據此描述符能夠從緩存的RINEX文件頭中搜索相應的信息并加以提取,在信號生成中使用。
4.根據權利要求1所述的GPS數字中頻信號的模擬方法,其特征在于,所述星歷數據組包含所模擬的信號起始時刻的衛(wèi)星星歷和在模擬時間跨度內出現更新的星歷,按照二維數組形式存儲,二維數組的每一列對應一個時間段的一組星歷數據,列長度為GPS衛(wèi)星總數; 每一行對應于同一顆衛(wèi)星,其數據結構包含標志位來標識該顆衛(wèi)星的星歷在對應時間段內是否有效。
5.根據權利要求1所述的GPS數字中頻信號的模擬方法,其特征在于,所述星歷數據編碼,是指根據所模擬的信號起始時刻和時間跨度,以及GPS官方文檔對電文格式的規(guī)定, 對每一顆衛(wèi)星的星歷進行編碼,形成二進制的導航電文碼流,同時計算出奇偶校驗位,最后將每顆衛(wèi)星的碼流都存儲于一個獨立的文件中。
6.根據權利要求1所述的GPS數字中頻信號的模擬方法,其特征在于,所述對導航電文調制載波和擴頻碼,合成出中頻數字信號數據,是指完成信號最后的模擬合成功能,其包括逐采樣點地計算信號樣值,即在每個采樣點處計算此時刻天線所接收到的信號由哪幾顆衛(wèi)星的信號合成,分別是怎樣的電文數值、擴頻碼相位和載波相位、頻率,并考慮天線對信號進行降頻時出現的頻率折疊、ADC的量化階數等因素,準確地模擬接收端的行為對信號的影響。
7.—種GPS數字中頻信號的模擬系統(tǒng),其特征在于,包括信號生成模塊、RINEX管理模塊和輔助模塊,其中,輔助模塊主要包含的子模塊有導航解算模塊、時間系統(tǒng)管理模塊、地理坐標轉換模塊、宏模塊。
8.根據權利要求7所述的模擬系統(tǒng),其特征在于,所述信號生成模塊提供以下功能的接口,包括系統(tǒng)配置信息的提??;調用RINEX管理模塊提取所需數量的星歷數據組,該星歷數據組對應所有GPS衛(wèi)星在兩小時有效期內的全部星歷,而該星歷組的組數由所模擬的信號的起始時間和時間跨度決定,在該時間跨度中出現多少次星歷更新,則需提取相應數量的星歷數據組;對星歷數據進行編碼和校驗位添加,得到導航電文碼流;對導航電文碼流調制載波和擴頻碼;高斯噪聲模擬;提供組合以上功能部件實現信號模擬的整體算法流程。
9.根據權利要求7所述的模擬系統(tǒng),其特征在于,所述RINEX管理模塊提供以下功能的接口,包括獲取用戶配置的RINEX星歷文件;解析文件名檢查文件可用性和提取文件名包含的信息,包括基站名稱縮寫、信號采集時間;緩存RINEX星歷文件的文件頭數據;提取 RINEX星歷文件的文件頭中的RINEX版本信息、基站位置信息、信號接收時段信息、電離層校正參數、UTC時間信息等;根據一個時間參考點提取一組星歷數據,該功能模塊由前述信號生成模塊中提取星歷數據組的接口反復調用,獲取所需數量的星歷數據組。
10.根據權利要求7所述的模擬系統(tǒng),其特征在于,所述導航解算模塊提供以下功能的接口,包括衛(wèi)星鐘差和鐘漂的計算;衛(wèi)星位置、速度信息的計算;衛(wèi)星、接收機距離、距離變化率的計算;衛(wèi)星相對于接收機的仰角和方位角的計算;所述時間系統(tǒng)管理模塊負責不同時間系統(tǒng)間的數據轉換;所述地理坐標轉換模塊負責不同地理坐標系統(tǒng)間坐標值的轉換;所述宏模塊負責完成系統(tǒng)的宏管理,包括全局常量的管理、自定義數學運算宏的管理。
全文摘要
本發(fā)明提供一種使用軟件方法模擬GPS數字中頻信號的方法及系統(tǒng),方法包括步驟一,讀取用戶按照規(guī)定格式編寫的配置文件,提取系統(tǒng)配置參數,配置模擬的信號特征和系統(tǒng)工作所需輸入;步驟二,提取RINEX文件頭信息和所定義時間段內的全部衛(wèi)星的星歷數據組;步驟三,將步驟二中提取出的星歷數據進行編碼,形成二進制的導航電文碼流;步驟四,將步驟三中得到的電文碼流調制載波和擴頻碼,合成出中頻數字信號數據。系統(tǒng)包括信號生成模塊、RINEX管理模塊和輔助模塊。本發(fā)明通過軟件方法模擬GPS數字中頻信號,作為GPS原型接收機系統(tǒng)及其子模塊測試激勵,簡化了測試中信號收集的問題,并快速滿足了測試人員對信號特征豐富性的需求。
文檔編號G01S19/13GK102375146SQ201110285920
公開日2012年3月14日 申請日期2011年9月23日 優(yōu)先權日2011年9月23日
發(fā)明者劉佩林, 應忍冬, 廖夢新 申請人:上海交通大學