I recently joined my university's Cube-Sat Program and was delegated the task of looking for software that modulates and demodulates signals (~437MHz, GMSK, AX.25).

The problem now is that I don't understand what is required. The signal comes through a Yagi antenna and a transceiver, so wouldn't the transceiver handle the modulation and demodulation and feed in bit-strings? And if so where does a Sound-card modem come into play here? Why do I see articles in which people used sound card modems to decode satellite telemetry?

Link to article:http://www.pe0sat.vgnet.nl/decoding/satellite-telemetry/sound-card-modem/

  • $\begingroup$ can you link to such an article? $\endgroup$ Commented Feb 19, 2017 at 1:38

1 Answer 1


The article does in illustrate things rather nicely.

Let's look at the receive side first:

     Signal (@437 MHz)-->(x)--> filters --> IF (@x)
Oscillator (@(437 MHz-x))-/

What happens is that your input RF signal at $f_\text{RF}$ is multiplied in a mixer with a tone of frequency $f_\text{LO}=f_\text{RF}-x$. The output of the mixer hence, mathematically, contains the difference frequency

$$\begin{align} f_\text{IF} &= f_\text{RF}-f_\text{LO} \\ &= f_\text{RF}-(f_\text{RF}-x)\\ &= x \end{align}$$

"LO" stands for "local oscillator", by the way, and "IF" for "intermediate frequency".

You'd then typically either directly demodulate the IF signal, or downconvert it even further.

Now, you'll need some hardware to do all this, namely, something that offers the mixer, the filters (because the mixer produces a lot of other frequencies, too), amplifiers and so on.

The article you've linked to uses the FunCube dongle. Which is a bit of a dated device that looks to the operating system like a sound card. In fact, it's not a sound card, but an IQ receiver. What that means is that the IF signal is further mixed down, in fact, to a new IF of 0 Hz (we call that baseband), and in the process converted to two "orthogonal" signal branches (I and Q).

These two channels are what "looks like" left and right of a stereo signal. They are not audio. They are just that – complex baseband signal.

There's a whole lot of software that can demodulate GMSK in baseband, and there's a whole lot of software that does AX.25. However, which software to use depends on

  1. your hardware – it's no use if the software you use can't talk to your hardware
  2. your operating system and computational environment – it's no use if you find something that works great on Windows 98, but you need your decoder to run on a screen-less Raspberry Pi somewhere in a box,
  3. your data interface – it's no use if your software has a super nice GUI to show you received packets' contents, but you need the data to be streamed via network somewhere else.

The FunCube dongle is a hybrid Superheterodyne / Quadrature receiver system that gives you raw IQ samples. It is the one used in the article. It's a receiver only, and since you said "transceiver", it can't be the device you're going to use.

This architecture is not the only type of receiver you can build. In fact, there's a lot of devices that are pure Quadrature mixing systems, or pure superhets, or directly, mixer-less undersampling systems, and all imaginable combinations of those, and that is just the range of things you'd find in common, general purpose SDR devices. There's no general answer to "how does a transceiver work", because non-SDR transceivers are purpose-built for exactly the signal they deal with – and an analog TV receiver is totally incomparable to an early GSM frontend (which, fun fact, used GMSK, but typically had "overdriven" single-transistor receivers at a low IF) or a garage door opener.

So, your design process would probably be the following:

  1. Choose SDR hardware. Your university is launching a CubeSAT – that's not a cheap hobby, and thus, I guess you could probably do better than a FunCube Dongle with a 192 kHz bandwidth, and an E4000 tuner that tends to misbehave in terms of phase noise. Chances also are you've existing receiver analog frontends – ie. LNA's, preselection filters and so on. Talk to someone who's knowledgeable about the available hardware! In the end, you'll have to plug your thing into an antenna that possibly already exists.
    The hardest part in all this is properly defining what you need. You didn't say in which orbit your CubeSat will end up in – but chances are it's going to be a rather low, i.e. fast-moving one, and then your receiver's digital bandwidth should be wide enough to let you track the changing $f_\text{RF}$¹. So, maybe you should first ask a different question, namely "What are the characteristics of my receiver that I have to note down as requirement when doing {insert what you're doing exactly}?"
  2. Pick, or build, a receiver software
  3. Test and refine.

¹ Doppler Effect!

  • $\begingroup$ Your answer is very helpful but there is one thing that remains unclear to me and I'd really appreciate it if you could take time to answer. $\endgroup$
    – Frank
    Commented Feb 19, 2017 at 12:11
  • $\begingroup$ I still do not understand how the modulated signal, in the form of frequencies, be it IF or anything else are transformed into bit strings that goes into a computer. $\endgroup$
    – Frank
    Commented Feb 19, 2017 at 12:12
  • $\begingroup$ This should be done by hardware as software have no sense of frequencies right? But if the software is already receiving bit strings, why and how does it demodulate the signal? $\endgroup$
    – Frank
    Commented Feb 19, 2017 at 12:12
  • $\begingroup$ I mean, there is a component in the system that looks at the frequency and compares it to the GMSK keys it has and extracts the data in the form of bit strings, right? what is actually doing this? $\endgroup$
    – Frank
    Commented Feb 19, 2017 at 12:19
  • $\begingroup$ @Frank transforming an analog signal to a series of digital numbers is the job of an ADC. Any software-defined radio needs to have those. $\endgroup$ Commented Feb 19, 2017 at 12:25

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .