国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

GPS讀書筆記-from2/18/2017-2/21/2017

2019-11-08 02:34:16
字體:
供稿:網(wǎng)友

ch1: introduction

衛(wèi)星數(shù)據(jù)經(jīng)射頻,中頻,adc采樣來到數(shù)字基帶域。衛(wèi)星導(dǎo)航信號首先經(jīng)過acquisition(捕獲),tracking(跟蹤),提取幀,提取ephemeris&pseudorange信號,然后計算衛(wèi)星位置,最后得到user position. 關(guān)鍵是捕獲和跟蹤。捕獲是捕獲c/a碼的初始相位。跟蹤則是跟蹤相位,估計頻偏,把頻偏給補(bǔ)償?shù)浇邮苄盘枺岣咝旁氡取?h2 id="ch2-basic-gps-concept">ch2: basic gps conceptGPS接收機(jī)如何決定user position?這是終極目標(biāo)。找user position難點是:一、需要根據(jù)satellite constellation來解方程,但方程是non-linear的,直接求解比較困難;二、user clock inaccuracy. 用戶時鐘精度不夠,導(dǎo)致的時鐘漂移。結(jié)合上面兩點,對non-linear的方程求解,是通過linearization and iteration求解。求解是在cartesian coordinate system, and then the result will be converted into a spherical coordinate system. Gps性能要求,10~30m rms error; real time;worldwide coverage, including the polar regions; tolerate interference, such as harmonics from narrowband signals; acuqusition should be in minutes not hours; can tolerate the inaccuracy of the user clock; antenna should be small.以上要求,導(dǎo)致了gps的載頻是L band(1-2ghz).用GPS信號決定user position需要的衛(wèi)星數(shù):如果是一維的坐標(biāo),那么為了確定這個坐標(biāo),一顆衛(wèi)星不能,需要兩顆衛(wèi)星;同理,確定二維坐標(biāo),兩顆衛(wèi)星會給出兩個位置,所以需要3顆衛(wèi)星才能唯一確定user position; 同樣的,確定三維坐標(biāo),就需要4顆衛(wèi)星提供的距離。這也好理解,如果要確定3維坐標(biāo),則把衛(wèi)星信號到達(dá)的區(qū)域看成是一個以衛(wèi)星位置為中心的球,也不是主觀這樣看成,而是這么看問題更接近真實的情況。那么兩個球相交得到一個圓,再添加一個球,可以看成是這個球和之前兩個球相交得到的圓之間再相交,得到兩個交點,也就是三個球還是不能唯一確定相交的位置坐標(biāo),因此需要再增加一個球,才能確定兩個交點中那一個才是user position. 一句話,衛(wèi)星的數(shù)量需要比空間的維度多1才能唯一確定空間的位置! 這里寫圖片描述現(xiàn)在繼續(xù)討論衛(wèi)星的個數(shù):如果一切理想的話,四顆衛(wèi)星就可以確定三維坐標(biāo)。但實際中,由于user clock inaccuracy,所以還需要一顆衛(wèi)星來排除時鐘的漂移導(dǎo)致的錯誤。因此,需要5顆衛(wèi)星!但是,如果強(qiáng)行用4顆衛(wèi)星的話,由于有時鐘誤差,計算結(jié)果有兩個位置,一個close to the surface,一個在space,而在space的可以容易排除,因此也能用4顆,說得比較繞!下圖就說明為啥是二次方程組了,為啥需要四顆衛(wèi)星了,因為有四個未知數(shù):xu,yu,zu, and bu(時鐘誤差) 這里寫圖片描述通常接受的衛(wèi)星信號來自4~11顆,有兩種方法,一種是全部使用,另一種是選用4顆,選用的標(biāo)準(zhǔn)是四顆衛(wèi)星位置越獨立越好,見Fig.2.8.所謂越獨立,就是四個位置的連線組成的四邊形面積越大越好,所以圖(a)就不好,三個衛(wèi)星在一條線,圖(b)就好,能形成一個四邊形! 這里寫圖片描述 這里寫圖片描述

ch3:satellite constellation

上一章假設(shè)衛(wèi)星的位置已知,這一章則講如何找到衛(wèi)星位置。一共24顆gps衛(wèi)星,在6個軌道運行,每個軌道4顆星。衛(wèi)星的位置如下圖:地球平均半徑是6368km,衛(wèi)星高度到地心距離26560km,所以一個gps衛(wèi)星垂直地面發(fā)射信號距離為26560-6368=20192km,而發(fā)射信號覆蓋地表最遠(yuǎn)距離則為25785km,也就是有距離差距,看下圖,所以衛(wèi)星天線的定向角度13.87度就夠了,還算比較窄,同時注意,由于距離不同,信號衰減不同,導(dǎo)致有功率遠(yuǎn)近效應(yīng),到最遠(yuǎn)和最近的地方功率差2.1db,因此實際中,天線正對地面的發(fā)射功率相對低一些,以保證到地面各個位置的功率一樣! 這里寫圖片描述多普勒效應(yīng):衛(wèi)星速度3874m/s,對地面user的相對速度就是vd=vs*sin(beta),最大的相對速度為929m/s. 最小就是0(當(dāng)錘直的時候)最大的多普勒頻移是4.9khz.也就是說多普勒的范圍是-5khz~5khz。 這里寫圖片描述 5.注意,多普勒的計算如下:多普勒頻移和發(fā)射信號的載頻有關(guān)系,成正比,下圖中:fr就是信號頻率,這里就是用的gps射頻信號載頻計算得到載頻的多普勒頻移;如果是對c/a code而言,多普勒影響就很小,因為c/a碼的頻率是1.023mhz,所以:只有3.2HZ。也就是說多普勒本質(zhì)是一個相對概念。相對誰呢?相對發(fā)送信號源的運動速度,還相對發(fā)送源的電磁波的”運動”速度(就是:電磁波的頻率啦) 這里寫圖片描述 這里寫圖片描述繼續(xù)討論多普勒的影響,假設(shè)地面的接收機(jī)是高速運動,那么對c/a碼而言最大的多普勒就是6.4hz. 6.4hz在物理上意味著什么?如果c/a碼的采樣率是5mhz,那么每個碼片長200ns, tracking的任務(wù)就是讓本地產(chǎn)生的c/a碼和接收到的信號對齊,或者至少讓時間差距小于半個碼片,100ns。由于doppler的原因,6.4hz就是說1秒導(dǎo)致6.4次變化,對c/a碼來說一次變化就是一個1.023mhz的倒數(shù)(977.5ns)的長度,所以:每經(jīng)過1/6.4=156.3ms的時間就會漂移977.5ns,或者說沒16ms就漂移100ns.也就是說,如果采樣率5mhz,那么我們每隔16ms就要檢查是否對齊,否則就跟蹤不上了!研究多普勒,除了看絕對值,還看變化率,也就是高階函數(shù),才算對這個多普勒認(rèn)識清楚。比如,多普勒平均變化率,如果只考慮衛(wèi)星運動,那么這個平均值只有0.54hz/s;由于變化率不是均勻的,有的角度變化率大,有的角度變化率小,那么還需要找最大的變化率,就是0.936hz/s,可以看出最大的變化率比均值大很多。上面是假設(shè)接收機(jī)stationary,如果接收機(jī)是在aircraft上,那么加速度很大的時候,例如:1g(9.8m/s2), 那么最大的多普勒變化率就高達(dá)51.5hz/s,如果加速度再大一些,例如7g,那么這個最大的多普勒變化率就是360hz/s,也就是說由user運動導(dǎo)致的多普勒遠(yuǎn)遠(yuǎn)大于衛(wèi)星運動導(dǎo)致的多普勒。以360hz/s為例,這個360hz/s表示每一秒變化360hz, 如果接收機(jī)的載頻的tracking loop的帶寬是1hz的數(shù)量級,表示1秒才更新一次,但是由于360hz/s的多普勒,表示1秒會變化360次,即:相當(dāng)于每2.8ms載波就變化一次,所以每2.8ms就需要這個tracking loop update 載波的信息。但這就困難了,由于噪聲,2.8ms這么短時間做出的判決就很大的false概率。kelpler’s laws:開普勒三定律。(以后在細(xì)看!)

