SW for extracting frames


I am interested in extracting the Telemetry frames (raw stream of bytes) from a recorded contact (the sound files recorded during a pass) and process them. In addition, I would like to put the raw Telemetry frames in a TCP/IP socket and process them by another process.

Thus, can anyone give some information about how the procedure should be? Which SW can I use and how? I hope I explain myself correctly.

Any idea, suggestion, document or web site is very welcome.

Thanks in advance,

Ideally more information about the frame format in question would suffice. There are varieties of telemetry frame formats and therefore it is quite hard to tell you which software to use without knowing the frame format. You could implement a program by urself that could this in any language such as C++. For a quicker implementation I would go for GNU Radio. Below is a generic way of extracting frames by using GNU Radio. It is a good starting point.
[1]Demodulation : The fist thing you need to do is extracting raw binary bits. Im assuming that the signal in the recorded files you have have been modulated by some modulation scheme [BPSK, GFSK etc]. These modulation schemes require different demodulators to be used. Typically the demodulation process involves [a] filtering to acquire the signal in the band of interest [b] symbol time synchronization(M&M, Polyphase clock sync)[c] carrier phase synchronization(Costas Loop)[d] equalization(CMA, kurtotic etc). I would provide you with more specific information once you let us know the exact modulation scheme you are using.

[2] Frame extraction : The most important task in this step is to find out where the frame begins and where it ends i.e. frame synchronization. Frames are always accompanied by certain indicators which can help one to successfully extract the frame. So far, I have seen this implemented two basic forms [a] start and end flags eg. AX.25. In this form, a frame is sorrounded by flags e.g in AX.25 we have |start flag = 0x7E | Data | stop flag = 0x7E | [b] A sync word an information about frame length e.g |sync word = 0xAB77AC25| frame length| Data … . In either way, the “correlate access code block” in GNU Radio could assist you in this process

[3] TCP sockets. GNU Radio has blocks support TCP and UDP connections. You only need to specify the IP address and port numbers. Nothing complicated.

The following links could also be useful
[1] GNU Radio tutorials : http://gnuradio.org/redmine/projects/gnuradio/wiki/Guided_Tutorials
[2] A GFSK transceiver that I implemented in GNU Radio. It shows how to do the demodulation and send data via sockets : http://stackoverflow.com/questions/35445529/gfsk-modulation-demodulation-with-gnu-radio-and-usrp

Hopefully this will help.

Hi Moses,

Thank you very much for your reply.
My idea is to extract the raw frames, knowing the encoding, modulation, etc. and then decode the frames and extract the TM using a template-based tool I am developing. So, I need some sample data.


Hi Alberto,

What satellites are you interested in?

You can take a look at https://github.com/daniestevez/gr-satellites
Perhaps you can reuse something in there.

Thanks, that is perfect.
I just need a generic procedure and some sample data for developing a tool.
I think I going to take the GNURadio way.