GPS衛(wèi)星信號的捕獲_第1頁
GPS衛(wèi)星信號的捕獲_第2頁
GPS衛(wèi)星信號的捕獲_第3頁
GPS衛(wèi)星信號的捕獲_第4頁
GPS衛(wèi)星信號的捕獲_第5頁
已閱讀5頁,還剩119頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

5.1概

為了跟蹤和解碼GPS信號,首先要捕獲到GPS信號。將捕獲到的GPS信號的必要參數(shù)立刻傳遞給跟蹤過程,再通過跟蹤過程便可得到衛(wèi)星的導(dǎo)航電文。GPS衛(wèi)星處于高速運(yùn)動(dòng)中,因此,其頻率會產(chǎn)生多普勒頻移。載波頻率與C/A碼的多普勒頻移將在下面詳細(xì)講述。為覆蓋高速衛(wèi)星預(yù)期中的所有多普勒頻率范圍,捕獲方法覆蓋的頻率范圍必須在±10kHz之內(nèi)。一旦捕獲到GPS信號,立刻去測量兩個(gè)重要參數(shù):C/A碼的起始點(diǎn)和載波頻率(因?yàn)槎嗥绽疹l移而變化)。接收機(jī)接收到的一系列數(shù)據(jù)往往包含多個(gè)衛(wèi)星信號,每個(gè)信號具有不同的C/A碼的不同起始點(diǎn)和不同的多普勒頻率。

目前一頁\總數(shù)一百二十四頁\編于十三點(diǎn)針對某個(gè)特定的衛(wèi)星信號,捕獲過程就是要找到C/A碼的起始點(diǎn),并利用找到的起始點(diǎn)展開C/A碼頻譜,一旦復(fù)現(xiàn)了C/A碼的頻譜,輸出信號將變成連續(xù)波(ContinuousWave,CW),于是便得到其載波頻率。也就是說,捕獲過程就是要獲得輸入信號的C/A碼的起始點(diǎn)和載波頻率,然后傳遞給跟蹤過程。捕獲與跟蹤過程所用到的數(shù)據(jù)都是從原始的衛(wèi)星信號經(jīng)過下變頻器(即與中頻混頻)之后收集到的,其中頻(IF)為21.25MHz,采樣頻率為5MHz,信號的中心頻率為1.25MHz。這組數(shù)據(jù)來源于我們設(shè)計(jì)的衛(wèi)星信號接收裝置,但是用模擬仿真算法也可以產(chǎn)生類似的數(shù)據(jù),以驗(yàn)證本章介紹的衛(wèi)星信號的捕獲算法。

目前二頁\總數(shù)一百二十四頁\編于十三點(diǎn)5.2GPS衛(wèi)星信號的多普勒效應(yīng)GPS衛(wèi)星繞地球旋轉(zhuǎn)一周的時(shí)間是11h58min2.05s,從衛(wèi)星軌道的近似半徑可以求得衛(wèi)星的角速度dθ/dt和運(yùn)動(dòng)速度vs:

(5-1)目前三頁\總數(shù)一百二十四頁\編于十三點(diǎn)這里rs表衛(wèi)星軌道的平均半徑。我們知道,一個(gè)太陽日和一個(gè)恒星日之間相差3min55.91s,在這段時(shí)間里,衛(wèi)星大約運(yùn)行了914km(3874m/s×235.91s),對應(yīng)地球表面與衛(wèi)星的最高點(diǎn),相應(yīng)的角度近似為0.045rad(914/20192)或2.6°。如果衛(wèi)星接近地平線,相應(yīng)的角度為0.035rad或者2°。因此我們可以看出,對于地球表面的固定一點(diǎn),在每天的同一時(shí)間里,衛(wèi)星位置大約改變2°~2.6°。目前四頁\總數(shù)一百二十四頁\編于十三點(diǎn)如圖5-1所示,衛(wèi)星在位置S處,用戶在位置A處,相對用戶的衛(wèi)星角速度vd造成了多普勒頻移,其中vd值為:(5-2)根據(jù)衛(wèi)星軌道速度,取水平方向的最大值,

得到多普勒角速度的最大值為:

(5-3)

目前五頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-1衛(wèi)星運(yùn)動(dòng)引起的多普勒頻移

目前六頁\總數(shù)一百二十四頁\編于十三點(diǎn)這個(gè)值與高速航空衛(wèi)星的速度相等。由地面設(shè)施引起的多普勒頻移通常非常小,即使它直接相對衛(wèi)星運(yùn)動(dòng)引起了最大多普勒效應(yīng)。對由C/A碼調(diào)制過的頻率L1(f=1575.42MHz),最大的頻移為:

(5-4)

這里c是光速。

因而,

對于一固定觀測器來說,最大的多普勒頻移是±5kHz。

目前七頁\總數(shù)一百二十四頁\編于十三點(diǎn)如果地面GPS接收設(shè)備高速移動(dòng),就要考慮進(jìn)多普勒效應(yīng)了。要單獨(dú)產(chǎn)生一個(gè)±5kHz的頻率范圍,接收設(shè)備需以2078m/h的速度相對衛(wèi)星運(yùn)動(dòng),這個(gè)速度將包含最高速度的航空器。因而,在設(shè)計(jì)GPS接收機(jī)時(shí),如果接收機(jī)用在低速設(shè)備,則認(rèn)為載波頻率的多普勒頻移范圍在±5kHz;相反地,如果用在高速設(shè)備,就要合理假定其多普勒頻移的范圍在±10kHz。這些值對于確定捕獲過程的搜索頻率范圍是至關(guān)重要的。因此,就有了引言中我們提到的為覆蓋高速衛(wèi)星預(yù)期中的所有多普勒頻率范圍,捕獲方法覆蓋的頻率范圍必須在±10kHz之內(nèi)之說。

目前八頁\總數(shù)一百二十四頁\編于十三點(diǎn)由于C/A碼頻率非常低,所以C/A碼上的多普勒頻移也是非常小的。C/A碼的頻率是1.023MHz,比載波頻率低1540(1575.42/1.023)倍。C/A碼的多普勒頻率為:

(5-5)

如果接收機(jī)高速移動(dòng),這個(gè)值就得取雙倍,為6.4Hz,得到的這個(gè)值對跟蹤過程(BASS方法)來說是至關(guān)重要的,這點(diǎn)我們將在下一章討論。在BASS跟蹤過程中,輸入信號與本地產(chǎn)生數(shù)據(jù)必須要緊密對齊,而C/A碼的多普勒頻移可能造成輸入碼與本地生成碼的不對齊。

目前九頁\總數(shù)一百二十四頁\編于十三點(diǎn)在數(shù)字化衛(wèi)星信號中,如果數(shù)據(jù)用5MHz采樣(稱為采樣頻率),則每個(gè)采樣之間相隔200ns(稱為采樣時(shí)間)。在跟蹤過程中,我們期望本地生成信號與輸入信號未對齊的長度在半個(gè)采樣時(shí)間或近似100ns之內(nèi),若兩個(gè)信號之間相差超過這個(gè)長度,跟蹤將失鎖,即失去跟蹤靈敏性。C/A碼的基波時(shí)間為977.5ns或1/1.023×106s,它移動(dòng)一個(gè)周期需花費(fèi)156.3ms(1/6.4)。對這句話的理解是:多普勒頻移使C/A碼的頻率由1.023×106變?yōu)閇JP2]1.023×106+6.4,即每秒內(nèi)多變化了6.4個(gè)周期,則多變化一個(gè)周期的時(shí)間為(1/6.4)ms。目前十頁\總數(shù)一百二十四頁\編于十三點(diǎn)因此,它移動(dòng)100ns的數(shù)據(jù)長度,近似花費(fèi)16ms(100×156.3/977.5)。在高速導(dǎo)航器中,需每16ms選擇一批數(shù)據(jù),以保證輸入信號與本地生成碼更好地匹配。但是由于輸入信號中有噪聲,用1ms的數(shù)據(jù)可能不能非常精確地匹配,因而可以拓寬輸入信號的調(diào)整時(shí)間,每20ms選擇一批輸入信號。

對一個(gè)低速導(dǎo)航器來說,這個(gè)時(shí)間可拓寬到40ms。