ch4:earth-centered,earth-fixed coordinate system

坐標(biāo)變換,考慮地球的self-rotation.(以后再看!)

ch5: GPS C/A code signal structure

上面幾章介紹了如何接榫user position,但計算user position需要衛(wèi)星的position and pseudorange. 而衛(wèi)星的位置的計算就必須依靠衛(wèi)星傳送的信號。衛(wèi)星信號有兩種:course/acquisition (c/a) code, and PRecision code. 字面上,c/a code就是低精度的用于民用的,而p碼是高精度的,用于軍用,而且接受p碼需要有classified code,不像c/a code是明文傳送,所以,后面都重點討論c/a碼。傳送頻率:gps信號的射頻載波有兩個: 都是在1GHZ~2GHZ間,同時都是時鐘10.23的整數(shù)倍,這應(yīng)該是方便倍頻!其中,L1用來傳送c/a和p碼的,而L2值用來傳送p碼。 這里寫圖片描述 下面公式就表示了L1用qpsk同時傳送p碼和c/a碼。由于衛(wèi)星高度為2萬公里,所以信號強(qiáng)度很微弱,-130dbm左右,所以用c/a碼的作用之一就是得到擴(kuò)頻碼的擴(kuò)頻增益! 這里寫圖片描述cdma信號:這個比較熟悉。這里復(fù)習(xí)一下:如果碼片的速率高于信號速率,就是擴(kuò)頻系統(tǒng);如果碼片率是1mhz,那么由于碼片翻轉(zhuǎn)在時域上是一個矩形窗口,則在頻率上就是一個sinc函數(shù),而且main lobe的帶寬就是2mhz. 問題:這里需要用成型濾波啊?p碼的碼片速率是10.23mhz,所以根據(jù)上文介紹,頻譜帶寬就是20.46mhz,碼片length就是1/10.23=97.8ns,p碼是PRN碼(pseudorandom noise code),周期一共有38周(超過半年才能循環(huán)一次),實際中是每一周就復(fù)位一次。c/a碼的碼片速率是1.023mhz,所以帶寬就是2.046mhz,每個碼片length是977.5ns. c/a碼周期就短,只有1023個碼片,因此一個周期就是1ms。c/a碼本質(zhì)就是gold碼。gps幀結(jié)構(gòu):衛(wèi)星導(dǎo)航數(shù)據(jù)率是50hz,那么一個bit需要20ms,因此一個bit就對應(yīng)20個c/a碼周期,算很長了;30個導(dǎo)航數(shù)據(jù)bit構(gòu)成一個Word; 10個word又構(gòu)成一個subframe(6秒);5個subframe構(gòu)成一個page(30秒);25個page構(gòu)成一個superframe. c/a碼產(chǎn)生:由兩個1023-PRN 序列產(chǎn)生器產(chǎn)生的gold碼。每個序列發(fā)生器都是由10比特的移位寄存器組成。衛(wèi)星的identification(id)就是由序列的相位決定的,一共有37個獨立的相位位置,其中32個用來c/a碼,當(dāng)時只有24顆衛(wèi)星在軌,所以只分配了24個相位。如下圖:不同的c/a碼從G2不同的抽頭輸出,這個要仔細(xì)研究gold碼,看為什么不同抽頭的相位獨立。第二次看的時候,又觀察了下圖,發(fā)現(xiàn)G2輸出不是從最后一個位置輸出,而是從中間選取兩個位置的輸出經(jīng)過模二加之后再輸出,雖然兩兩組合的可能理論上有45(10*9/2),但是獨立的只有37種,我又截了一個圖反應(yīng)了不同的組合得到不同的c/a碼,這些碼起始相位就是衛(wèi)星的id了。 這里寫圖片描述 這里寫圖片描述c/a碼性質(zhì):說c/a碼性質(zhì),其實說的是gold碼性質(zhì),或者是偽隨機(jī)碼性質(zhì):相關(guān)性。理想的c/a碼需要有強(qiáng)的自相關(guān)性,幾乎為0的互相關(guān)性。其中,自相關(guān)性是說同一顆衛(wèi)星發(fā)出的c/a碼不同相位的序列相關(guān);互相關(guān)性是指不同的衛(wèi)星發(fā)出的c/a碼的不同相位序列相關(guān)。下圖,就說明了c/a碼良好的相關(guān)性能。 這里寫圖片描述 11. 幀數(shù)據(jù)介紹:(5.9~5.17以后再看!)

ch6: receiver hardware considerations

考慮硬件。天線,采樣,中頻等。(之后再看!)

ch7: Acquisition of GPS C/A code signals

