[Sphyrna-devel] About locking mechanism (doppler calculation)

Dmirty Platonov shadowjack at mail.ru
Mon Jul 23 14:22:30 CEST 2007


After we got candidate (ms half of REG 11 > 0x0800 (or other threshold)), we need further adjust doppler (REG 05/06). It is done via REG 0b (we need to find out if whole reg is adjustment parameter or only low half, as high half if almost always constant). Goal of this phase is to make ls half of REG 11 == 0x37.
Initial value of REG 0b (let us call it "code estimate" while proper term emerges) is calculated from ls half of REG 11 (which I believe returns index of correlator which gave peak). Proper coefficient are to be found, but here is data from cold2.log (all decimal):
CH CI      CE
1  573     2801
8  591     2886
2  695     3425
3  984     4823
6  1612    7908
7  1651    8063

where CH - channel, CI - correlator index, CE - code estimate (initial value here) = (ls half of REG 11 - BASE=0x4000) (if this is indeed base, does not affect anything, only for readability).
After that, algorithm, changing CE tries to keep CI == 0x37, using CI as feedback. Once it is done (and during, possible, too, if we include dCI/dt), dCE/dt gives us doppler.

Dmitry.

P.S. We need to come up with some terminology, because typing something like ls half of reg xxx is just boring. I attempted to come up with some names, but since my English is somewhat broken, I'd like to hear some alternative names for key values (registers).
P.P.S.
I'd like someone to write coldstart.c (or .py) to try out ideas. I have no hardware to test, so I do not feel like writing one. Anyone?



More information about the Sphyrna-devel mailing list