On the note of decoding LRPT, I have’t been able to get the LRPT demodulation flow-graph working under Gnuradio 3.8. Gives some assert error relating to the costas loop block which I haven’t had time to investigate.
I had a bit of a play with this out of curiosity and learning a bit more. I seem to have GNU Radio 3.8.1.0 on my dev box. I don’t get any assert errors as much as I can tell, but neither am I getting what I believe it correct output.
To have a vague chance of knowing what I was doing and knowing what success looked like, I started with an APT signal. After a couple of false starts I managed to get a picture out (see Understanding ‘satnogs-flowgraphs’ although there might be a better place for it).
So for METEOR LRPT, I decided it sensible to start with an IQ recording, rather than an OGG, although as I did get APT decoding working with the OGG maybe that would have been suffiicent. I grabbed the IQ samples for a new Observation 2073897. I then tried to plumb it into lrpt_demod.grc
:
As I understand from reading the source, any observations without a specific decoder use the default GNURADIO_SCRIPT_FILENAME
(from satnogsclient/settings.py
). So that’s satnogs_fsk_ax25.py
on my station or fsk.grc
in the latest satnogs-flowgraphs. Parameters like frequency and sample rate are fed in from the scheduler.
So I questioned what sample rate the IQ recording was at. It looks like METEOR-M 2’s LRPT 1 runs at 80,000 baud. The FSK flowgraph Doppler Compensation target sampling rate derives from multiplying the baudrate by a ‘decimation’ of 4. The latter is calculated from max(4,satnogs.find_decimation(baudrate, 2, audio_samp_rate))
. So 80k x 4 = 320k sample rate. (Although as I’m writing this I now realise the Soapy Source takes the samp_rate_rx
parameter as it’s sample rate. I assume they’re one and the same although I better go into the code and try and figure that whether that’s right. For now, I’ll assume the output does hit the target. Does this sound correct?)
I guess one fix would be to collect a sample at the right rate same as in lrpt_demod.grc
, but that leads me down another rabbit hole of getting an actual development station set up to schedule, or find a way to schedule a customised IQ pass on my working station…
So am I correct to assume I can fiddle with the Rational Resampler values to decimate this down to a 156250 sample rate - or thereabouts, is it critical? I’m a bit confused by the note: “IQ is at 156.24ksps rate” as this seems to the quadrature rate after the 10/16 resample. Was the original IQ in lrpt_demod.grc
250,000?
Here’s what I’ve got at the moment. I don’t know as much as I should about the modulation side. That’s what I wanted to learn more about.
I’m not getting a coherent constellation, but I know all manner of things could break that.
Bit of a brain dump, but if I can be sure my sample rate is correct I can look elsewhere.