捕獲,就是檢測是否有c/a信號存在,或者具體說,c/a碼的開始和載波的頻率。這兩個信號同時獲取。然后把這些信息pass to tracking procedure. 前面提到過,捕獲需要搜索+/-10khz的頻率范圍,這個范圍就是多普勒頻偏的范圍。問題是: 捕獲的帶寬是指什么?由誰決定的?書上說,窄帶的捕獲帶寬要用很多步驟才能cover +/-10khz的范圍,比較time consuming;而寬帶的呢,就存在poor sensitivity的問題,但是由于tracking的帶寬很窄,可以保證high sensitivity。所以,還是需要用wide bandwidth for searching.本章會討論三種捕獲的方法:傳統(tǒng)的,基于fft, delay and multiplication的。傳統(tǒng)的和fft效果一樣,fft可以降低運算復(fù)雜度;delay and multiplication的速度更快,但是會lower snr,可以看成是一個速度和性能的tradeoff.所謂捕獲,就是去找到c/a code的開始的相位,同時需要確定輸入信號的載頻。這個載頻是考慮了doppler effect的,每顆衛(wèi)星都不同。這兩個參數(shù)就會pass到tracking procedure. 本章后面的討論是基于IF=21.25MHZ, 采樣率是5MHZ,因此基帶信號的中心頻率就是1.25mhz. 關(guān)于中頻和采樣率的問題需要看第6章的內(nèi)容。所謂傳統(tǒng)的方法:就是用硬件來對每個衛(wèi)星的c/a碼在時域捕獲,這個方法就不如用軟件的方法,可以保存數(shù)據(jù),然后在數(shù)字域處理。考慮這本書是寫于90年代,估計硬件手段很有限,比如用fpga一樣可以來做信號處理,速度還快!捕獲,理論上是數(shù)據(jù)時間越長,信噪比越高。但兩個因素限制了數(shù)據(jù)長度:一是該數(shù)據(jù)中是否有navigation data transition;另一個是c/a碼的doppler effect. 由于navigation data速率是50hz,也就是每20ms一次數(shù)據(jù)相位的transition。考慮到這個transition是在時域上和c/a碼相乘,所以頻域就是卷積運算,或者說是頻域就是調(diào)制,把c/a碼左右移位50hz再相加,也就是說頻譜展寬了,由于有混跌,因此性能下降了。那怎么辦呢?在時域上,每20ms才變一次,所以捕獲的時間設(shè)為10ms,這是因為,連續(xù)的兩次捕獲最多一次transition, 也就是說連續(xù)兩次的捕獲中有一次是不受navigation data transition影響的。由于c/a碼的周期是1023碼片,時長1ms,所以1ms的數(shù)據(jù)就可以包含c/a碼的全部信息,理論上,1ms的數(shù)據(jù)就可以用來捕獲,但是如果這1ms中出現(xiàn)了navigation data transition,那么信噪比就會衰減很大,因此為了保險起見,用兩個連續(xù)的1ms數(shù)據(jù)就可以做捕獲了。在工程中,用10ms來做捕獲,那么連續(xù)兩個10ms中也最多一個transition.上面說c/a碼的多普勒會影響捕獲的時長。由于多普勒,數(shù)據(jù)不能完全對齊,如果有half chip off,那么相關(guān)峰就從理想的1衰減到0.5,因此就是6db的幅度衰減。假設(shè):碼片速率1.023mhz,最大多普勒是6.4hz,因此漂移一個碼片就需要1/6.4=156ms,漂移半個碼片就是78ms,也就是說捕獲時長必須低于78ms. 上面已經(jīng)討論了,10ms最理想,因此10ms也滿足多普勒的要求。frequency steps in acquisition: 這一章開始就討論捕獲的帶寬的問題,說帶寬如果太小,那么就需要很多步驟才能cover載波的+/-10khz的頻偏;帶寬太大,又出現(xiàn)精度不夠的問題。現(xiàn)在稍微理解了捕獲帶寬的物理意義:就是每1秒捕獲的次數(shù),是不是很簡單,按照上面的討論,每10ms的數(shù)據(jù)做一次捕獲,那捕獲帶寬就是100hz。這個就是前文提到的捕獲帶寬太小的情況,所以需要很多steps才能cover 10khz的帶寬。為什么呢?怎么cover的?C/A碼的乘積和FFT: c/a碼捕獲就是找到c/a碼的初始相位,然后用這個c/a碼去乘以射頻信號,得到射頻連續(xù)信號,從而得到載頻值,如下圖:圖中最上面的信號是連續(xù)輸入的c/a碼被射頻信號調(diào)制的波形;中間的圖是捕獲中得到的c/a碼初始相位,是本地產(chǎn)生的;下面圖表示的用本地的c/a碼乘以輸入的c/a coded input signal,即:把c/a的影響從載波里strip out最后就得到純的載波信號,這就可以求載頻的頻率。 這里寫圖片描述一旦得到上圖的載波,就可以用fft來求頻率。如果數(shù)據(jù)長度是1ms,那么fft的分辨率就是1khz。為什么呢?這樣好理解啊。1ms的時間,可以表示的周期最長的信號也是1ms,也就是說如果有一個信號周期是2ms,那么在1ms的時間內(nèi)只有半個周期,因此能表示的最小頻率就是1/1ms=1khz,這也是fft的分辨率,所謂分辨率就是最小可以表示的頻率。繼續(xù)討論FFT找載波頻率。如果采樣率5mhz,那么在1ms中就包含了5000個采樣點,因此就需要5000-point FFT。由于是實數(shù)輸入,那么這5000個FFT就是complex conjungate的,即:前面2500個點就包含了所有的信息。由于頻率分辨率是1khz,那么2500個點就可以表示2.5mhz的信息,這么看fft還是線性的,如果有的頻率變化快,有的頻率變化慢,這就不行了。突然感覺自己以前對dsp的理解太low了,只知道記公式,公式是美麗,但是物理意義才更美麗,這是題外話!剛才說可以表示2.5mhz的信息,但是我們其實關(guān)心的只是多普勒頻偏,而不是整個載頻,也就是20khz的范圍,那么顯然2.5mhz就太多了,因此:直接的方法就是只需要計算21個輸出值,用dft即可。這樣做的話,可以節(jié)省大量時間和能量,比如:輸入的c/a碼和本地的c/a碼在1ms內(nèi)需要做乘法,由于有5000個采樣點,每移動一次就要做5000次乘法和55000-point FFT,所以需要做5000×5000次FFT,這么看數(shù)據(jù)量就太大了,而如果只做21-point DFT,那么就只需要5000*21次DFT。用上面的dft的方法,由于需要用本地產(chǎn)生的c/a碼和輸入的c/a碼每移動一位都做乘法和fft,然后找頻率的超過pre-defined threshold中的最大值,如果找到最大值,就可以把現(xiàn)在的本地的c/a碼的位置記錄下來,這就是c/a碼的開頭。而且,由于碼片的length是200ns,也就是說找到的c/a碼的開頭有200ns的分辨率,或者說200ns的誤差,而且由于整個data的長度是1ms,所以多普勒頻率的分辨率就是1khz. 這個思路可以很容易generalize: 現(xiàn)在我們考慮10ms的data,那么由于采樣率不變,所以時間分辨率還是200ns,但是由于10ms和1ms相比,允許周期更長的信號出現(xiàn),即:最多可以有10ms為周期的信號,因此頻率分辨率就是100hz,能得到這個100hz的是要付出很大代價的,因為現(xiàn)在我們需要做50,000-pointFFT, 而之前只需要5000-point FFT,而fft長度增加10倍,復(fù)雜度增加會超過10倍,所以整個復(fù)雜度不是線性增加的!time domain correlation:這才是第二種方法,除了用fft來做,還可以用時域相關(guān)的方法來做。這個方法本地產(chǎn)生的c/a碼不再是簡單的c/a碼,還把RF信號加入在里面。由于采樣后的信號的載波是1.25mhz,那么考慮頻偏在+/-10khz,那么就有21中可能的RF信號可能性,所以本地產(chǎn)生的信號就是如下: 這里寫圖片描述 其中,Cs代表24顆衛(wèi)星中某一顆的c/a碼,注意:這里都是認(rèn)為已知衛(wèi)星的c/a碼,只是不知道初始相位,fi代表不同的射頻頻率,如:1250-10,1250-9,1250-8,…,1250+10khz,也就是這些不同的頻率是考慮了多普勒。產(chǎn)生了這個本地信號后,仍然需要數(shù)字化成5mhz的數(shù)據(jù),即:每1ms仍然是5000-point,這些點和輸入數(shù)據(jù)相關(guān),所謂相關(guān),就是乘累加,如果本地的c/a碼包含正確的c/a碼和正確的頻率,那么相關(guān)結(jié)果就會成高,產(chǎn)生一個峰值。如下圖: 這里寫圖片描述 這個過程是這樣的,每200ns,輸入的數(shù)據(jù)就多收到一個,就把現(xiàn)在的5000個輸入的復(fù)數(shù)和local的5000個復(fù)數(shù)做相關(guān)得到的一個復(fù)數(shù),把這個復(fù)數(shù)的幅度計算出來就代表現(xiàn)在的相關(guān)結(jié)果。所以,5000個數(shù)據(jù)輸入,就需要做5000次的這樣的乘法,也得到5000個幅度值,那么21路并行的處理,就得到21*5000個幅度值,選取最大并cross the threshold的值,此時對應(yīng)的fi就是接收到的信號的fi,此時的數(shù)據(jù)的起始相位就是Cs的相位。相位這個,怎么理解?由于已知24顆衛(wèi)星的c/a碼初始相位,所以上面的Cs的初始相位都是已知的固定的,所以需要移動接收到的射頻數(shù)據(jù)和本地的c/a碼做所有可能的嘗試,確實很傻,不過1ms內(nèi)最多嘗試5000次,總能試出來找到正確的相位,如果相關(guān)出現(xiàn)峰值,就說明此時接收到的信號的c/a碼的相位和本地的對齊,且接收到的c/a碼的初始相位就是我們實驗用的Cs的初始相位。繼續(xù)討論time domain correlation.這個方法本質(zhì)就是做dft,和fft相比,這個方法更快,因為只需要遍歷所有可能的相位和所有可能的頻率偏移的組合,按照邊界說,這個方法就是先找到解空間的具體的邊界,然后遍歷每一個可能的解,而之前基于FFT的方法則是盲計算,導(dǎo)致計算復(fù)雜度很高,所以好的方法總是搞清楚問題的邊界,就在邊界內(nèi)求解!由于時域相關(guān)的方法得到的結(jié)果頻率分辨率只有1khz,因為只用1ms的數(shù)據(jù)做dft,所以只有1khz.書上說,這個頻率還不夠精確,不能直接送到tracking program,還需要提高進(jìn)度,如何進(jìn)一步提高進(jìn)度?在section 7.10討論。拭目以待!繼續(xù)討論捕獲。現(xiàn)在介紹關(guān)于相關(guān)的一些基本知識:circular convolution and circular correlation. 圓周卷積和圓周相關(guān)。在連續(xù)時間域,有如下關(guān)系:  這里寫圖片描述  也就是說:時域卷積,頻率相稱;頻域卷積,時域就相稱。你看,為啥叫卷積,因為還是個積,只是換了一個域,或者說換了一個觀察問題的角度。這個性質(zhì)在離散時間域也有類似的,但又不一樣,不是線性卷積,而是圓周卷積。相關(guān)和卷積也很相似,如下圖: 這里寫圖片描述 這里寫圖片描述 這里寫圖片描述 這里寫圖片描述 稍微一看,就知道,卷積和相關(guān)就差一個符號,所以在頻域也很相似。再看下面公式,有個疑問,即使下面成立,也不能認(rèn)為相位關(guān)系也是這樣的吧,因為下面公式只表示了幅度關(guān)系。 這里寫圖片描述現(xiàn)在利用circular correlation來完成前面的time-domain相關(guān)。很簡單: 根據(jù)上面的公式,把輸入的1ms的5000點數(shù)據(jù)當(dāng)成x[n],用FFT得到X(k),然后得到X(k)?然后產(chǎn)生local的射頻信號,一共21個可能的頻率值,前文已經(jīng)討論過,然后把這21路信號做FFT,這里這個信號就相當(dāng)于上面公式中的H(k)在頻域相乘,根據(jù)對偶原理,頻域乘,等效時域卷積,由于我們使用的不是X(k),而是X(k)?,所以就等效與時域的相關(guān)。但是,這里我們reap FFT的efficiency,而不用像前面計算時域相關(guān)需要5000*5000次乘法,做了FFT,只需要5000*21次乘法,而FFT的復(fù)雜度只有o(nlgn)。相乘后得到頻率值,還需要用iFFT都轉(zhuǎn)換成時域值,并求最值,根據(jù)最值得到相應(yīng)的頻偏和c/a相位。section 7.9沒細(xì)看,下次再看!前面分別介紹了基于fft和基于time-domain correlation的方法,在time-domain correlation中又介紹了用circular correlation的概念,利用FFT加快運算速度。這一節(jié)將介紹一個新的方法,delay and multiplication. 這個方法的目的是:首先eliminate the frequency information in the input signal, 然后問題就變成了去找c/a碼開始的位置,等c/a碼開始的位置找到了,頻率就可以通過dft或fft來計算。或者說,這個方法就是decouple解空間。前面介紹的時候,我就說了time-domain correlation的方法就是首先明確了解空間是5000點的時域位移和21個不同的頻率值,這樣就組合重21*5000個可能性,這種方法由于同時explore時間和頻率空間,也將同時得到c/a碼起始值和載頻值的解,所以導(dǎo)致復(fù)雜度高。因此,有人就提出先消除頻率信息的影響,然后找到c/a開頭,最后再找載頻。這樣復(fù)雜度大大降低,因為只需要做5000次相關(guān),然后就是用載頻做dft.兩個操作從并行變成了順序操作!delay and multiplication:顧名思義,就是把接收到的信號先delay一段時間,然后在把兩個信號相乘,如下圖。有意思的是,正是相乘把頻率成分給消除了,你看(7-15)公式里,Cn(t)變成了一個新的gold碼,但仍然是gold碼,而且周期和初始位置都和原來的相等,這個性質(zhì)真是沒想到,最重要的是,兩個序列相乘后,就立刻消除了頻率成分,變成了一個新的gold碼。需要注意的是,這個碼有一個常系數(shù),e2πfτ.對這個delay的時間τ有一定限制。 這里寫圖片描述繼續(xù)討論delay and multiplication的方法,為了說明問題,下面截圖就說明了delay如何選擇的問題,把復(fù)數(shù)信號換成實信號,指數(shù)就變成cos(),在(7-19)中,高頻可以濾波,最后剩下cos(2πfτ),因此為了使得到的新的gold 碼幅度夠大,信噪比夠高,需要讓這個|cos(2πfτ)|接近1。好在這個問題很實際,f隨不知道,但f的范圍還是知道的,1250+/-10khz.所以,當(dāng)f=1250khz,τ=400ns,也就是delay兩個samples就可以滿足條件;當(dāng)f=1250+10khz,帶入計算,|cos(2πfτ)|=0.9997也很接近1.所以2個sample delay就可以首先消除頻率的影響,果然很簡單高效! 這里寫圖片描述現(xiàn)在來看這種delay乘的方法主要問題:由于上面表達(dá)式只表示了信號部分,沒有表示噪聲,實際上,噪聲也是要相乘的,所以結(jié)果是噪聲和噪聲相乘,引入更多的噪聲,也就是noise floor increase,信噪比就下降!因此,不能只依靠1ms的數(shù)據(jù),在實際中,需要更長的數(shù)據(jù)。還有一個特性,如下圖。就是delay相乘后的新code對navigation data transition不再敏感,你看新的code只有2個bit受到影響,也就是2/5000的數(shù)據(jù)受到影響,因此影響可以忽略了。因此,不再受到之前討論的10ms數(shù)據(jù)長度的限制了,由于navigation data transition對新的code的影響變小,因此這個方法可以做到精度更高。 這里寫圖片描述理論上,1ms的數(shù)據(jù)就包含了完整的信息,就可以用來得到c/a碼的初始相位和載波多普勒頻偏。但實際中,都會通過采集處理長時間的信息來增加信號snr,提高頻率分辨率等。書上介紹了兩種方式: 第一種是non-coherent的,這個就簡單粗暴了。如果用2ms的數(shù)據(jù),那么對每1ms分別處理,然后再求和。但是怎么相加?把誰和誰相加?這個沒講清楚,就說這么一加,信號功率變成兩倍,但噪聲功率只變成2√,所以最后snr還是增加了2√,即:1.5dB。我個人猜測是,等兩個1ms都找到了c/a開始,然后despread后,再相加。第二種是,coherent處理。這個很有意思!用更長的數(shù)據(jù)可以提高頻率分辨率,我們已經(jīng)知道,但更長數(shù)據(jù)更重要是可以提高信噪比,這個就不容易理解了。書上解釋說,因為更長的數(shù)據(jù)對應(yīng)更高的頻率分辨率,或者更長的數(shù)據(jù),相當(dāng)于低通濾波器,當(dāng)這個低通只會讓噪聲功率減少,信號功率不會變化,因為信號經(jīng)過despread后的帶寬比頻率分辨率肯定還要窄。因為噪聲的帶寬減少,噪聲功率也就減少,所以snr就提高。舉例:如果2ms的長度,snr就提高3dB現(xiàn)在考慮,如果從1ms變成10ms的data,就不能直接用fft的方法來做了,因為10ms的數(shù)據(jù)有50000個數(shù)據(jù)點,做50000-point的FFT就比較不現(xiàn)實了!好在方法總是有的:可以做更少點的fft。始終記住我們的目標(biāo)是找到多普勒頻偏,即:+/-10khz,但是我們前面都是處理的1250+/-10khz這樣的數(shù)據(jù),這里再次在這里做文章,之前產(chǎn)生的local信號有21種可能,從1250-10,1250-9,…1250+10khz.然后同時乘了相關(guān)求最大值。這里變化的地方是,只用一個載波1250khz來乘以輸入的信號,那么就得到一個低頻信號+/-10khz,還有一個鏡像的高頻,假設(shè)高頻可以濾波,那么就一個20khz的基帶信號了,面對這個信號,我們就不用這么高的采樣率了,我們不用之前的5mhz采樣,用50khz就夠了,因為50khz>2*20khz,滿足nyquist定律。由于數(shù)據(jù)已經(jīng)用5mhz采樣了,那么我們直接對每100個相臨的數(shù)據(jù)求平均即可,這樣還可以濾除高頻鏡像信號。把以上方法描述如下:第一步,把10ms的輸入信號和本地產(chǎn)生的復(fù)數(shù)的1.25mhz的信號(digitized at 5mhz)相乘,輸出的信號最大頻率就是10khz,目前我們一共得到50000個點;第二步,把第一步的輸出和c/a碼點對點相乘,得到50000個點;第三步,則是每100個數(shù)據(jù)求和平均,這個過程相當(dāng)于低通濾波,因此在高頻2.5mhz附近的鏡像就被濾除。補(bǔ)充一句,所謂求平均后,時間分辨率就變成了200ns*100=20us,所以最大的頻率就是1/(20*2us)=25khz,因此高頻自然就不能表示了;第四步,做500-point的FFT,找出最大的頻率幅度;第五步,由于是用c/a信號和20khz的低頻信號乘,所以需要移位5000次嘗試所有可能,所以最終只需要5000*500次的操作即可!和直接做50000-point FFT省事多了。注意,由于10ms的頻率分辨率是100hz,因此上面的操作就是100hz分辨率,這就可以送給tracking loop了。上面只是介紹了直接的實現(xiàn)方法,這個思路一樣可以用circular correlation的方法來做,即:后面移位的過程可以在頻域做。到底如何做?有點暈! 第二次看,不暈了。就是用FFT來做circular correlation,節(jié)約時間!Basic concept of fine frequency estimation: 精確的頻率估計。如果用1ms來做捕獲的話,只能得到1khz的分辨率,這個精度送去tracking不合適,the desired 分辨率應(yīng)該within a few tens of hertz,因為tracking loop的頻率分辨率只有a few hertz。 用dft或fft來提高分辨率,顯然不合適,比如:用10ms的數(shù)據(jù)做fft前面已經(jīng)討論了,運算量還是很大,而且只能得到100hz的分辨率。不用dft和fft,還有沒有別的方法呢?肯定是有的:通過相位關(guān)系,一旦c/a碼stripped off from the input signal, the input becomes a cw signal。也就是計算短時間內(nèi)的相位變化,然后除以時間就得到這段時間的頻率。如下圖: 這里寫圖片描述 首先θm(k)表示在第m秒這1ms內(nèi)對輸入信號(c/a碼被stripped off)做fft,最大頻率分量的相位,θn(k)表示在第n秒這1ms內(nèi)對輸入信號(c/a碼被stripped off)做fft,最大的頻率分量的相位。提取這兩個頻率分量對應(yīng)的相位值,然后計算相位的變化就是這個多普勒。這樣的做法,就可以得到精度更高的頻率值。因為直接計算相位,不像之前的是直接計算幅度值。由于相位都是confined within 的范圍內(nèi),而任意兩個時間的實際相位變化很可能超過,這就存在相位模糊,即:phase ambiguous. 書上介紹了很詳細(xì)如何防止相位模糊的方法,沒看太懂。以后再看!(section 7.14!)

