I receive OOK signals from a remote control in 433MHz. I'm using a dongle RTL-SDR on GNU Radio. The FFT output signal from the RTL-SDR Source block is represented on the picture: enter image description here

My question is, why i have two signals with similar amplitude? Shouldn't it be only one?

The signal in the time domain: enter image description here

The output in time domain after demodulate: enter image description here

  • $\begingroup$ hm, no, since I see no sign of aliases or nonlinearities (try to reduce power, e.g. by moving the transmitter further away), I'd say there are to power sources. By the way, you "similar amplitude" is a difference in powers of a factor of 100… $\endgroup$ Commented Dec 18, 2018 at 13:52
  • $\begingroup$ What's OOK mean? $\endgroup$
    – rclocher3
    Commented Dec 18, 2018 at 15:02
  • $\begingroup$ @rclocher3 On-Off Keying. The transmitter simply switches a tone on and off to transmit data (e.g. bits). A very simple method of transmitting data, highly inefficient power-wise (i.e. with the same average bit energy, you could get much more robust transmission methods), but easy to transmit and possible to receive using incoherent power detection. $\endgroup$ Commented Dec 18, 2018 at 15:38
  • $\begingroup$ Marcos, it might be good to show the time signal, not only the spectrum. If my assessment is right, your SNR should be good enough for us to directly see the OOK in the time signal, very clearly. $\endgroup$ Commented Dec 18, 2018 at 15:42
  • $\begingroup$ @MarcusMüller, I inserted the pictures. I can't test right now, but i remember that when i move the transmitter to the nearest antenna, others signals show up. Is this caused by the near field? $\endgroup$ Commented Dec 18, 2018 at 15:53

1 Answer 1


What's going on

Most software-defined radios use quadrature in their signal processing architecture. This means there are two copies of the signal processing chain, with local oscillators that are 90° apart in phase while being otherwise identical. Once they reach software, they can be processed using complex number arithmetic (hence the "real" and "imaginary" labels on GNU Radio's time domain graph) which makes various signal processing operations much more straightforward.

However, if there is a problem with one of the two signals paths, such that there is significantly different gain between them (there will always be some mismatch since real components aren't perfect and even DSP has finite precision), then you will see what you see here — the signal appearing mirrored, having similar peaks on the positive and negative-frequency sides. (You can experiment with this in GNU Radio — take a signal, convert complex to pair of floats, multiply one by a constant, then convert back to complex, and watch the mirror image appear.)

Specifically in your images, notice that the copy is at the same frequency with opposite sign (−0.23 and +0.23) and also that it is very strong — in the time domain plot the line is nearly ±1.0, which is the absolute maximum representable value in the hardware. All RF hardware will deal worse with strong signals, but digital clipping like you seem to have here will abruptly produce spurious signals of many kinds.

What to do

What you can do is turn off the AGC on your RTL-SDR — it is not good at this task because it does not leave any headroom for suddenly appearing signals — and then set the manual gain setting until the spurious peak appears less but you still have enough signal to process. If that doesn't suffice, then install an attenuator in the antenna line, or relocate the antenna farther away. (Or try unplugging the antenna entirely; strong signals may be picked up anyway.)

Or, if you are solely trying to pick up that OOK signal and don't care about selecting it out of other nearby signals (filtering) or the cleanliness of the pre-demodulation signal, then you could just leave things the way they are and not try to tweak it. (The general risk here is that the receiver might be damaged by a too-strong signal, which you can't tell from the current situation once it's gotten strong enough to clip, but that seems unlikely from a simple battery-powered remote control.)

  • 2
    $\begingroup$ I turned off the IQ Balance Mode in the RTL-SDR Source block and it worked. $\endgroup$ Commented Dec 18, 2018 at 23:06
  • $\begingroup$ Note that Kevin is also right, this doesn't really hurt decodability as OOK - unless there's strong neighboring signals that get mixed into the band by accident through the same intermodulations that led to you "ghost" signal. $\endgroup$ Commented Dec 19, 2018 at 23:25

You must log in to answer this question.

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