Forum: GNU Radio Decoding funcube telemetry with gnuradio

E05cb2979b45c939ef802ebd4684d402?d=identicon&s=25 M Dammer (Guest)
on 2013-11-06 15:32
(Received via mailing list)
FUNcube-1 will be launched in about two weeks time and I would like to
ask if anybody has aleady worked or is working on receiving / decoding
the FUNcube telemetry with gnuradio (and an RTL-SDR as receiver)?
Modulation is 1200bps BPSK. The telemetry format is well described on
the funcube page ( http://funcube.org.uk/working-documents/ ).
I am interested in grc flowgraphs for BPSK reception as well.
73 Mark
F762b223a87f868db769f9a297fe976c?d=identicon&s=25 Mike W. (mike_w)
on 2013-11-08 23:03
Hello Mark

I am interested in that too. Demodulating BPSK is reasonably easy using
the PSK demodulator block (don't use the DPSK block, it does not work
reliably in 3.7)

Take the input from the Funcube dongle, RTL or whatever source. Set the
frequency to give a small IF offset, e.g. 20kHz.

Use a frequency translating FIR filter block to convert to zero
frequency (this is to avoid the DC spike which would interfere with
demodulation if you tuned to zero beat the BPSK signal). I used 16 taps
and no decimation, you may want to use decimation, depending on your
sample rate.

Following the frequency translating filter you need a low pass filter. I
used a 1kHz bandwidth Hamming Filter with a transition width of 200Hz.
This is a little wider then strictly needed but allows for some
miss-tuning. You need to set the decimation of this filter to give you 2
sameples per symbol, so with a funcube dongle and 96k sample rate you
need to decimate by 40 because 96000/40 = 2400 which is two samples per
symbol at 1200 baud. If you have the newer funcube dongle its samples at
192k so decimation would be 80. If it is a TV dongle decimation will be
much higher and you might want to do some of it in the frequency
translating filter to reduce CPU load.

Following the low pass filter use a PSK demodulator block, 2
constellation points, 2 samples per symbol, differential encoding and
the rest defaults.

This will then give you a stream of bytes that will be 0 or 1 depending
on the data.

From here you probably need to add your own block or save to a file and
read the data with your own code. The data format is given in the
Funcube documentation but I am not aware the standard GRC blocks will do
all the steps needed to get to raw data. The format used forward error
correction and is packetised. Its probably best to do all of that in C
and you could use a GRC block or more easily a program reading from a
fifo.

To do the latter, you should first make a fifo using mkfifo in the
terminal. Then use a file sink block to save the data from the PDK demod
block to the fifo. Read from the Fifo in your own program.

Once you have this working, you can start adding things like Doppler
tracking and AGC.

I have done this for another similar project, at some point I hope to
make my C code into a block but came across a problem which I can't
solve in GRC. That is, the data rate that emerges from my C programme is
not related to the sample rate in a simple way. Decoded packets vary in
length due to bit stuffing, control words and coding and you need
several hundred bits from the demodulator before you are ready to
produce a data packet. Demodulating in a separate program sidesteps all
this and means you don't have to do all the arcane stuff you need to do
to write a GRC block.

Finally, there is a much easier way. Use the program provided by AMSAT
UK that does all the work for you.

Mike



M Dammer wrote in post #1126596:
> FUNcube-1 will be launched in about two weeks time and I would like to
> ask if anybody has aleady worked or is working on receiving / decoding
> the FUNcube telemetry with gnuradio (and an RTL-SDR as receiver)?
> Modulation is 1200bps BPSK. The telemetry format is well described on
> the funcube page ( http://funcube.org.uk/working-documents/ ).
> I am interested in grc flowgraphs for BPSK reception as well.
> 73 Mark
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.