第7章總結(jié)

介紹三種捕獲方法: 第一種是FFT的,就是先從輸入信號remove 可能的c/a碼,然后把得到的射頻信號去做fft,得到頻率,由于不知道c/a的可能初始相位,所以要把c/a的所有可能都遍歷一遍,也就是5000種(1ms周期有5000個采樣點),每遍歷一次,就要做5000-point的FFT,因此就要做5000次5000-point的fft,把這些數(shù)據(jù)中找到最大幅度的點,復(fù)雜度很高。原因就是先strip off the effect of c/a碼,而c/a碼可能性這么多。 第二種基于dft. 上面方法是先strip off the c/a code,然后去找頻率,而頻率其實只有+/-10khz的范圍,所以沒有必要去盲找,完全可以縮小范圍,就是值計算這個范圍內(nèi)的21個值,即:1250-10,…1250+10khz,因此沒必要計算fft,完全可以計算21點的dft。這個方法是這樣的: 先把21中可能的載波產(chǎn)生,然后用5mhz采樣也得到5000點,然后把這個21中載波分別和c/a碼相乘,以消除載波的影響,然后再去和輸入的c/a碼做circular correlation. 這樣復(fù)雜度就是有21次的5000-point FFT。注意對比上面兩個方法:前一個方法是先strip off the c/a碼,然后去盲估頻率;這個方法是先strip off 載波,然后去盲估c/a開始位置。 第三種,delay and multiplication. 前兩種的復(fù)雜度還是高,原因就是同時在遍歷載波可能解空間和c/a起始位置解空間,因此復(fù)雜度就是這兩個解空間的乘積。現(xiàn)在這個方法就可以decouple兩個空間,通過delay 輸入信號,并把delay前后的兩個信號相乘就可以先消除載波的影響,得到一個新的c/a碼,因此就可以用circular correlation的方法,也就是5000-point FFT來找最大值,等確定c/a初始相位后,再用這個c/a碼乘以輸入得到載波,對載波做dft或FFT就可以得到頻率。你看現(xiàn)在復(fù)雜度就變成了一次5000-point FFT找c/a開頭,一次21-point DFT找載波。太美妙了!