目前十一頁\總數(shù)一百二十四頁\編于十三點(diǎn)從以上討論我們知道,輸入信號的調(diào)整取決于采樣頻率。采樣頻率高將縮短調(diào)整時(shí)間,因?yàn)椴蓸訒r(shí)間變短,在半個(gè)周期內(nèi)匹配輸入碼與本地生成碼的時(shí)間變短。如果輸入信號的強(qiáng)弱和跟蹤靈敏度不成問題,則輸入信號的調(diào)整時(shí)間可以拓寬。然而,輸入信號與本地生成信號相離必須在半個(gè)基波或488.75ns(977.5/2)之內(nèi),這個(gè)時(shí)間看做是輸入信號與本地生成信號相離允許的最大值。C/A碼的多普勒頻率是6.4Hz,調(diào)整時(shí)間可以拓寬到78.15ms(1/2×6.4)。

目前十二頁\總數(shù)一百二十四頁\編于十三點(diǎn)5.3GPS衛(wèi)星信號捕獲的考慮

5.3.1捕獲時(shí)的最大電文長度

C/A碼長1ms,那么至少要用1ms的電文來捕獲,甚至只用1ms的電文來捕獲時(shí),都可能發(fā)生導(dǎo)航電文相位偏移。如果電文中有數(shù)據(jù)偏移,電文的下一個(gè)1ms將不會含有偏移。因此,為了保證捕獲電文中不含有數(shù)據(jù)偏移,需要用兩組連續(xù)的電文來捕獲,這個(gè)電文最大長度是10ms。如果使用兩組連續(xù)的10ms電文來捕獲,

就保證了在某一組電文中不含相位偏移。

目前十三頁\總數(shù)一百二十四頁\編于十三點(diǎn)限制電文長度的第二個(gè)因素是C/A碼的多普勒效應(yīng)。如果理想相關(guān)峰值是1,當(dāng)C/A碼超前或滯后1/2碼時(shí),相關(guān)的峰值將降為0.5,對應(yīng)地,幅值下降6dB。如上節(jié)所討論的,假定未對準(zhǔn)的C/A碼允許在半個(gè)基波(0.489μs)內(nèi),基波頻率是1.023MHz,C/A碼上預(yù)期的最大多普勒頻移是6.4Hz,那么兩個(gè)相差6.4Hz的頻率交換半個(gè)基波需要78ms(1/2×6.4),這個(gè)數(shù)據(jù)遠(yuǎn)大于10ms。目前十四頁\總數(shù)一百二十四頁\編于十三點(diǎn)5.3.2捕獲中的頻率步長捕獲時(shí)的另一個(gè)考慮因素是捕獲中剝離載波所需的頻率。在前文曾提過,需被覆蓋的多普勒頻率范圍是±10kHz,決定覆蓋這20kHz范圍的步進(jìn)頻率非常重要。步進(jìn)頻率的大小與捕獲中的電文長度緊密相關(guān)。如果輸入信號與本地混頻信號相距1個(gè)周期,它們兩者沒有相關(guān)性;如果兩者小于1個(gè)周期,則它們有部分相關(guān)性。隨意選取兩個(gè)信號允許的最大頻率相離是0.5個(gè)周期,如果電文記錄長度為1ms,一個(gè)1kHz的信號將在1ms內(nèi)變換一個(gè)周期,為了保持1ms內(nèi)的最大頻率相離在0.5個(gè)周期,步進(jìn)頻率須為1kHz。在這種情況下,在輸入信號與卷積信號之間最大限度的頻率相離是500Hz/s或0.5Hz/ms,且輸入信號剛好在兩個(gè)頻率點(diǎn)之間。如果電文記錄長度為10ms,100Hz的搜索步進(jìn)頻率就可以滿足要求??创@個(gè)問題的一個(gè)簡單方法是頻率相離與電文長度成反向關(guān)系。

目前十五頁\總數(shù)一百二十四頁\編于十三點(diǎn)由以上的討論可以得出如下結(jié)論:當(dāng)捕獲輸入電文為1ms長時(shí),步進(jìn)頻率是1kHz;當(dāng)電文為10ms時(shí),步進(jìn)頻率是100Hz。從這個(gè)簡單的討論可以明顯看出,捕獲中的操作執(zhí)行次數(shù)與總的數(shù)據(jù)點(diǎn)并不是成線性比例關(guān)系,當(dāng)電文長度從1ms上升到10ms時(shí),電文長度上升10倍,頻率點(diǎn)數(shù)目也上升了10倍,捕獲所需的操作次數(shù)上升了不止10倍。因此,實(shí)際捕獲時(shí),如果強(qiáng)調(diào)捕獲的速度的話,電文長度需保持在最小值。執(zhí)行次數(shù)的增加,取決于實(shí)際捕獲所用的方法,下面將討論具體的捕獲方法。

目前十六頁\總數(shù)一百二十四頁\編于十三點(diǎn)5.4GPS衛(wèi)星信號的捕獲方法5.4.1傳統(tǒng)捕獲方法捕獲的基本思想就是展開輸入信號,找到載波頻率。如果相位正確的C/A碼與輸入信號相乘,輸入信號將如圖5-2中所示變成一個(gè)連續(xù)信號。圖5-2中最上端是輸入信號,這個(gè)信號是C/A碼編碼的射頻信號相位,注意到射頻信號與C/A碼是任意選擇的,它們并不代表衛(wèi)星傳輸過來的真正的信號。中間的圖表示C/A碼,其值在±1之間。最下端的圖是連續(xù)信號,代表輸入信號與C/A碼的乘積,其對應(yīng)的頻譜不再是擴(kuò)頻,而是一個(gè)連續(xù)信號,這個(gè)過程有時(shí)稱做輸入信號的C/A碼剝離。

目前十七頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-2C/A編碼的輸入信號與本地C/A碼相乘

目前十八頁\總數(shù)一百二十四頁\編于十三點(diǎn)一旦輸入變成連續(xù)信號,通過傅立葉變換可以知曉其頻率。如果輸入電文長是1ms,則傅立葉變換的頻率分辨率為1kHz??梢栽O(shè)置一個(gè)閾值,即一個(gè)門限來判斷一個(gè)頻率分量是否足夠大。高于這個(gè)門限的最高頻率分量就是我們要找的頻率。如果用5MHz使輸入信號數(shù)字化,1ms的電文將含有5000個(gè)數(shù)據(jù)點(diǎn),一個(gè)5000點(diǎn)的FFT(快速傅立葉變換)將產(chǎn)生5000個(gè)頻率分量。然而,5000個(gè)頻率分量中只有前2500個(gè)頻率分量包含有用信息,后2500個(gè)是前2500個(gè)頻率分量的復(fù)共軛。頻率分辨率是1kHz,因此,F(xiàn)FT覆蓋的總頻率范圍是2.5MHz,是采樣頻率的一半。但我們感興趣的頻率范圍只有20kHz,而非2.5MHz,因此,為了節(jié)省計(jì)算時(shí)間,

可以用DFT(離散傅立葉)方法,

只計(jì)算相隔1kHz的21個(gè)頻率分量。

目前十九頁\總數(shù)一百二十四頁\編于十三點(diǎn)由于輸入信號中C/A碼的起始點(diǎn)還未知,因此,必須先找到這個(gè)點(diǎn)。為了找到這個(gè)點(diǎn),我們產(chǎn)生本地的一個(gè)C/A碼,將其數(shù)字化為5000個(gè)點(diǎn),且與輸入信號點(diǎn)對點(diǎn)相乘,對此乘積的結(jié)果進(jìn)行FFT或DFT,可以找到其頻率。為了搜索1ms的電文,輸入電文與本地產(chǎn)生數(shù)字化的C/A碼必須彼此相對移動(dòng)5000次。如果使用FFT,需操作5000次,每次操作包含5000個(gè)點(diǎn)對點(diǎn)的乘積和一個(gè)5000點(diǎn)的FFT。由于只有2500個(gè)頻率分量提供信息,其余2500個(gè)分量提供的是多余的信息,因此,輸出的5000點(diǎn)數(shù)據(jù)每個(gè)含有2500個(gè)頻率分量,這樣,在頻域共有1.25×107(5000×2500)個(gè)輸出。在這1.25×107個(gè)輸出中最高幅值如果大于預(yù)先設(shè)定的門限值,則該分量就是期望值。在如此多的數(shù)據(jù)中尋找最高頻率分量也是非常費(fèi)時(shí)的。由于在期望的20kHz的FFT輸出中,只有21個(gè)頻率分量是我們感興趣的,總輸出可以降低到105000(5000×21)個(gè)。通過這種方法,可以用時(shí)間分辨率為200ns(1/5MHz)和1kHz的頻率分辨率找出C/A碼的起始點(diǎn)。

