Doppler Shift Calculation

Hi,

I recently received a pass from a LEO satellite, and I am interested in collecting information on how
the doppler shift of this measured (IQ) signal is changing over time. Is there any software/toolkits
that can help calculate the doppler shift over the time of the pass given the IQ signal? To clarify, I’m not interested in doppler shift compensation during the collection of the satellite signal.

Have a look at https://celestrak.com/software/tskelso-sw.php and then especially the SGP4/SDP4 information.

I too, have an interest on the I/Q and when i get further into this, I’d think SoapySDR will allows raw I/Q download. I believe we can use the I/Q to measure the doppler frequency per units of time, and thereby derive a velocity vector.

Have a look at GitHub - cbassa/strf: Radio Frequency Satellite Tracking, which does exactly this.

thank you cgbsat for the strf link. I’m exploring that tool for the purpose of LEO Orbit Determination. I can pipe ‘rtl_sdr’ to strf without satnogs, but i would loose the great satnog’s scheduling system. the I/Q file downloaded (if enabled) is corrected for doppler. Is there a way for satnogs to furnish uncorrected doppler?

You can adapt the satnogs-flowgraphs to put a UDP sink before Doppler correction to tap off the raw data. I use this to get STRF recordings for all networked observations on station #40 (netcat into fifo into rffft). I also believe @michal.drzal and @SA2KNG have a repo that starts STRF outside of networked observations, and possibly implemented this raw data tap as well.

1 Like

You can get your Doppler-corrected data from artifacts which upload you can setup in satnogs client configuration. They have TLE and site location in the metadata and you can use that to get measurements of the Doppler-corrected data and add Doppler effect back again and get your measurements you can use for OD.

Thank you both for the two different approaches. I’ve been digging into both and below is some comment/questions;

cgbsat) I’ve ran the STRF directly piped from my rtl_sdr, but I don’t have the cool sat_nogs Ansible Orchestration for accurate AOS. I have to dig more on how you use netcat in your piping. Do you know which satnogs-flowgraph would accommodate the UDP sink? This seems the most efficient way to combine the satnogs orchestration with a time-stamped I/Q

michaal.drzal) is this similar to the satnogs-waterfall-tabulation-helper.py? I’ve tried that as well, learning more, but how does one time-stamp it? I believe the I/Q needs a time stamp which STRF provides. When you mention upload, you mean set satnogs-client to save the I/Q? Is that I/Q time stamped? I thought it may be Doppler corrected already?

Later, after I get comfortable with a method on getting the I/Q easily, I’d like to coordinate with at least two other ground stations in my area so we can get Doppler on the satellite. I believe this is also required for Orbit Determination?

I have added the UDP sink to all flowgraphs in satnogs-flowgraphs. That way I can get an STRF recording regardless of the modulation of the satellite.

Both STRF as well as the SatNOGS artifacts record spectra (waterfalls), not IQ data. These spectra are timestamped, such that you can determine time and frequency measurements from the recording and determine Doppler curves. The accuracy in the timing comes from the synchronization of the PC clock. The SatNOGS artifacts are indeed Doppler corrected, but since the TLE with which the data was corrected is available, we can compute uncorrected frequencies.

For orbit determination from Doppler curves you can indeed use two stations observing the same satellite as the same time, but it is usually easier to observe several passes of the same satellite over a day or two. That is usually sufficient to get a good enough orbit for predicting passes in the future. For identifying a Doppler curve against a catalog of orbits, data from one or two passes is typically sufficient.

If you want to learn more about this, join the SatNOGS IRC at https://app.element.io/#/room/#satnogs:matrix.org. There are lots of people that can help you there.

Like this ? Files · udp_uncorrected · Daniel Ekman SA2KNG SA2KNG / satnogs-flowgraphs · GitLab