Ch8: Tracking GPS signals

8.1 Introduction

跟蹤,字面意思,是由于捕獲后的信號仍然存在多普勒頻域,導(dǎo)致頻率有漂移,所以需要繼續(xù)調(diào)整本地的時鐘去跟蹤接收信號的載頻。實際中,本地有一個窄帶的濾波器,中心頻率是固定的,但會產(chǎn)生一個信號去跟蹤輸入的信號,每次把本地信號和輸入信號通過phase comparator,輸出再通過一個窄帶濾波器來調(diào)整本地產(chǎn)生的信號的頻率,所以本質(zhì)還是一個PLL。由于帶寬很窄,所以靈敏度很高;帶寬很窄,也就是說更新頻率低,很長時間才更新一次。這是我自己理解。第二次看,要更正上面一句話。帶寬窄,是變化率慢,和更新率沒有關(guān)系,當(dāng)然由于變化緩慢,所以也不用很頻繁的更新。在tracking的時候,也需要track兩個參數(shù),一個是時域的c/a碼起始位置;一個是頻域的載波頻偏。現(xiàn)在先介紹一中傳統(tǒng)的基于反饋的方法,需要兩個tracking loop: carrier loop, code loop. 首先,tracking是閉環(huán)的操作,相對開環(huán)的acquisition, 而且tracking是細(xì)調(diào)整,acquisition是粗調(diào)整。你看,這就是兩個層級的操作,把問題分成兩個層級,本身就是很科學(xué)很高級的方法呀。聯(lián)想到,內(nèi)存和硬盤兩級存儲也是類似。在工程實際中,這樣的多級結(jié)構(gòu),由粗到精的過程簡直美妙極了,以后可以總結(jié)一下有相似結(jié)構(gòu)的系統(tǒng)設(shè)計。本章介紹兩中tracking方法,一種是傳統(tǒng)的方法,另一種就是BASS(block adjustment of synchronizing signal)塊調(diào)整同步法。