目前二十頁\總數(shù)一百二十四頁\編于十三點(diǎn)如果使用10ms的電文,因?yàn)樾盘栔恍枰矸e1ms,因此需要5000次操作。每次操作包含50000個(gè)點(diǎn)對點(diǎn)乘積和50000次FFT,總共有1.25×108(5000×25000)個(gè)輸出結(jié)果。如果在預(yù)期的20kHz范圍內(nèi)只考慮201個(gè)頻率分量,需從1005000(5000×201)個(gè)結(jié)果中挑選,因此可以看出,從1ms到10ms操作的增長是非常顯著的。

尋找C/A碼起始點(diǎn)的時(shí)間分辨率仍是200ns,

但頻率分辨率提高到了100Hz。

目前二十一頁\總數(shù)一百二十四頁\編于十三點(diǎn)傳統(tǒng)捕獲方法是由硬件實(shí)現(xiàn)的,硬件主要用以執(zhí)行以上所講的處理。假定輸入信號用5MHz數(shù)字化,一個(gè)可行方法是產(chǎn)生5000點(diǎn)的數(shù)字C/A碼,并與輸入信號點(diǎn)對點(diǎn)相乘,每200ns執(zhí)行一次5000點(diǎn)相乘,每200ns對一個(gè)5000點(diǎn)相乘的結(jié)果進(jìn)行FFT頻率分析,圖5-3示意了該過程。如果C/A碼與輸入電文匹配,F(xiàn)FT結(jié)果中將含有一個(gè)強(qiáng)分量,如前所述,這個(gè)方法將產(chǎn)生1.25×107(5000×2500)個(gè)輸出結(jié)果,然而,只有在±10kHz頻率范圍內(nèi)的輸出結(jié)果中挑選,這個(gè)約束使得排序過程變簡單了。

目前二十二頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-3用C/A碼和頻率分析進(jìn)行捕獲

目前二十三頁\總數(shù)一百二十四頁\編于十三點(diǎn)完成這個(gè)操作的另一個(gè)方法是通過離散傅立葉變換(DFT),將本地產(chǎn)生碼變換成含有C/A碼和射頻信號的電文。射頻是復(fù)數(shù),可用ejwt表示。本地碼信號由射頻與C/A碼乘積獲得,因此,本地碼也是復(fù)數(shù)。假定L1頻率(1575.42MHz)被轉(zhuǎn)換到21.25MHz,并用5MHz數(shù)字化,輸出頻率將會是1.25MHz;同時(shí)假定捕獲過程以1kHz的步長搜索1250±10kHz的頻率范圍,且總共有21個(gè)頻率分量,本地碼lsi可用下式表示:

(5-6)目前二十四頁\總數(shù)一百二十四頁\編于十三點(diǎn)其中,s表示衛(wèi)星的編號;i=1,2,3,…,21;Cs表示編號為s的衛(wèi)星的C/A碼;fi=1250-10,1250-9,1250-8,…,1250+10kHz。本地信號須用5MHz數(shù)字化,產(chǎn)生5000個(gè)數(shù)據(jù)點(diǎn),這21組數(shù)據(jù)代表相距1kHz的21個(gè)頻率。這些數(shù)據(jù)與輸入信號有關(guān),如果本地產(chǎn)生信號包含正確的C/A碼和正確的頻率分量,當(dāng)遇到正確的C/A碼相位時(shí),輸出結(jié)果將會特別高。目前二十五頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-4通過本地產(chǎn)生C/A碼和射頻碼捕獲

目前二十六頁\總數(shù)一百二十四頁\編于十三點(diǎn)5.4.2循環(huán)相關(guān)捕獲方法1.循環(huán)卷積與循環(huán)相關(guān)在講述循環(huán)相關(guān)捕獲方法之前,首先簡單介紹執(zhí)行相關(guān)操作的主要數(shù)學(xué)運(yùn)算。如果一個(gè)輸入信號經(jīng)過一個(gè)線性時(shí)不變系統(tǒng),可由卷積運(yùn)算得到時(shí)域結(jié)果,也可由傅立葉變換得到頻域結(jié)果。如果系統(tǒng)脈沖響應(yīng)是h(t),輸入信號x(t)可通過卷積產(chǎn)生如下的輸出y(t):(5-7)目前二十七頁\總數(shù)一百二十四頁\編于十三點(diǎn)通過傅立葉變換,y(t)的頻域響應(yīng)為:

(5-8)令變量t-τ=u,那么

(5-9)目前二十八頁\總數(shù)一百二十四頁\編于十三點(diǎn)為得到時(shí)域輸出,需對Y(f)進(jìn)行反傅立葉變換,

結(jié)果可寫成:

(5-10)

此處,*表示卷積,F(xiàn)-1表示傅立葉反變換??梢园l(fā)現(xiàn)一個(gè)簡單的關(guān)系,時(shí)域的卷積等效于頻域的傅立葉變換,或者說頻域卷積運(yùn)算等效于時(shí)域傅立葉變換,

這兩種關(guān)系可以寫成:

(5-11)

通常稱其為傅立葉變換中卷積的二元性。

目前二十九頁\總數(shù)一百二十四頁\編于十三點(diǎn)這個(gè)思想還可用于離散系統(tǒng)。與連續(xù)時(shí)域表達(dá)式不同,響應(yīng)y(n)可以表達(dá)成:

(5-12)此處,x(m)表示輸入信號,h(n-m)是離散時(shí)域系統(tǒng)響應(yīng)。注意到,該式子中,h(n-m)中的時(shí)移是循環(huán)的,因?yàn)殡x散操作是周期性的。對上式進(jìn)行離散傅立葉變換(DFT),結(jié)果為:(5-13)目前三十頁\總數(shù)一百二十四頁\編于十三點(diǎn)然而,捕獲時(shí)用到的并不是卷積運(yùn)算,而是相關(guān)運(yùn)算,它與卷積運(yùn)算不同。x(n)與h(n)之間的相關(guān)表示為:

(5-14)上式與式(5-12)的惟一不同點(diǎn)就在于h(n+m)中的m前面的符號不同。h(n)是另一信號,而非線性系統(tǒng)的脈沖響應(yīng)。z(n)的DFT變換為:(5-15)

目前三十一頁\總數(shù)一百二十四頁\編于十三點(diǎn)這里X-1(k)表示離散傅立葉反變換。上式還可寫成:

(5-16)

如果x(n)是實(shí)數(shù),x(n)*=x(n),其中*表示復(fù)共軛。有了這個(gè)關(guān)系,Z(k)的幅值為:(5-17)利用上式的這個(gè)關(guān)系,可得到輸入信號與本地產(chǎn)生信號的相關(guān)性。如前所述,這個(gè)式子提供了循環(huán)相關(guān)性。

目前三十二頁\總數(shù)一百二十四頁\編于十三點(diǎn)

2.循環(huán)相關(guān)捕獲的方法上面討論了循環(huán)相關(guān)的運(yùn)算法則,利用這些運(yùn)算法則就可以執(zhí)行捕獲了。然而實(shí)際捕獲中,輸入電文不是連續(xù)到達(dá)接收機(jī)的,因此循環(huán)相關(guān)操作適合一組或一批電文。輸入電文經(jīng)過5MHz的ADC(模擬/數(shù)字轉(zhuǎn)換器)采樣存儲在存儲器中,只有1ms的輸入電文用來尋找C/A碼的起始點(diǎn),其搜索頻率分辨率即步進(jìn)頻率是1MHz。

