Discrepancy in doppler
Gustavo <[email protected]> Mon, 07 Aug 2006 22:32:22 +0000
| Newsgroups | gmane.comp.hardware.gps.opensource |
|---|---|
| Message-ID | <[email protected]> |
Hi Georg, Cliff I have analised your code and I notice some difference in the way you both compute the carrier and code correction from doppler. Take a Look on this analisis You both define this doppler = (range1-range2)*5.2514/60 = -vel * (L1_HZ / c) clock_offset = clock_offset_vel /c * 1e6 So clock_offset_vel = (clock_offset/1e6)*c doppler_clock = -clock_offset_vel*(L1_HZ / c) = -(clock_offset/1e6) * c *(L1_HZ / c) = -(clock_offset/1e6) * L1_HZ = = -clock_offset * L1_MHZ clock_offset = -doppler_clock/L1_MHZ car_corr = (-doppler - clock_offset * L1_MHZ)/ CARFRQRES = (-doppler + doppler_clock/L1_MHZ * L1_MHZ)/ CARFRQRES = (-doppler + doppler_clock)/ CARFRQRES But here you (Georg) use code_corr = doppler/134 + clock_offset*24.0 while you (Cliff) use code_corr = doppler/65.5 + clock_offset*24.0 Well, analising I could find out that the value is indeed 65.5, because it is the result of L1_MHZ/2.046 * CODFRQRES. It is a scalling between the carrier freq and code half chips (CODFRQRES = 85.14949e-3 Hz). I understanf that L1_MHZ/2.046 is the amount of MHZ per half chip represented in freq by CODFRQRES (which is given in Hz!!!). See code_corr = doppler/65.5 + clock_offset*24.0 = doppler/(L1_MHZ/2.046 * CODFRQRES) + clock_offset*2.046/CODFRQRES = doppler*2.046/(L1_MHZ * CODFRQRES) + clock_offset*2.046/CODFRQRES = (doppler/L1_MHZ + clock_offset)*2.046/CODFRQRES = (doppler/L1_MHZ - doppler_clock/L1_MHZ)*2.046/CODFRQRES = (doppler - doppler_clock)*(2.046/L1_MHZ)/ CODFRQRES = (doppler - doppler_clock)*(2.046*1e6/L1_HZ)/ CODFRQRES = 1e6 * (doppler - doppler_clock)*(2.046*/L1_HZ)/ CODFRQRES However I did not understand: 1-why this 1e6 appears here? 2-In the case of carrier correction the negative signal appears only for the shift in the down conversion from RF to IF, due the phase reversal. However in the code correction there is a negative signal for the doppler due clock. Is that correct? 3-Why does the code DCO needs this scaling 2.046*/L1_HZ? Well I think the carrier correction is ok, however, the code correction should be code_corr = (doppler + doppler_clock)*(2.046*/L1_HZ)/ CODFRQRES which is (turning back) code_corr = (doppler + doppler_clock)*(2.046/L1_HZ)/ CODFRQRES = (doppler/L1_HZ + doppler_clock/L1_HZ)*2.046/CODFRQRES = (doppler/L1_HZ - clock_offset/1e6)*2.046/CODFRQRES = doppler*2.046/(L1_HZ * CODFRQRES) - clock_offset/1e6*2.046/CODFRQRES = doppler/(L1_HZ/2.046 * CODFRQRES) - clock_offset/1e6*2.046/CODFRQRES = doppler/65.5e6 - clock_offset*24.0e-6 Regards, -- Msc. Eng. Gustavo Baldo Carvalho ZARM - Uni-Bremen - Room 1210 Am Fallturm, 28359 Bremen www.zarm.uni-bremen.de Tel:(0049)-(0)421-218-4796 Fax:(0049)-(0)421-218-2521