8.2 Basic Phase-locked Loops

這一節(jié)將PLL,這是重點。包括:transfer function, error transfer function, the noise bandwidth, and two types of input signal.PLL的主要作用就是來調(diào)整時鐘產(chǎn)生的頻率,讓本地的產(chǎn)生的載波和輸入信號的載波頻率盡可能相等,以便做相關(guān)解調(diào),做相關(guān)解調(diào)的原因是提高解調(diào)信噪比。下圖就是PLL在連續(xù)時間上的結(jié)構(gòu),其主要組成為:phase comparator, 低通濾波,vco,增益控制四部分。 這里寫圖片描述 4.用laplace變換是為了計算狀態(tài)轉(zhuǎn)移。需要復(fù)習(xí)為啥laplace變換可以這么牛!如下圖,H(s)就是傳遞函數(shù),所謂傳遞函數(shù),就是輸出/輸入,結(jié)果就是系統(tǒng)的傳遞函數(shù),你看用H表示,表示就是系統(tǒng)的沖擊響應(yīng)的laplace變換;He(s)就是錯誤傳遞函數(shù)。 這里寫圖片描述為了研究pll的性質(zhì),書里采用了兩種不同的輸入如下圖。一種是輸入為階躍函數(shù);另一種為調(diào)頻信號。 這里寫圖片描述

8.3 First-order PLL

所謂一階PLL,主要是只H(s)的分母是關(guān)于S的一階函數(shù),上圖中,H(s)的分母就是s+k0k1F(s),因此低通濾波器F(s)=1才能保證一階。如果輸入是階躍函數(shù),則θi(s)=1/s,計算誤差,這里的誤差就是輸入值和跟蹤值的誤差,?(s)=θi(s)He(s)=1s+k0k1;同時時域上錯誤也趨于0;但如果輸入是調(diào)頻信號,則steady-state error就不等于0,這就表示一階的PLL對調(diào)頻信號不友好,即:誤差同理論上不能趨于0.

8.4 Second-order PLL

二階就好理解了,H(s)的分母是關(guān)于S的二階函數(shù),所以,F(s)就可以等于如下:F(s)=sτ2+1sτ1.這個低通濾波器的好處是,對階躍輸入和調(diào)頻輸入最后的誤差都趨于0,這就是很良好的設(shè)計。這說明,二階的PLL可以很好的track frequency-modulated signal,讓相位比較器的相位差輸出趨于0,正因為這個原因,所以實際中都用二階來tracking GPS信號。

8.5 從連續(xù)系統(tǒng)轉(zhuǎn)換到離散系統(tǒng)

連續(xù)到離散,那么在頻域就是從s域到z域,這個轉(zhuǎn)換,需要一個bilinear transform把s表示成z,即所謂的雙線性變換。以后有時間,需要搞清楚不同變換為什么可以映射,不同變換的物理意義!換成離散后,PLL結(jié)構(gòu)也要調(diào)整一下,比如:vco就變成了dds:直接數(shù)字頻率合成。

