I’ve had a question about Doppler shift compensation on the FUNcube satellite. On the downlink on 145MHz, the Doppler shift as the satellite passes over will start at about 3kHz low and end at about 3kHz high.
For FM reception and transmission this is often not a problem as the IF passbands for FM receivers are generous enough such that distortion is negligible and the capture effect of FM automtically helps us. However, the downlink of FUNcube isn’t FM, it’s linear and it’s a mixture of SSB voice and BPSK telemetry.
SSB can be corrected with an “open loop” scheme where given a downlink frequency (or indeed and uplink frequency), over time knowing the satellite’s orbit from its up-to-date Keplerian elements, the frequency can be corrected: programs like IntantTrack together with InstantTune have been doing this for a very long time!
However the accuracy required for narrow band BPSK telemetry is very much more and really needs a closed loop design due to the vaguaries of downlink frequency deviations mostly due to the continual temperature changes on the satellite as it spins and goes into and out of eclipse. The software we’re developing for FUNcube has two modes: a hunt mode and a tracking mode. In hunt mode, the signal is not locked and the software performs an exhaustive search across the available passband. In tracking mode, the carrier has been found and can be tracked by detecting incremental longer term agregate phase aberrations from the nominal hunted frequency.
There are two neat things about using an SDR like the FCD. Firstly, hunting for the signal is quite CPU intensive, but once it’s hunted the signal down, it can go back through the raw spectrum history and extract frames retrospectively. Secondly, it is entirely feasible to track multiple satellites within the SDR passband concurrently.