我在研究GPS定位原理時 有個問題一直想不出解答 不知道大家是否知道答案
在GPS定位時需要至少4顆衛星資訊解決 接收器之位置(XYZ) 與時間誤差T 等4個未知數
而在計算過程中 衛星與接收器之間的距離D 是藉由C*delta_T所得到的量測值
我的問題就在這delta_T 信號傳送時間的求得 之計算方式
C/A code的碼長為1023 bits, 我所查到的資料都說C/A code的週期1ms
如果是的話 根據資料:
*******************************************
接收器會產生t1時間的C/A code=G(t1)
如果接收器在t2時間接收到衛星傳來的C/A code=R(t2)
利用接收器產生的C/A code做shift 來匹配收到的信號 找出傳送時間 : G(t1+delta_t)=R(t2)
*******************************************
原理上我懂,但我覺得有個不太合理的地方
光速C=300000 km/s
衛星距離地球約20000km
也就是信號需要約1/15=0.067s= 67ms 到達接收器(自轉公轉 等先不考慮)
這樣delay time會超過一個週期 那接收器怎麼知道C/A code應該對應到哪個週期
因為每個周期都會有一個時間點會與接收到的信號有最大正相關 這樣應該算不出信號的傳輸時間吧
不知道我的理解是否有那裡不正確(EX:C/A code 週期不是1ms) 或是還有我不知道的資訊在
另外不知道哪裡有驗證gps定位演算法的資料 寫了個程式但不知道對不對(從知道5顆以上衛星的位置+psedorange開始)




























































