目前三十三頁\總數(shù)一百二十四頁\編于十三點(diǎn)捕獲輸入電文,需經(jīng)過以下幾個(gè)步驟:(1)對1ms的輸入電文x(n)進(jìn)行快速傅立葉變換FFT,將輸入轉(zhuǎn)換到頻域,值為X(k),這里,n=k=0,1,2,…,4999。(2)取X(k)的復(fù)共軛,值為X(k)*。(3)利用式(5-6),產(chǎn)生21個(gè)本地碼lsi(n)(i=1,2,…,21),本地碼包含了衛(wèi)星s的C/A碼和一個(gè)復(fù)射頻信號的乘積,然后用5MHz采樣本地碼,本地碼的頻率fi相距1MHz。(4)對lsi(n)進(jìn)行FFT,變換到頻域中,值為Lsi(k)。(5)將X(k)*與Lsi(k)點(diǎn)對點(diǎn)相乘,結(jié)果為Rsi(k)。目前三十四頁\總數(shù)一百二十四頁\編于十三點(diǎn)(6)對Rsi(k)進(jìn)行反傅立葉變換,變換到時(shí)域中的值為rsi(n),得到其絕對值|rsi(n)|,總共有105000(5000×21)個(gè)|rsi(n)|。(7)在輸入電文200ns的時(shí)間分辨率和載波頻率為1kHz分辨率的條件下,|rsi(n)|最大值中的第n位和第i個(gè)載波頻率芯給出了C/A碼的初始點(diǎn)。目前三十五頁\總數(shù)一百二十四頁\編于十三點(diǎn)以上的操作可由圖5-5說明。圖5-5所示結(jié)果是時(shí)域中的,且只給出21個(gè)本地碼的其中一個(gè)。可認(rèn)為輸入電文與本地電文位于兩個(gè)圓柱體表面,為了去匹配輸入電文,本地碼要旋轉(zhuǎn)5000次。換句話說,一個(gè)圓柱體相對于另一個(gè)圓柱體旋轉(zhuǎn)5000次。在每一步,5000個(gè)輸入電文與5000個(gè)本地電文點(diǎn)對點(diǎn)相乘,相乘結(jié)果加到一起。包含本地碼與輸入碼所有可能的乘積需5000步,乘積中最高幅值將被記錄下。最高幅值如果同時(shí)大于預(yù)置門限值的話,就是我們的期望值。

目前三十六頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-5循環(huán)相關(guān)捕獲示意圖

目前三十七頁\總數(shù)一百二十四頁\編于十三點(diǎn)

3.循環(huán)相關(guān)捕獲的改進(jìn)方法循環(huán)相關(guān)捕獲的改進(jìn)方法與上面介紹的捕獲方法的惟一區(qū)別就是傅立葉變換FFT的長度減小了一半。上一節(jié)的循環(huán)相關(guān)方法的第(3)步產(chǎn)生本地碼lsi(n),由于lsi(n)是復(fù)量,故其頻譜是不對稱的,如圖5-6所示。目前三十八頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-6本地產(chǎn)生信號頻譜圖

目前三十九頁\總數(shù)一百二十四頁\編于十三點(diǎn)從圖5-6中顯而易見,其信息包含在前半頻譜圖中,后半部分只含有非常少量的信息,從而,循環(huán)相關(guān)的捕獲方法可以做如下修改:(1)對1ms的輸入電文x(n)進(jìn)行快速傅立葉變換FFT,將輸入轉(zhuǎn)換到頻域,值為X(k),這里,n=k=0,1,2,…,4999。(2)取X(k)的前2500(k=0,1,2,…,4999)個(gè)值的復(fù)共軛,值為X(k)*。(3)利用式(5-6),產(chǎn)生21個(gè)本地碼lsi(n)(i=1,2,…,21),每個(gè)lsi(n)有5000個(gè)數(shù)據(jù)點(diǎn)。目前四十頁\總數(shù)一百二十四頁\編于十三點(diǎn)(4)對lsi(n)進(jìn)行FFT,變換到頻域中,值為Lsi(k)。(5)Lsi(k)的后半部只含有少量信息,因此,取前半部分的Lsi(k),與X(k)*點(diǎn)對點(diǎn)相乘,結(jié)果為Rsi(k)(k=0,1,2,…,4999)。(6)對Rsi(k)進(jìn)行反傅立葉變換,變換到時(shí)域中的值為rsi(n),并求出其絕對值|rsi(n)|,總共有52500(2500×21)個(gè)|rsi(n)|。目前四十一頁\總數(shù)一百二十四頁\編于十三點(diǎn)(7)|rsi(n)|的最大值如果大于預(yù)置門限值的話就是我們的期望值。第i個(gè)頻率就是分辨率1kHz的載波頻率,第n位就是分辨率400ns的C/A碼的初始點(diǎn)。(8)由于這種方法尋找C/A碼起始點(diǎn)的時(shí)間分辨率是400ns,可以通過比較第n位的幅值與(n-1)和(n+1)位幅值,將分辨率提高到200ns。該方法中,從第(5)步到第(7)步,只有2500個(gè)數(shù)據(jù)點(diǎn)的操作,而非5000個(gè)。第(7)步挑選最大幅值的過程由于只用到一半的輸出而簡化了。因此這種方法節(jié)省了操作時(shí)間。仿真結(jié)果表明,這種方法的信噪比略低于常規(guī)循環(huán)相關(guān)捕獲方法1.1dB,這可能是由于丟棄頻域內(nèi)后半部分信號引起的。目前四十二頁\總數(shù)一百二十四頁\編于十三點(diǎn)5.4.3延遲與累積捕獲方法基于延遲與累積的捕獲方法是為了去除輸入信號中的頻率信息。去除了頻率信息,只需用本地C/A產(chǎn)生碼去尋找輸入信號C/A碼的起始點(diǎn),一旦找到其起始點(diǎn),就可由FFT或DFT得到其頻率。從理論角度看,這是個(gè)非常吸引人的方法,然而,運(yùn)用到實(shí)際中處理GPS信號,還需進(jìn)一步研究。這種方法討論如下。

首先,我們假定輸入信號s(t)是復(fù)量,因此表示為:

(5-18)

目前四十三頁\總數(shù)一百二十四頁\編于十三點(diǎn)這里,Cs(t)表示衛(wèi)星s的C/A碼。

輸入信號的延遲表達(dá)式為:

(5-19)

τ表示延遲時(shí)間,s(t)與延遲表達(dá)式的復(fù)共軛的乘積為:

(5-20)這里的

(5-21)目前四十四頁\總數(shù)一百二十四頁\編于十三點(diǎn)戈?duì)柕麓a(GoldCode)與其延遲的乘積可以看做是一個(gè)“新碼”。這個(gè)“新碼”也屬于戈?duì)柕麓a家族。仿真結(jié)果表明,利用其自相關(guān)和交叉相關(guān)可找到“新碼”的起始點(diǎn)?!靶麓a”的起始點(diǎn)與C/A碼的起始點(diǎn)相同。式(5-20)有意思的地方在于它的頻率自變性,即頻率變化不受其他變量支配,因?yàn)閒和t都是常量,因而ej2πfτ項(xiàng)是常量,因此,只需搜索“新碼”的起始點(diǎn)。盡管這種方法非常吸引人,但它要求輸入信號必須是復(fù)量,由于收集到的輸入電文都是實(shí)數(shù),因而必須將它們轉(zhuǎn)化成復(fù)數(shù)。目前四十五頁\總數(shù)一百二十四頁\編于十三點(diǎn)為避免將實(shí)數(shù)信號轉(zhuǎn)化成復(fù)數(shù)信號的額外計(jì)算,

我們可以采用如下方法。

輸入信號為

這里,Cs(t)表示衛(wèi)星s的C/A碼。輸入信號的延遲表達(dá)式為:

(5-23)s(t)與延遲s(t-τ)的乘積是:(5-24)目前四十六頁\總數(shù)一百二十四頁\編于十三點(diǎn)

Cn(t)是式(5-21)的定義。式(5-24)含有兩項(xiàng):一個(gè)直流項(xiàng)和一個(gè)高頻項(xiàng)。通常,可以濾去高頻。為使式(5-24)可用,|cos(2πfτ)|必須接近單位1。理論上,很難做到這點(diǎn),因?yàn)轭l率f未知,然而,由于頻率在1250±10kHz之內(nèi),選擇一個(gè)延遲時(shí)間來滿足這個(gè)條件是完全可能的。例如,可選擇2×π×1250×103τ=π,如此τ=0.4×10-6s=400ns。輸入電文用5MHz數(shù)字化,采樣時(shí)間是200ns(1/5MHz)。在這個(gè)條件下,|cos(2πfτ)|=|cos(π)|=1。如果頻率偏離10kHz,其相關(guān)值|cos(2πfτ)|=|cos(2π×1260×103×400×10-6)|=0.9997,非常接近單位1。目前四十七頁\總數(shù)一百二十四頁\編于十三點(diǎn)因此這個(gè)方法可以應(yīng)用到實(shí)際電文中,惟一的約束是不可以像式(5-20)中那樣任意選擇延遲時(shí)間,但可以選擇延遲不是很長的0.4μs的倍數(shù),例如τ=1.6μs,當(dāng)頻率偏移±10kHz時(shí),|cos(2πfτ)|=0.995??梢钥闯?,如果對中心頻率1250kHz用一個(gè)長延遲的話,|cos(2πfτ)|會下降很快。如果延遲過長,|cos(2πfτ)|可能不再接近1。這個(gè)方法的問題是當(dāng)兩個(gè)帶噪聲的信號相乘時(shí),噪底會上升,搜索1ms的電文將捕獲不到某個(gè)衛(wèi)星。目前四十八頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-7相位偏移對延遲和累積捕獲方法的影響(a)無相位偏移;(b)相位偏移兩位

目前四十九頁\總數(shù)一百二十四頁\編于十三點(diǎn)5.4.4長記錄電文的相干處理]尋找弱信號的方法通常是增加捕獲的電文長度,這樣做的好處是提高了信噪比,對此的一個(gè)簡單解釋是,長2ms的電文的FFT產(chǎn)生500Hz的頻率分辨率,而1ms的電文的FFT產(chǎn)生1kHz的頻率分辨率。由于信號在頻譜展開后帶寬窄,因而信號強(qiáng)度并不會因?yàn)橄鄬φ念l率分辨率而降低,降低頻率分辨率帶寬反而將噪聲降低了一半,因此,信噪比上升了3dB。目前五十頁\總數(shù)一百二十四頁\編于十三點(diǎn)長記錄電文相干處理的思想是利用很少的數(shù)據(jù)點(diǎn)執(zhí)行快速傅立葉變換(FFT)。利用10ms的電文(或50000個(gè)數(shù)據(jù)點(diǎn))來說明這個(gè)思想。電文的中心頻率是1.25MHz,輸入信號將被轉(zhuǎn)換成一個(gè)基帶信號和一個(gè)2.5MHz的高頻帶。如果將高頻帶用濾波器濾去,將只需處理基帶信號。假定此時(shí)已經(jīng)濾去高頻信號,基帶信號是帶C/A碼的輸入的下變頻信號,將這個(gè)信號與C/A碼點(diǎn)對點(diǎn)相乘。如果到達(dá)了C/A碼的正確相位,輸出將變成連續(xù)信號,由多普勒效應(yīng)引起的最大頻率范圍在±10kHz。既然這個(gè)信號的帶寬是20kHz,我們就可以用其2.5倍的頻率來采樣,即用50kHz采樣該信號。10ms的電文在此采樣頻率下只產(chǎn)生500個(gè)數(shù)據(jù)點(diǎn)。然而,我們是用5MHz采樣的,產(chǎn)生了50000個(gè)數(shù)據(jù)點(diǎn)。我們可以每100個(gè)數(shù)據(jù)點(diǎn)取一次平均值作為一個(gè)新的數(shù)據(jù)點(diǎn),這個(gè)取均值的過程等價(jià)于一個(gè)低通濾波器,因此,它去除了乘法運(yùn)算后的1.25MHz連續(xù)信號中的高頻分量,同樣,

也去除了接收機(jī)收集到的信號中含有的噪聲信號。

目前五十一頁\總數(shù)一百二十四頁\編于十三點(diǎn)這個(gè)方法可以用如下10ms的電文的例子來說明:(1)將10ms長的輸入信號與本地生成1.25MHz的復(fù)合連續(xù)信號相乘,并用5MHz采樣。因?yàn)檩敵鲎畲箢l率是10kHz,我們可以將此時(shí)的輸出稱做低頻輸出。頻率近似為2.5MHz的高頻分量將被濾波除去,因而可以忽略它。這時(shí),得到了50000個(gè)數(shù)據(jù)點(diǎn)。(2)將這些輸出數(shù)據(jù)與10個(gè)C/A碼點(diǎn)對點(diǎn)相乘,總共得到50000個(gè)數(shù)據(jù)點(diǎn)。(3)將每100個(gè)相鄰數(shù)據(jù)點(diǎn)取其均值,變成一個(gè)新的數(shù)據(jù)點(diǎn),這個(gè)過程濾去了頻率近似為2.5MHz的高頻分量。

目前五十二頁\總數(shù)一百二十四頁\編于十三點(diǎn)(4)對新產(chǎn)生的500個(gè)數(shù)據(jù)點(diǎn)進(jìn)行FFT變換,找到頻率內(nèi)的最高輸出,這個(gè)操作產(chǎn)生的頻率輸出中,只有250個(gè)輸出有用。(5)將本地生長碼相對低頻輸出移動(dòng)一個(gè)數(shù)據(jù)點(diǎn),然后重復(fù)步驟(3)和(4)。由于每毫秒產(chǎn)生一次C/A碼,我們需要操作5000次,而非50000次。(6)在頻域中,總共得到1.250×106(250×5000)個(gè)輸出,大于預(yù)置門限值的最高幅值就是期望值,從這個(gè)值可以得到C/A碼的起始點(diǎn)和多普勒頻移。由此得到的頻率分辨率是100Hz。盡管上述方法簡單易懂,但循環(huán)相關(guān)的捕獲方法也可以用很少的操作來達(dá)到同樣的目的。

目前五十三頁\總數(shù)一百二十四頁\編于十三點(diǎn)5.4.5精頻估計(jì)的基本概念從1ms電文中得到的頻率分辨率大約是1kHz,對跟蹤環(huán)來說,這個(gè)值太粗糙了。適合跟蹤過程的頻率必須在幾十Hz之內(nèi)。通常,跟蹤環(huán)的頻寬是幾Hz,用DFT(或FFT)計(jì)算精細(xì)頻率(FineFrequency)是不可取的。因?yàn)闉榱说玫?0Hz的分辨率,需100ms的電文記錄,如果每毫秒有5000個(gè)數(shù)據(jù)點(diǎn),100ms就有500000個(gè)數(shù)據(jù)點(diǎn),其FFT操作將是非常費(fèi)時(shí)的。另外,100ms電文的相位偏移的概率也相對高。

目前五十四頁\總數(shù)一百二十四頁\編于十三點(diǎn)得到適合跟蹤環(huán)的精細(xì)頻率分辨率(FineFrequencyResolution)(以后簡稱精頻)的方法是通過相位關(guān)系。一旦輸入信號中剝離了C/A碼,輸入就將變成連續(xù)波形。如果在m時(shí)刻,1ms電文中最高頻率分量是Xm(k)(k表示輸入信號的頻率分量),則可由DFT輸出得到輸入信號的初始相位θm(k):

(5-25)目前五十五頁\總數(shù)一百二十四頁\編于十三點(diǎn)Im和Re分別表示虛部和實(shí)部。讓我們假定在m時(shí)刻之后很短時(shí)間的n時(shí)刻,1ms電文的DFT分量Xn(k)也是最強(qiáng)分量,因?yàn)檩斎敕至吭诤芏虝r(shí)間內(nèi)不會迅速變化。n時(shí)刻輸入信號的初始相位角和頻率分量k為:(5-26)這兩個(gè)相位角可用來計(jì)算精頻:

(5-27)目前五十六頁\總數(shù)一百二十四頁\編于十三點(diǎn)這個(gè)方程式給出了一個(gè)比從DFT得到的要精確得多的頻率分辨率。為了保持其值的惟一性,θn(k)-θm(k)的相位差必須小于2π。如果相位差是最大值2π,帶寬就是1/(n-m)。這里的(n-m)是兩組連續(xù)電文之間的延時(shí)。目前五十七頁\總數(shù)一百二十四頁\編于十三點(diǎn)5.4.6消除精頻測量中的不確定性盡管求解精頻的基本方法都是基于式(5-27),但是具體實(shí)現(xiàn)它,則有幾種略微相異的方法。如果每毫秒取DFT的第k個(gè)分量,頻率分辨率是1kHz,精頻測量的不確定寬度也是1kHz。在圖5-8(a)中,給出了5個(gè)頻率分量,它們之間相隔1kHz。如果輸入信號如圖5-8(b)所示落在了兩個(gè)頻率分量之間,由于系統(tǒng)中噪聲的影響,

將不能確定其相位。

目前五十八頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-8頻域內(nèi)的不確定區(qū)域(a)

頻率相離;(b)

輸入信號

