I am currently working on a BPSK demodulator and decoder for a satellite communication system using GnuRadio.

The system uses a BPSK modulation at roughly 2GHz with a symbol rate of 200 ksymb/s. I recorded the signal directly from the transceiver module connected to my Ettus b200mini via a coax cable and some attenuation in-between using 2.4 MS/s and therefore 12 SPS.

I create the following graph for demodulating the signal, which works while using it between different SDRs for sending and receiving. But when I try to demodulate the signal from the transceiver module, I get a really noisy constellation figure (see screenshot).

I already tried different ways of filtering, different levels of attenuation between the sender and receiver, and many different settings for the used blocks, so far nothing helped.

Can anyone help me here? Even some hints on what I could try would already be nice.

Kind regards


Currently Used GnuRadio Graph

Output of the GR Graph

  • 1
    $\begingroup$ It doesn't look so bad to me. Are you sure those noisy points are there all the time, that is, not just at the start, before the synchronizers kick in? They may also correspond to periods where the signal disappears, maybe between frames or something like that. $\endgroup$
    – MBaz
    Oct 12, 2020 at 15:59
  • $\begingroup$ I see a really super-clean constellation, for radio. If there's any significant error-correcting coding in there you should be more than fine. $\endgroup$
    – TimWescott
    Oct 12, 2020 at 16:26

1 Answer 1


It is difficult to advise about the noisy constellation. If it is a channel with no added noise, the constellation looks bad.

Not easy to investigate but here are some suggestions to explore:

  • The signal power might be too low, too close to receiver sensitivity level, so the noise you see on the constellation could be the one of the receiver. Try to increase the power of the signal to be out of the receiver noise zone.

  • Automatic gain control issue: Try to freeze the power and AGC or bypass it if possible check the result

  • Synchronization recovery issue: Synchronize the transceiver and the receiver with their 10 MHz (so you have no carrier and sample offset). Then you can bypass symbol sync module in GNU radio

  • RCC filter: Maybe your filters do not have the same response in the transceiver and receiver. You could check their roll-off

  • $\begingroup$ Thank you for your advice. After a lot more testing, it actually seams to be a problem on the sender side and not in the used graph. I assumed the sender to work, which was my mistake. $\endgroup$
    – valkyrie
    Oct 16, 2020 at 12:49

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.