Beginner question: LimesSDRmini and simple OOK transmitter - Frequency offset

Hi there,

I want to realise a simple OOK transmitter in gnuradio companion to turn on and off my wireless wallplugs. Basically my flowgarph is working, but I am a little bit confused why :smiley:

I set up the graph according to examples that I found on the wiki (

Using this graph, the final transmission is not on 433.595 Mhz but on 433.19 Mhz. Disabling the blocks Signal Source, Multiplication, Throttle and connecting the Repeat block directly to the TX sink, results in the correct transmission frequency. Why is this happening? Does the Sink block itself multiply the input signal so that, in my graph, the multiplication is being done twice ?

Second question: Does I really need the throttle block in this graph? The throttling is done via the TX sink, isn’t it ?

Thank you very much for your time :wink:

Kind regards, Rush


your flowgraph definitely won´t work as you showed it above.
Your modulation signal should fullfill nyquist theorem:
f_mod <= f_samp/2. And that is generally true.

Lime SDR relates on so called homodyne mixing.

That means you produce a signal with relativ low frequency within your baseband considering the
obove equation. After that, the signal f_int (so called intermediate frequency) goes into LimeSDR Sink (TX) and “leaves” litarally the
softwareside because (again), it´s only possible to handle signals at the software side which fullfill nyquist. The signal f_int is then mixed in a analoge mixer (its actually a multiplication) with a signal at frequency f_lo, produced by the local oszillator (fixed frequency) and additional decimation/interpolation to get the desired (rf) frequency. The frequency after mixing is actually a multiple of the difference- and sum-frequency of f_int and f_lo. A analoge bandpass-filter ensures to get the correct rf-frequency.

Losely spoken: rx works in same but reverse manner.

Certainly i skipped some intermediate steps, but for a basic understanding it should be ok.