目前五十九頁\總數(shù)一百二十四頁\編于十三點(diǎn)為了去除這種不確定性,有兩個(gè)解決方法。第一個(gè)方法是加速DFT操作過程。如果每0.5ms執(zhí)行一次DFT操作,不確定帶寬是2kHz。在頻率分辨率為1kHz和不確定帶寬為2kHz的條件下,確定一個(gè)精細(xì)頻率就不存在不確定的問題了。但是這種方法使DFT操作增加了一倍。解決這個(gè)問題的第二個(gè)方法是,如果輸入是連續(xù)信號的話,采用一種幅值比較方案,而非加快DFT操作速度。如圖5-8(b)所示,輸入信號落在兩個(gè)頻率槽之間。假定X(k)的幅值略高于X(k-1),將X(k)代入式(5-26)和式(5-27),得到精細(xì)分辨率。輸入頻率與X(k)的值相差接近500Hz。目前六十頁\總數(shù)一百二十四頁\編于十三點(diǎn)正確的結(jié)果是輸入頻率比X(k)低500Hz,由于噪聲的存在,我們可能錯(cuò)誤地認(rèn)定是輸入頻率比X(k)高了500Hz。然而,輸入頻率X(k)和X(k-1)是非常接近的,且它們比X(k-1)要強(qiáng)得多。因此,如果輸入最高頻率槽是X(k),且相位計(jì)算在不確定區(qū)域范圍內(nèi),這個(gè)區(qū)域接近于X(k)與X(k-1)的中心或者X(k)與X(k+1)的中心,這時(shí)就比較X(k-1)與X(k+1)兩者之間的相位。如果X(k-1)大于X(k+1),輸入頻率就是低于X(k)的;否則,就認(rèn)為輸入頻率高于X(k)。如此,精頻的準(zhǔn)確性由相位決定,但是頻率差值的符號由最高頻率分量鄰近的兩個(gè)頻率分量的幅值決定。目前六十一頁\總數(shù)一百二十四頁\編于十三點(diǎn)然而,問題比這要略為復(fù)雜一些,因?yàn)閮山M連續(xù)數(shù)據(jù)間可能由于導(dǎo)航電文引起了180°的相位偏移。如果發(fā)生了這種情況,輸入信號就不能被看做連續(xù)信號對待了。這種可能性使不確定寬度延遲了1ms,且限制在250Hz。頻率相距±250Hz對應(yīng)的相位角是±π/2。如果頻率相距+250Hz,相位角是+π/2,然而導(dǎo)航電文引起的相位偏移π將使相位角變成+π/2(+π/2-π),相應(yīng)地引起-250kHz的頻率變換。如果在尋找精頻時(shí)不考慮相位偏移,這個(gè)結(jié)果將變成500kHz。目前六十二頁\總數(shù)一百二十四頁\編于十三點(diǎn)為了避免這個(gè)問題,頻率不確定的最大值必須小于250Hz。如果頻率最大相差是±200Hz(這個(gè)值是實(shí)驗(yàn)選取的),則相應(yīng)的相位角的差是±2π/5,如圖5-9所示。如果存在相位偏移π,相位差了3π/5(|±(2π/5)π|),這個(gè)值要比2π/5大得多。這樣來看,相位差可以用來確定精頻而不產(chǎn)生錯(cuò)誤的頻率偏移。如果相位差大于2π/5,就從結(jié)果中減去π以保證頻率差小于2π/5。為了保持頻率在200kHz之內(nèi),X(k)中的k值之間的最大距離將是400kHz。如果輸入是在兩個(gè)鄰近的k值當(dāng)中,則輸入信號跟兩邊的k值都相距200kHz。目前六十三頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-9相位差小于2π/5將不會造成頻率誤差

目前六十四頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-10從兩個(gè)相位角得到的角度差

目前六十五頁\總數(shù)一百二十四頁\編于十三點(diǎn)討論的最后一點(diǎn)是將X(k)的實(shí)部和虛部轉(zhuǎn)化成相位角。通常,相位角的范圍在±π之間。式(5-26)和式(5-27)中的兩個(gè)相位角都將用這種方式得到,兩個(gè)相位角的角度差可以是0~2π間的任何值,如圖5-10所示。由于200kHz允許的最大相位角差是2π/5,這兩個(gè)相位角的角度差必須等于或小于2π/5。如果結(jié)果大于2π/5,可以從結(jié)果中加上或減去2π,其絕對值就肯定小于2π/5了。如果將噪聲考慮進(jìn)去,2π/5門限值可以適當(dāng)放寬,如用2.3π/5,意味著其差必須等于或小于2.3π/5這個(gè)值。如果這樣處理后的值仍然大于這個(gè)門限值,就意味著兩個(gè)連續(xù)毫秒數(shù)據(jù)間有相位偏移了,必須從結(jié)果中減去π。當(dāng)然,得到的角度值也還要經(jīng)過加減2π,以保證最后得到的值小于門限值。目前六十六頁\總數(shù)一百二十四頁\編于十三點(diǎn)由以上討論可知,在某一確定衛(wèi)星中需要經(jīng)過下面幾個(gè)步驟來找出它的C/A碼起始點(diǎn)和載波頻率:(1)對1ms的輸入執(zhí)行循環(huán)相關(guān)操作,某個(gè)確定的C/A碼起始點(diǎn)可以從這些循環(huán)相關(guān)里找到,載波頻率可以以1kHz的分辨率得到。(2)找到最高頻率分量X(k),在同一個(gè)毫秒數(shù)據(jù)內(nèi)的兩個(gè)分量,一個(gè)比X(k)中的k值低400kHz,一個(gè)比k值高400kHz,對這兩個(gè)分量執(zhí)行DFT操作。三個(gè)輸出[X(k-1),X(k),X(k+1)]中的最高輸出將被指定為新的X(k),并用這個(gè)新的X(k)作為DFT分量來求解精頻。目前六十七頁\總數(shù)一百二十四頁\編于十三點(diǎn)(3)從C/A碼起始點(diǎn)處開始選擇連續(xù)幾個(gè)毫秒的數(shù)據(jù),我們隨意選擇為5ms,將這些數(shù)據(jù)與5組連續(xù)C/A碼相乘,結(jié)果肯定是一個(gè)5ms長的連續(xù)信號。但是在任意1ms數(shù)據(jù)中,都有可能含有一個(gè)π相位偏移。(4)從所有輸入數(shù)據(jù)中找出Xn(k),其中n=1,2,3,4,5,然后由式(5-25)找出相位角。角度差值定位為:(5-28)目前六十八頁\總數(shù)一百二十四頁\編于十三點(diǎn)(5)角度差的絕對值必須小于門限值(2.3π/5),如果不能實(shí)現(xiàn),就要從Δθ上加上或減去2π。如果結(jié)果仍然大于門限值,就要調(diào)整π相位偏移,在Δθ上加上或減去π,得到的值還要與門限值2.3π/5進(jìn)行比較,來決定是否要再次加減2π。經(jīng)過這些調(diào)整后,最終的角度值就是期望值。(6)式(5-27)用來計(jì)算精頻。由于有5ms的數(shù)據(jù),將得到4個(gè)精頻值。為了提高精確度,我們將這4個(gè)精頻的平均值作為要求解的值。

目前六十九頁\總數(shù)一百二十四頁\編于十三點(diǎn)5.5Matlab與Simulink仿真簡介

5.5.1仿真工具簡介Matlab是由美國Mathsworks公司開發(fā)的大型軟件。在Matlab軟件中,包括了兩大部分:數(shù)學(xué)計(jì)算和工程仿真。其數(shù)學(xué)計(jì)算部分提供了強(qiáng)大的矩陣處理和繪圖功能。在工程仿真方面,Matlab提供的軟件幾乎遍布各個(gè)工程領(lǐng)域,并且不斷加以完善,現(xiàn)已成為國際上最為流行的科學(xué)計(jì)算與工程計(jì)算軟件之一。目前七十頁\總數(shù)一百二十四頁\編于十三點(diǎn)5.5.2Simulink的使用本小節(jié)將利用BPSK傳輸作為例子對Simulink進(jìn)行簡單介紹。但是,我們只局限在Simulink的原理及在這個(gè)仿真輔導(dǎo)中所要求的特點(diǎn)上,至于更為詳盡的內(nèi)容,建議讀者參考Simulink手冊。這里給出的Windows界面的圖保持了原樣。Simulink是Matlab軟件的擴(kuò)展,它是實(shí)現(xiàn)動(dòng)態(tài)建模和仿真的一個(gè)軟件包。它與Matlab語言的主要區(qū)別在于,它與用戶接口是基于Windows的模型化圖形輸入的,從而使得用戶可以把更多的精力投入到系統(tǒng)模型的構(gòu)建而非語言的編程上。

