[OpenSource_GPS] Discrepancy in doppler
Gustavo
gustavo at spacetec.zarm.uni-bremen.de
Mon Aug 7 15:32:22 PDT 2006
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
More information about the opensource_gps
mailing list