A demodulator written in C to decode IQ data from the 137.35Mhz/137.77Mhz telemetry beacons from NOAA-15, NOAA-18, and NOAA-19
See the background of this project here http://wiki.nebarnix.com/wiki/NOAA_POES_TIP_Demodulation
Attribution: DSP code for the Gardner Clock Recovery based on M&M Clock Recovery. That and the Carrier Tracking PLL adapted from GNURADIO source. Wave file format parser adapted from http://truelogic.org/wordpress/2015/09/04/parsing-a-wav-file-in-c/
Todo in decreasing order of importance:
- Add dynamic lowpass filter coefficient generator to compensate for varying input sample rates
- Add sync word detection for metrics
- Add sync word byte conversion to form minor frame data.
- Add in 8x interpolation for the clock recovery routine for better performance. Need to optimize interpolator
- Keep track of local recording time and process it in parallel with the data. We will need this through ALL steps of processing
- Add in ability to enable/disable/override things through command line options
- Add in ability to gauge realtime signal quality
- Add support for reading and writing RAW data files. Need to write read support
- Add bytesync back into common libs with separate functions for POES and ARGOS
- Add the rest of the processing chain -- See the https://github.com/nebarnix/PDT-TelemetryExplorer repo!!
- Add a gui to make pretty things happen in realtime (constellation, quality bar graph, pretty waterfall, PLL controls etc)
- Add hilbert transform to allow for real data input (large bandwidth USB or LSB recording?) This is now a priority for SATNOGS recordings
- Spits out data to minorframes_{datetime}.txt.
- Takes in an IQ wav file (>50Ksps if the center frequency was not tracked during recording)
- Works better than using an audio pipe
- Spits out data to minorframes_{datetime}.txt.
- Takes in RAW I/Q audio from sdr# (32khz, unity gain, RAW mode) or similar.
- Not as good as processing wav files, but can be done in realtime
- Demodulates 401.65Mhz transmissions from ground transmitters to POES satellites
- Spits out packets to packets.txt.
- Takes in .wav files.
- TODO
- Add support for real data input
- Append Quality/SNR for triangulation
- Demodulates 401.65Mhz transmissions from ground transmitters to POES satellites
- Spits out packets to packets.txt.
- Takes in RAW I/Q audio from sdr# or similar (32khz, unity gain, RAW mode).
- TODO
- Add UTC timestamps for ARGOS realtime packets
- Add support for real data input
- Append Quality/SNR for triangulation