目前七十一頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-11SimulinkLibraryBrowser窗口

目前七十二頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-12BPSK傳輸?shù)腟imulink模型

目前七十三頁\總數(shù)一百二十四頁\編于十三點(diǎn)為了創(chuàng)建一個(gè)新的Simulink模型,可以通過File→New→Model菜單打開一個(gè)新的模型。某個(gè)庫模塊可以從庫窗口簡單地拖放到Simulink模型窗口中。利用UniformRandomNumberGenerator模塊以及隨后的Sign模塊,可以做圖5-12中的二進(jìn)制信號源。UniformRandomNumber模塊在指定的區(qū)間上產(chǎn)生均勻分布的隨機(jī)數(shù),在本例中該隨機(jī)數(shù)在[-1,+1]內(nèi)產(chǎn)生。跟在其后的Sign模塊的輸出是:當(dāng)輸入大于0時(shí)輸出為-1。為了產(chǎn)生輸出比特為等概率的+1和-1二進(jìn)制信號源,可以加入LookupTable模塊,它的輸入—輸出映射關(guān)系為:+1到+1,-1到-1,而0到+1。為了將模塊UniformRandomNumber加到模塊中,可以在SimulinkBlockLibraryBrowser中雙擊模塊Sources庫(見圖5-13)。將模塊UniformRandomNumber拖入Simulink模型并雙擊它。目前七十四頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-13Sources庫

目前七十五頁\總數(shù)一百二十四頁\編于十三點(diǎn)打開的BlockParameters窗口如圖5-14所示,在這個(gè)窗口中即可輸入如該圖所示的有關(guān)參數(shù)?,F(xiàn)將MathOperations庫中的Sign模塊拖入模型。利用鼠標(biāo)將模塊UniformRandomNumber和Sign連接起來:在模塊UniformRandomNumber的輸出上按下鼠標(biāo)左鍵并拖到Sign模塊的輸入端,然后釋放鼠標(biāo)鍵。LookupTable模塊從LookupTables庫中得到,在模型中雙擊LookupTable模塊并輸入如圖5-15所示的模塊參數(shù)。

目前七十六頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-14模塊參數(shù):UniformRandomNumber目前七十七頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-15模塊參數(shù):LookupTable目前七十八頁\總數(shù)一百二十四頁\編于十三點(diǎn)在開始仿真之前,為了觀察源信號,必須調(diào)整ConfigurationParameters。在菜單欄中使用命令Simulation→ConfigurationParameters。即可打開如圖5-16所示的ConfigurationParameters窗口。就目前而言,僅涉及參數(shù)Starttime和Endtime,稍后為了求得準(zhǔn)確的結(jié)果,可能需要調(diào)整用于數(shù)值積分的Maxstepsize和Minstepsize。在菜單欄中使用命令Simulation→Start啟動(dòng)仿真。類似地,可以使用Simulation→Stop命令結(jié)束或停止仿真。為了觀察信號,

雙擊Scope即可打開如圖5-17所示的窗口。

目前七十九頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-16仿真參數(shù)窗口

目前八十頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-17源信號(Scope)目前八十一頁\總數(shù)一百二十四頁\編于十三點(diǎn)在窗口中單擊鼠標(biāo)右鍵會打開一個(gè)彈出菜單,通過該菜單可以打開Axesproperties窗口,如圖5-18所示,這是為了設(shè)定y軸的范圍。

圖5-18Axesproperties窗口(Scope)

目前八十二頁\總數(shù)一百二十四頁\編于十三點(diǎn)在圖5-17中,Scope窗口的時(shí)間范圍可以通過菜單欄中的Parameters框來改變(見圖5-19)。

圖5-19Scope的參數(shù)窗口

目前八十三頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-12中的其他模塊也能用相同的方式包括在內(nèi)。利用UserDefinedFunctions模塊可以產(chǎn)生載波cos(4*pi*u),該模塊將某個(gè)指定的表達(dá)式(如cos(u))加到輸入變量u上。將模塊Fcn拖入仿真模型并雙擊它,會立即打開BlockParameters窗口,如圖5-20所示,在這里可以輸入表達(dá)式cos(4*pi*u)。目前八十四頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-20模塊參數(shù):Fcn目前八十五頁\總數(shù)一百二十四頁\編于十三點(diǎn)時(shí)間變量u可以從Sources庫中的Clock模塊得到。MathOperations庫中的Product模塊用來產(chǎn)生已調(diào)信號。由于考慮的是無噪聲傳輸仿真,因此就將發(fā)送端和接收端直接相連。接收端的匹配濾波器是利用Continuous庫中的Integrator模塊按積分清除來實(shí)現(xiàn)的。復(fù)位信號由Sources庫中的PulseGenerator模塊產(chǎn)生,其參數(shù)如圖5-21所示。最后的仿真結(jié)果如圖5-22所示。

目前八十六頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-21模塊參數(shù):PulseGenerator目前八十七頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-22宿信號(Scope8)

目前八十八頁\總數(shù)一百二十四頁\編于十三點(diǎn)5.6GPS衛(wèi)星信號捕獲的例子

程序中所用到的輸入電文在時(shí)域內(nèi)的情形如圖5-23所示。輸入信號看起來像噪聲,其頻率描繪可通過FFT求得,如圖5-24所示。正如預(yù)料的,F(xiàn)FT變換后帶寬是2.5MHz,其頻譜形狀與射頻鏈的濾波器形狀相似,通過循環(huán)相關(guān)后如圖5-25所示,其中給出了6號衛(wèi)星的C/A碼起始點(diǎn),其起始點(diǎn)在2884。圖5-26給出了相距1kHz的21個(gè)頻率分量,最高值發(fā)生在k=7處。從圖5-25和圖5-26我們可以輕易地看出C/A碼的起始點(diǎn)和頻率。由于輸入電文是實(shí)際收集到的數(shù)據(jù),精頻的精確度就難以測定,因?yàn)槠涠嗥绽疹l率未知。精頻還取決于在下變頻中用到的本地振蕩器的頻率精確性和采樣頻率的精確性。

目前八十九頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-235000個(gè)輸入數(shù)據(jù)點(diǎn)

目前九十頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-24輸入信號的快速傅立葉變換

目前九十一頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-256號衛(wèi)星的C/A碼起始點(diǎn)

目前九十二頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-26衛(wèi)星6的展開的各個(gè)頻率分量

目前九十三頁\總數(shù)一百二十四頁\編于十三點(diǎn)感知計(jì)算精頻準(zhǔn)確性的一個(gè)方法是利用數(shù)據(jù)的不同部分。從輸入電文的不同部分計(jì)算出六個(gè)精頻,用到的電文部分是:1~25000,5001~30001,10001~35001,15001~40001,20001~45001,25001~50001。這些電文都是5ms長,且起始點(diǎn)偏離1ms,在相鄰兩組間,有4/5的數(shù)據(jù)相同。因此,得到的五個(gè)精頻是非常接近的,這六個(gè)精頻之間相差是-2.4,9.0,-8.2,5.4和2.3Hz。數(shù)據(jù)都是從固定的接收機(jī)上收集到的,因此,每毫秒刷新一次頻率的變化是非常小的。從而,這些頻差可以看做是捕獲方法中的誤差。當(dāng)信號長度改變時(shí),精頻的差也跟著變化,對一個(gè)弱信號來說,如果使用相同的捕獲方法,其精頻可相差幾十赫茲。目前九十四頁\總數(shù)一百二十四頁\編于十三點(diǎn)對弱信號(24號衛(wèi)星)執(zhí)行捕獲,如圖5-27和圖5-28所示。從圖中我們很難判斷C/A碼的起始點(diǎn)和頻率是否為正確值,需要通過另外的相關(guān)運(yùn)算才能找出它們,它的正確值與我們在圖5-27和圖5-28中看到的不同。

目前九十五頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-2724號衛(wèi)星的C/A碼起始點(diǎn)

目前九十六頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5-2824號衛(wèi)星的展開信號的頻率分量

目前九十七頁\總數(shù)一百二十四頁\編于十三點(diǎn)5.7關(guān)于捕獲的一些子程序

