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
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.
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.
- A Python solution for the lesson 6 homework: lesson6solution.py
- Here is a version that uses matplotlib.pylab for plotting like I did in the video. Try it with IPython Notebook or with IPython on the command line (use ipython –pylab): lesson6solution-pylab.py
- 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.