8.6 載波和c/a碼的tracking

對傳統(tǒng)的pll,輸入是連續(xù)信號或調(diào)頻信號。所謂傳統(tǒng),就是在模擬域?qū)崿F(xiàn)的模擬的pll,所以pll用vco來產(chǎn)生所需要的頻率,與之對應(yīng)的數(shù)字域就用dds.為了trackGPS信號,需要先把c/a碼給removed,所以就需要兩個loop,一個跟蹤c/a,一個跟蹤載波。如下圖:這里寫圖片描述上圖到底是傳統(tǒng)的結(jié)構(gòu),還是數(shù)字的結(jié)構(gòu)啊?先不管,來看兩個tracking loop如何交替的工作的。這個工作很有趣: 首先看c/a code loop,就是上圖的偏上面一個loop。,這個loop會產(chǎn)生三個輸出:一個early c/a碼,一個late c/a碼,還有就是prompt c/a碼,按照我的叫法就是on-time c/a碼。其中,只有最后的prompt碼才輸出給carrier loop使用。其他的early和late碼就是遲早門所需要的,用來調(diào)整時間是否對齊用的。所謂early和late碼是和prompt碼時間上早或晚半個chip的時間長度,我在看書的時候,剛開始以為是相差半個采樣周期呢,最后發(fā)現(xiàn)是相差半個c/a碼的長度,所以如果c/a碼的碼率是1.023m,那么半個碼片就是12?1.023?106,也就是0.489us,而半個采樣周期只有100ns. 在code loop中,一早一晚的c/a碼和輸入的c/a碼做相關(guān),然后分別通過滑動濾波remove高頻分量,將相關(guān)值的模(平方根)相互比較,得到控制信號,來指示本地產(chǎn)生的prompt c/a碼調(diào)整的方向,因為根據(jù)early和late相關(guān)結(jié)果就可以計算出來現(xiàn)在prompt的c/a碼和輸入的c/a碼之間的時間差,所以就可以調(diào)整位置,縮小這個時間差,具體如何計算的,后面還會討論。 現(xiàn)在討論carrier loop,就在上圖偏下位置。這個loop就是用pll來跟蹤載波的變化的。首先輸入的信號的c/a信息是被removed的,所以進(jìn)入loop的信號就是載波信號+navigation data,這個信號通過兩條途徑,一條直接途徑,一條是90度相移,輸入信號分別和這兩條path上的正交的載波相乘,這個載波就是本地的vco根據(jù)捕獲時得到的載波,相乘對相位或頻率來說就是做差,因此這個乘法就是做相位比較,聽起來很高深,本質(zhì)就是調(diào)制,相乘后差頻率就是低頻分量需要保留,還有一個求和的頻率需要濾波掉,所以相乘后都需要做低通濾波,然后通過一個arctan()比較器,這個arctan()比較器在我目前看來就是求相位是正的還是負(fù),根據(jù)相位的正負(fù),就可以產(chǎn)生控制信號去調(diào)整vco是增加頻率還是降低頻率。因此,仍然是一個環(huán)。 現(xiàn)在說說這兩個環(huán)如何interact。其實是并行的工作,tracking總是在捕獲到c/a碼的初始相位以及載波的頻率后才被啟動,而且這兩個初始值都會傳遞給tracking。在上圖,去code loop的信號需要remove 載波的影響,因此就用捕獲得到的載波來eliminate載波的影響;同樣的,去carrier loop的信號需要remove c/a碼的影響,因此就用捕獲得到的c/a碼的來eliminate c/a碼的影響,這樣就設(shè)置好了兩個環(huán)的初始條件,后邊就可以交叉的迭代進(jìn)行了,并且利用新產(chǎn)生的c/a碼和新的載波來remove各自的影響。 *說點設(shè)計的事。這個先捕獲在跟蹤的方法,太贊了。前者是粗同步,相當(dāng)于在縮小解空間,到tracking的時候,就是精同步了,無論是時間還是頻率上的,因此利用粗同步的結(jié)果,或說在粗同步的基礎(chǔ)之上來微調(diào)整。我想說的是,一個問題的解決,如果只有一步,或者說只有一個層次,那么就很困難,這里就是兩步,也就是兩個層次,我們完成信號的同步不是一蹴而就的,而是逐步逼近的,這個思路確實很值得學(xué)習(xí),尤其是系統(tǒng)設(shè)計。這里面設(shè)計的方法論和哲學(xué)的意味更需要好好品味!

8.7 用PLL來跟蹤GPS信號

8.8 載波頻率更新for BASS approach.(8.8~8.12都在討論BASS)

BASS: block adjustment of synchronization signal.顧名思義,就是考慮相鄰block的相位差,也就是說dft是完全從頻率域角度計算一個時間段內(nèi)的信號的頻率,得到1khz或更小的分辨率。現(xiàn)在,我們捕獲到粗分辨率的信號后,可以用前面的costas鎖相環(huán)來跟蹤,還可以用現(xiàn)在這個基于塊同步的方式,也就是利用相鄰的數(shù)據(jù)塊的不同相位差值除以時間得到更精確的載波多普勒變化。和用pll最大不同是,不用反饋。下面看具體的操作。對每段數(shù)據(jù),我們可以用dft的定義來得到頻域的值: X(k)=∑n=0N?1x(n)e?j2πnk/N。現(xiàn)在,假設(shè)x(n)是sin信號,那么最大幅度的|X(ki)|就對應(yīng)這個正弦信號的頻率。同時我們還可以容易得到正弦信號的初始相位: 這里寫圖片描述。通常情況下,如果對輸入信號完全不知道,那么就需要計算所有的k值(0~N-1),然后比較求最大幅度的值,這就必須借助FFT減少計算次數(shù);如果輸入信號的頻率知道一些,即:有1khz或100hz左右的分辨率也就是誤差啦,這時候,我們就沒必要計算所有的k值,完全可以根據(jù)目前的頻率值(有誤差)/頻率分辨率=k值,然后直接用dft計算一個X(k)值即可找到最大的幅度值的位置。但值得注意的是,我們這里不關(guān)心幅度,而是關(guān)系相位,也就是說,連續(xù)的時間段內(nèi),我們用上面的dft的方法都可以得到一個X(k),雖然不同時間段計算出來的|X(k)|相同,但是θ(k)肯定不同,這個θ(k)的差值就可以得到更精確的多普勒變化,即:f=δθm=θm+n?θnm如下圖: 這里寫圖片描述評論一下:這個方法確實絕了。fft只是explore一段時間內(nèi)頻率的分布,但是不同時間段頻率的變化就不能容易得到,所以用前后相繼的數(shù)據(jù)塊的相位變化就可以得到多普勒的變化,而且精度比fft還高,但這個方法必須是建立在fft基礎(chǔ)上,即:首先得有利用fft捕獲到粗分辨率的載波。也就是,fft和bass配合使用,而且不需要用反饋,就可以得到高精度的載波。問題:前面討論捕獲的時候,也提到了用相位之差來提高捕獲的精度的。需要對比一下!本質(zhì)都是一樣。