5.7.1隨機(jī)編碼過程仿真打開Matlab,新建一個(gè)MFile,輸入以下的文本,保存為GenerateCode.m,并調(diào)試運(yùn)行??梢詥尾交蚨嗖竭\(yùn)行M文件。%該程序仿真產(chǎn)生三組偽隨機(jī)數(shù),模擬隨機(jī)編碼過程closeall;clear;clc;t=0:5:1000; %時(shí)間變量為1s,步長5ms%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%目前九十八頁\總數(shù)一百二十四頁\編于十三點(diǎn)x1=rand(1,length(t));%生成一組1*length(t)維的偽隨機(jī)數(shù)x1=round(x1); %將x1數(shù)組中的元素轉(zhuǎn)換到與其最近的整數(shù)index1=find(x1==0);%找出x1數(shù)組中為0的元素x1(index1)=-ones(1,length(index1));%返回一個(gè)index1長度的一維數(shù)組x2=rand(1,length(t));x2=round(x2);index1=find(x2==0);x2(index1)=-ones(1,length(index1));x3=rand(1,length(t));x3=round(x3);index1=find(x3==0);x3(index1)=-ones(1,length(index1));目前九十九頁\總數(shù)一百二十四頁\編于十三點(diǎn)y1=zeros(1,1);y2=zeros(1,1);y3=zeros(1,1);%生成三個(gè)1*1的零矩陣,存放偽隨機(jī)值t1=zeros(1,1);t2=zeros(1,1);t3=zeros(1,1);%生成三個(gè)1*1的零矩陣,存放時(shí)間值%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%將生成的偽隨機(jī)值存放到對應(yīng)的矩陣中%%%%%%y1(1)=x1(1);y2(1)=x2(1);y3(1)=x3(1);t1(1)=t(1);t2(1)=t(1);t3(1)=t(1);k=2;m=2;n=2;fori=2:length(t)if(x1(i)==x1(i-1))y1(k)=x1(i);t1(k)=t(i);k=k+1;目前一百頁\總數(shù)一百二十四頁\編于十三點(diǎn)elsey1(k)=x1(i-1);y1(k+1)=x1(i);t1(k)=t(i);t1(k+1)=t(i)+0.01;%如果該時(shí)刻階躍變化,則右移0.01來記錄k=k+2;endif(x2(i)==x2(i-1))y2(m)=x2(i);t2(m)=t(i);m=m+1;elsey2(m)=x2(i-1);y2(m+1)=x2(i);t2(m)=t(i);t2(m+1)=t(i)+0.01;目前一百零一頁\總數(shù)一百二十四頁\編于十三點(diǎn)m=m+2;endif(x3(i)==x3(i-1))y3(n)=x3(i);t3(n)=t(i);n=n+1;elsey3(n)=x3(i-1);y3(n+1)=x3(i);t3(n)=t(i);t3(n+1)=t(i)+0.01;n=n+2;endend目前一百零二頁\總數(shù)一百二十四頁\編于十三點(diǎn)%%%%%%畫圖說明產(chǎn)生的三組偽隨機(jī)碼%%%%%subplot(3,1,1);plot(t1,y1,′y′);gridon;axis([-1,1001,-1.5,1.5]);subplot(3,1,2);plot(t2,y2,′y′);gridon;axis([-1,1001,-1.5,1.5]);subplot(3,1,3);plot(t3,y3,′y′);gridon;axis([-1,1001,-1.5,1.5]);目前一百零三頁\總數(shù)一百二十四頁\編于十三點(diǎn)whitebg(′black′);%將三組偽隨機(jī)值存放到新矩陣并傳送到Workspace中,方便以后調(diào)用數(shù)據(jù)%simin1=[t1;y1]′;simin2=[t2;y2]′;simin3=[t3;y3]′;目前一百零四頁\總數(shù)一百二十四頁\編于十三點(diǎn)輸入上面的文本后,運(yùn)行得到如圖5-29所示的偽隨機(jī)碼。其結(jié)果還可以通過Workspace查看,之所以要傳送到Workspace中,

是因?yàn)槲覀冊诤竺娴姆抡嬷羞€要用到這些偽隨機(jī)碼。

目前一百零五頁\總數(shù)一百二十四頁\編于十三點(diǎn)圖5.29模擬三組偽隨機(jī)碼的仿真示意圖

目前一百零六頁\總數(shù)一百二十四頁\編于十三點(diǎn)5.7.2獲取導(dǎo)航信息的仿真在這個(gè)仿真中,我們要得到衛(wèi)星的導(dǎo)航信息,其中忽略了頻率偏移,且衛(wèi)星信號的數(shù)據(jù)是基于前面章節(jié)中得到的衛(wèi)星數(shù)據(jù),存放在GPSsignal.mat文件中。在運(yùn)行程序之前,我們必須將GPSsignal.mat中的數(shù)據(jù)傳送到Workspace中。

目前一百零七頁\總數(shù)一百二十四頁\編于十三點(diǎn)clear;%清除所有的變量clc;%關(guān)閉所有指令窗closeall;%關(guān)閉所有未隱藏的窗口loadGPSsignal.mat%從GPSsignal.mat中獲得所有變量到Workspace中 %n=length(GPSsignal);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%SvNum=12;%調(diào)用fGenerateCAcode3.m文件,獲得衛(wèi)星編號為12的C/A碼Temp=fGenerateCAcode3(SvNum);index1=find(Temp==0);%找出C/A碼中的低電平,形成列向量存放在index1中Temp(index1)=-ones(1,length(index1));%返回一個(gè)與index1相同長度的一維數(shù)組

目前一百零八頁\總數(shù)一百二十四頁\編于十三點(diǎn)SinWave=sin([0:2*pi/8:2*pi*7/8]);%產(chǎn)生一個(gè)步進(jìn)2*pi/8的正弦波SinWave=single(SinWave);%將SinWave矩陣轉(zhuǎn)換成單精度矩陣GpsMatch=zeros(1,1);%生成一個(gè)1*1的零矩陣SinWave=[SinWaveSinWaveSinWaveSinWaveSinWave];GPSsignal.mat %生成一個(gè)5ms的連續(xù)信號fori=1:length(Temp)GpsMatch=[GpsMatchTemp(1,i)*SinWave];endGpsMatch=GpsMatch(2:length(GpsMatch));%生成本地匹配信號并去掉第一個(gè)元素n=length(GpsMatch);m=50000;fori=1:mRes(i)=GpsMatch*GPSsignal(1,i:i+n-1)′;%將本地生成匹配信號GpsMatch與GPSsignal循環(huán)卷積

目前一百零九頁\總數(shù)一百二十四頁\編于十三點(diǎn)endplot(1:m,Res);%圖示卷積的幅值%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Res2=abs(Res);fori=1:100%該循環(huán)目的是找出Res中的最大值[CI]=max(Res2);Res2(1,I)=0;Index(1,i)=I;end;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%下面是要找到GPSsignal中的導(dǎo)航電文%

目前一百一十頁\總數(shù)一百二十四頁\編于十三點(diǎn)%方法是檢驗(yàn)GPSsignal(已被C/Acode調(diào)制過)的每個(gè)最大值處是否具有相位偏移%w=length(GpsMatch);m=1;fori=Index(1,1):w:(length(GPSsignal)-w+1)NavigationBit(m)=(GPSsignal(i:i+w-1)*GpsMatch′)/w;m=m+1;endNavigationCode=zeros(1,1);NavigationCode(1,1)=NavigationBit(1,1);m=2;Count=0;fori=2:length(NavigationBit)if(NavigationBit(1,i)~=NavigationBit(1,i-1))NavigationCode(1,m)=NavigationBit(1,i);目前一百一十一頁\總數(shù)一百二十四頁\編于十三點(diǎn) m=m+1;Count=0;elseCount=Count+1;if(Count>=5)NavigationCode(1,m)=NavigationBit(1,i);m=m+1;Count=0;endendend目前一百一十二頁\總數(shù)一百二十四頁\編于十三點(diǎn)%%%%%我們已得到導(dǎo)航碼NavigationCode,下面將它轉(zhuǎn)化成數(shù)字%%%%NavigationCode=NavigationCode./abs(NavigationCode);index1=find(NavigationCode<0);NavigationCode(index1)=zeros(1,length(index1));Table1=[0000;0001;0010;0011;0100;0101;0110;0111;1000;1001;1010;目前一百一十三頁\總數(shù)一百二十四頁\編于十三點(diǎn)1011;1100;1101;1110;1111;];Result=″;fori=1:4:length(NavigationCode)TT=NavigationCode(i:i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論