I want to use the *.ogg files available in Satnogs' database to test demodulation software for several satellites (using gnuradio).

Can I use the ogg file source (available in gr-satnogs module) and transform its output to complex data and then do the signal processing as if I were using raw IQ data coming from an SDR? And in this case, what sample rate is suitable in the throttle block ?

gnuradio ogg file source

Or, if not possible, should I convert the *.ogg file first to a *.raw file, using sox for example (Sound eXchange program) and then use it in GNU Radio? In this case, what are the parameters (input file sample rate, output file sample rate, encoding, sample size in bits, etc ...) i must use ?


(This answer is from the perspective of GNU Radio programming; I'm not familiar with what SatNOGS is doing.)

There are two problems to solve to use a given data file. First, you need to decode the file format into samples of a signal. The OGG File Source presumably solves this problem for you. Converting the file to a raw format is also an option, but not necessary.

Second, you need to interpret the signal correctly. And here is where I can fairly confidently say you are going wrong:

  • Converting float to complex with a zero imaginary part (as seen in your proposed graph) results in a signal with a spectrum which is symmetric about 0 Hz. This is not necessarily wrong, but it is definitely not an IQ / complex-baseband signal, which would be expected to have an asymmetric spectrum — and converting such a signal to real/float for storage would either destroy its content or require a frequency shift step to put all of the signal in positive frequencies. Converting float to complex is almost certainly not a correct processing step.

  • Ogg is a container for audio data. It is theoretically possible but unlikely that it has been applied here to IQ RF signals; it is much more likely, whenever you see an audio-formatted radio recording, that it is a recording of the signal after some demodulator — most commonly a FM demodulator. For example, a signal transmitted as FSK will show up in the "audio" data with varying level (a square wave / pulse train) instead of varying frequency.

My recommendation would be to first look at the signal (using for example the "QT GUI Sink" block connected after the Throttle) and identify the modulation (or lack thereof), and use that to decide what to add to your signal processing chain.


You need to convert the .ogg file into something usable by the flowgraph. How to open satnogs iq.dat files covers a similar issue for IQ files.

For example, an APT recording with noaa_apt_decoder.grc resamples outside the normal demodulation chain before saving to the .ogg file:

SatNOGS APT OGG file sink flowgraph

You need to reverse this resampling and possibly add a throttle depending on what you're trying to do.

enter image description here

This assumes you want to run it through the existing GnuRadio flowgraph. If you want to feed into some other tool, you'll need to convert into a format that will take. You won't get back to the original IQ if it's not recorded but you could remix it with a carrier to recreate an equivalent, acceptable signal but it's probably not worth the effort.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.