8.9kernal function(e?j2πnk/N)不連續(xù)性

再把前文的BASS方法理一遍,首先我們知道粗分辨率的載波,然后去反推k,然后計算X(k),然后得到θ(k), 然后根據(jù)不同時間段的相位,計算相位差,最后用這個相位差除以時間就得到了高分辨率的頻率。現(xiàn)在的問題是,由于是知道頻率反推k,所以k值就可能是小數(shù)。這里我大膽的猜想,在初始的時候,由粗分辨率的載波頻率圖反推k是整數(shù),但隨著不斷的調(diào)整本地的載波頻率,因為BASS可以得到更精確的頻率,所以k就越來越不可能是整數(shù),這就導(dǎo)致相位的不連續(xù),如下圖: 這里寫圖片描述 因此需要每次把這個不連續(xù)相位給扣除。具體的就不表!

8.10 c/a碼開頭的測量精度問題

采樣5mhz, 則每個采樣周期是200ns,這就是時間分辨率,所謂時間分辨率,就是最小可以區(qū)別的時間。根據(jù)這個200ns,我們很容易計算得到gps導(dǎo)航的距離分辨率即使: 200?10?9?3?108=60m, 這個距離分辨率還是太大,不足以計算得到user position。如何提高時間精度?這個就需要用dll,遲早門電路,下圖:early c/a碼是指input的c/a碼的開始相位比這個碼早;late c/a碼是指input的c/a碼的開始相位比這個碼晚。 這里寫圖片描述 如何調(diào)整這個early和late就可以提高時間精度呢?還得繼續(xù)看下面圖。圖中,顯示的相關(guān)函數(shù)峰是c/a碼自相關(guān)函數(shù),當(dāng)輸入的c/a碼和本地產(chǎn)生的c/a碼完全對齊,產(chǎn)生相關(guān)峰值1023,如果有偏移,無論左偏還是右偏,相關(guān)值都會變小,注意:由于c/a碼的碼率是1.023mhz,所以每個chip的長度是977.5ns,因此相關(guān)峰的物理意義就是往左移動977.5ns相關(guān)峰就為0,往右移動977.5ns也變成0。因此,我們讓early和late的c/a碼和prompt的c/a碼都相差2個采樣周期,即:d=400ns,這樣,我們通過同時把三組c/a碼和input的c/a碼相關(guān)得到三個值yp,ye,yl,根據(jù)這三個值,就可以計算除prompt c/a碼和input c/a碼之間的時間差,然后移動prompt c/a碼去補(bǔ)償。需要注意的是,移動prompt c/a碼,early和late也同時移動了,以方便下一次計算相關(guān)值。 這里寫圖片描述 現(xiàn)在可以討論如何提高時間精度了。如下圖: 這里寫圖片描述 當(dāng)輸入的c/a碼開始位置比prompt的開始位置相差大于1/2個采樣周期(即:大于100ns),那么可以如圖fig8.10這樣調(diào)整prompt往前一個采樣周期,這樣相位相差就小于100ns,也就是說可以把時間分辨率從200ns降低到100ns。為什么不能更小呢?現(xiàn)在舉例:如果極限情況下,輸入的c/a碼是采樣輸入的,但是采樣的位置和真實的位置剛好相差100ns,那么即使如何調(diào)整prompt,都是相差100ns.不可能更下的誤差了。這里需要說明的是,bass雖然是每個1ms都計算,但是并不是每個1ms都更新,而是10ms才更新,原因是,c/a碼的多普勒頻移最多6.4hz,所以沒16ms才會偏移100ns。因此,每10ms調(diào)整一次就足夠了!

8.12 用curve fitting提高時間分辨率

(暫時沒看!)

8.13 略

8.14 combining RF and C/A code,why?沒看懂

在講之前,需要解除一個疑惑:從8.8~8.14都在講BASS,而不是之前的基于反饋loop的方法,這里書上方法說c/a碼只產(chǎn)生一次,然后每次只是用輸入的c/a碼和三個c/a碼相關(guān),然后比較大小決定本地產(chǎn)生的c/a碼是否需要超前或滯后的移位,但碼就是這個碼,不變了。所以,簡單很多!

8.15 tracking長數(shù)據(jù)

數(shù)據(jù)如果功率弱,可以用更長的時間來track,例如用20ms,那么就可以得到13db的增益(10log(20/1))。但不能更長了,更長就要處理這段數(shù)據(jù)里面出現(xiàn)的navigation data transition,復(fù)雜度就高了。現(xiàn)在的疑問是,如何找到navigation data transition,如何消除呢?

8.16本章總結(jié)

本章介紹了兩個方法來做tracking.一種是傳統(tǒng)的基于loop的方法;另一種是bass,從時域來做。bass確實簡單,沒有反饋,但是bass在worst case下會由于本地產(chǎn)生的c/a碼和接收到的c/a碼之間misalignment 100ns(半個采樣周期),從而相關(guān)峰值達(dá)不到1023這么大,會小一些(918),所以性能會差大約1dB。再比較一下兩種在c/a碼同步上的區(qū)別,結(jié)構(gòu)上都有early and late碼,重要的區(qū)別是: 傳統(tǒng)的方法是沒1ms都會出來一個early/late比較結(jié)果,根據(jù)這個結(jié)果來決定prompt往前移動一個碼片還是往后移動一個碼片;而BASS則會根據(jù)early和late相關(guān)的具體值,來計算得到prompt code偏移的時間的具體值,由于考慮噪聲的影響,所以并不是每1ms就更新,而是通常10 or 20ms計算一個平均值,把這個平均值和門限比較,決定往前還是往后移動。也就是說,BASS沒有實時的去更新,所以簡單!繼續(xù)。計算出來的prompt code和input code之間的時間的差值,應(yīng)該很精確,所以這個方法在時間同步上可以精度更高,而傳統(tǒng)的做法就是比較相對值,來左右移動,因此精度很小。但另一個角度思考,則是算出的這個相對值每10ms用一次,這10ms中間就可能出現(xiàn)prompt code和input code相差大于100ns的情況,這樣導(dǎo)致BASS的相關(guān)峰總是比傳統(tǒng)的方法得到相關(guān)峰小!
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 正镶白旗| 普兰店市| 安宁市| 丰都县| 乌拉特中旗| 无锡市| 夏河县| 綦江县| 五寨县| 高淳县| 石渠县| 观塘区| 西乌珠穆沁旗| 南城县| 道孚县| 泾阳县| 长葛市| 德江县| 民丰县| 苗栗县| 都昌县| 湖口县| 积石山| 涿鹿县| 普定县| 郓城县| 广河县| 西宁市| 东平县| 香河县| 台山市| 万全县| 安乡县| 斗六市| 华亭县| 通榆县| 兴安盟| 皮山县| 潼南县| 鄂温| 开化县|