Software Defined Radio with HackRF, Lesson 7 - Great Scott Gadgets

Software Defined Radio with HackRF, Lesson 7

Complex Numbers in DSP

In order to clearly see my screen during the demonstration, viewing the video in full screen mode may help. Even better: You can download this video in high resolution (720p). (torrent)

in this lesson

  • lesson 6 homework review
  • why we use complex numbers in DSP
  • amplitude modulation
  • frequency modulation


  1. Launch GNU Radio Companion and locate the block called Quadrature Demod. This block implements the method for frequency demodulation presented in the video. Notice that it takes complex input and produces real-valued (float) output which is a sequence of angles.
  2. Can you find a block that implements our method of amplitude demodulation? It should take complex input and produce real-valued (float) output where each output sample is the magnitude of an input sample.



  • I did a poor job of drawing the result of the (real) absolute value function, but hopefully you can understand what I was trying to show. Then again, perhaps it wasn't any worse than the rest of my drawings.
  • 5 October 2015: I used the WX GUI option in GNU Radio Companion. The default has since changed from WX GUI to QT GUI in the Options block. If you are using a newer version of GNU Radio, you'll need to change it back to WX GUI to follow along with my flowgraph.

Software Defined Radio with HackRF is copyright 2014, 2015 by Michael Ossmann and is released under the CC BY license.