Dr. Marc Lichtman has recently released his free online PySDR guide to Digital Signal Processing (DSP) explained with the help of software defined radio and Python code. Over the years we've seen numerous SDR & DSP courses come out, some requiring payment and some free. We note that this guide is completely free, and appears to be one of the better if not the best guide in terms of explaining DSP fundamental concepts in an easy to understand way. A lot of visualizations and animations are used which really help anyone new to the subject.
While the explanations are very good, please note that this is still a technical University level guide intended for Computer Science or Engineering students, so prerequisite knowledge is required. Dr. Marc recommends it for someone who is:
Interested in using SDRs to do cool stuff
Good with Python
Relatively new to DSP, wireless communications, and SDR
A visual learner, preferring animations over equations
Better at understanding equations after learning the concepts
Looking for concise explanations, not a 1000 page textbook
The SDR hardware used in the book examples is the PlutoSDR which is a fairly low cost SDR intended for use by students. However, the PlutoSDR isn't required as most of the code examples use generated data.
The RAPIDS cuSignal project is billed as an ecosystem that makes enabling CUDA GPU acceleration in Python easy. Scipy is a Python library that is filled with many useful digital signal processing (DSP) algorithms. The cuSignal documentation notes that in some cases you can directly port Scipy signal functions over to cuSignal allowing you to leverage GPU acceleration.
In computing, most operations are performed on the CPU (central processing unit). However, GPU's (graphical processing units) have been gaining popularity for general computing as they can perform many more operations in parallel compared to CPUs. This can be used to significantly accelerate DSP code that is commonly used with SDRs.
In particular the developers have already created a notebook containing some examples of how cuSignal can be used with RTL-SDRs to accelerate an FFT graph. There are various other DSP examples in the list of notebooks too. According to the benchmarks in the notebooks, the GPU computation times are indeed much faster. In the benchmarks they appear to be using a high end NVIDIA P100 GPU, but other NVIDIA graphics cards should also show a good speedup.
The cuSignal code is based on CUDA, so for any GPU acceleration code to work you'll need to have an NVIDIA based GPU (like a graphics card) with a Maxwell or newer core.
We note that in the future we'll be investigating how this could be used to speed up the passive radar algorithms that are used in the KerberosSDR. It may also be useful for running DSP code quickly on a $99 NVIDIA Jetson Nano single board computer.
If the math behind software defined radio and digital signal processing (DSP) concepts does your head in, the RSGB has a short document that explains core DSP concepts without any math. If you're just looking for an overview of what terms like sampling, nyquist, aliasing, number of bits, undersampling, digital filters and fast fourier transform mean, then this short article is a great start.
This article, based on a presentation first given at the 2017 RSGB Convention, is intended for the amateur radio exam tutors to help with teaching the new Software Defined Radio (SDR) material in Syllabus 2019. It goes slightly beyond the syllabus requirements and is designed to give a basic background into Digital Signal Processing (DSP), enabling Tutors to answer some questions that trainees may ask, and to help tutors develop their own knowledge. Links to suggested further reading are given for those who might want to know more.
His book covers University level wireless communications and digital signal processing (DSP) topics with a focus on SDR. Qasim writes that most DSP books that he's seen in the past were written for professional academics which made them difficult to for other technical (but non-mathematical) persons to understand. You can't explain DSP without equations, but Qasim notes that his book aims to keep the math content at school level only, and with plenty of figures to help with visualization. The description reads:
There are different angles from which this book contributes to the understanding of wireless communication systems from the perspective of a Software Defined Radio (SDR).
In my opinion, any language, including that of mathematics, is an unnatural mode of communication. For example, I can write the words darwaza, porte, puerta, umnyango, ovi and only certain people will understand what I mean. However, if I show you an image of a door, almost every single person on the planet will immediately get the concept. A figure imprints a massive amount of parallel information in our brains that is much easier to process and recall later. Since a human mind handles images very well, I try to visualize equations through beautiful figures which you will encounter throughout the text with logical and intuitive explanations.
If you are not a pure wireless communications academic, you would have found that the mainstream textbooks on this topic are filled with heavy mathematical details which makes this field an exclusive membership club for those who can understand several types of frequency variables and their corresponding Fourier transforms, probability and random processes and detection and estimation theories. While this is true for becoming a master, the Software Defined Radio (SDR) revolution and subsequent projects like GNU Radio have made it possible for anyone to sit down and construct their own unique radio by writing code. Many even do not need to know most of the above mentioned topics. All they need to understand is why an algorithm does what it does so that they know how to write its code, or modify it in an even better way. For this purpose, I have only relied on school level mathematics to explain all the concepts. You will not find any e or j of complex numbers here, nor will you encounter any integrals, probability theory and detection or estimation theory. The only things to know are a sine, cosine and a summation as well as a derivative (which I have occasionally used).
The best books written on implementing digital communication systems using Digital Signal Processing (DSP) algorithms are by fred harris (Multirate signal processing for communication systems) and Michael Rice (Digital communications – A discrete-time approach). As often happens with the grandmasters, they walk on a trail without exactly clarifying it for others. After reading their books, I started to feel that fred harris has mainly focused on `how' of communication systems in an unprecedented detail while Michael Rice has mainly covered `what' of communication systems in his simple and beautiful style. In this process, there were many `why' generated in my mind for which I had to find satisfactory answers. This book is a collection of those simple answers.
An extra little bonus is a one page summary of the crux of Rx algorithms, clarifying the role of particular parameters in the signal waveform. Most of the algorithm design can be understood by just grasping the concepts on this one page.
A common theme in this text is that some concepts seem easier in time domain and some others are simpler in frequency domain, while their mathematical derivations reinforce the idea. It is fun to grasp a concept covering all three sides. Finally, the book contains a few examples from GNU Radio that explain how to set the parameters in some blocks (e.g., Costas loop, band edge FLL, polyphase clock sync, etc.).
The book is currently available on Amazon, and on Amazon you can see a preview of some pages from the book. Qasim also has a website for the book here.
DSP Illustrations is an online course that aims to explain complex digital signal processing (DSP) concepts visually instead of on a purely theoretic and mathematical level. Most of the content appears to be free, but some premium content requires payment.
passband transmission including up- and downconversion
modeling the audio channel as an LTI system for reproducable simulations
eye diagram drawing
symbol timing recovery
definition and implementation of a frame structure, including header, payload and checksum
integration of the wireless transmission into a UDP data stream
Although the "SDR" isn't using radio frequencies, the exact same DSP concepts that apply with audio also apply to radio. So this can be a cheap way to get hands on DSP experience without the cost of needing to own a transmit/receive capable SDR.
This course costs about US$20, but the first three chapters are free.
Over the past few years the Electrical Engineering department of the University of California, Berkley has been using RTL-SDR’s in their EE123 Digital Signal Processing (DSP) course. We’d posted about this course years before when it first came out, but recently Micheal Lustig (KK6MRI), the Associate Professor of the course wrote in to let us know that the course has evolved and is now better than ever.
The course covers DSP essential material such as the Discrete Fourier Transform, Fast Fourier Transform, RF Filter design, as well as more complex subjects. All the course material is available in note and video form if you scroll down on the main page at https://inst.eecs.berkeley.edu/~ee123/sp16/index.html.
However, the professor writes that the best gem that they have developed in their labs which can be found at https://inst.eecs.berkeley.edu/~ee123/sp16/labs.html. The labs run on the web based Ipython/Jupyter Notebooks and guide you through the implementation of an ADS-B receiver, broadcast FM and subcarrier demodulation, frequency calibration with GSM, and a full python APRS transceiver using the baofeng radio and a custom audio interface. These labs are an excellent tutorial into the world of DSP.
The final project of the class is also very interesting. The students of the class were given the task to send images using a Baofeng UV-5R handheld radio and receive them with an RTL-SDR. On the day of the project demonstration they were given two images, and the challenge was to transmit the best quality image over 75 seconds. Videos of the presentation can be found at https://inst.eecs.berkeley.edu/~ee123/sp16/projectVideos.html. The winning team used a combination of five Baofeng’s for simultaneous transmission of a compressed image and an RTL-SDR for receiving.
To go along with the book they have also released several accompanying videos that are available at desktopsdr.com/videos.
The books blurb reads:
The availability of the RTL-SDR device for less than $20 brings software defined radio (SDR) to the home and work desktops of EE students, professional engineers and the maker community. The RTL-SDR can be used to acquire and sample RF (radio frequency) signals transmitted in the frequency range 25MHz to 1.75GHz, and the MATLAB and Simulink environment can be used to develop receivers using first principles DSP (digital signal processing) algorithms. Signals that the RTL-SDR hardware can receive include: FM radio, UHF band signals, ISM signals, GSM, 3G and LTE mobile radio, GPS and satellite signals, and any that the reader can (legally) transmit of course! In this book we introduce readers to SDR methods by viewing and analysing downconverted RF signals in the time and frequency domains, and then provide extensive DSP enabled SDR design exercises which the reader can learn from. The hands-on SDR design examples begin with simple AM and FM receivers, and move on to the more challenging aspects of PHY layer DSP, where receive filter chains, real-time channelisers, and advanced concepts such as carrier synchronisers, digital PLL designs and QPSK timing and phase synchronisers are implemented. In the book we will also show how the RTL-SDR can be used with SDR transmitters to develop complete communication systems, capable of transmitting payloads such as simple text strings, images and audio across the lab desktop.
MATLAB is a technical computing language and software suite used commonly by professional and student scientists and engineers. It is similar to GNU Radio in terms of its digital signal processing (DSP) capabilities. Back in January 2014 the MATLAB team released an update which enabled the RTL-SDR to be used as an RF input device.
The text book’s blurb reads:
The availability of the RTL-SDR device for less than $20 brings software defined radio (SDR) to the home and work desktops of EE students, professional engineers and the maker community. The RTL-SDR can be used to acquire and sample RF (radio frequency) signals transmitted in the frequency range 25MHz to 1.75GHz, and the MATLAB and Simulink environment can be used to develop receivers using first principles DSP (digital signal processing) algorithms. Signals that the RTL-SDR hardware can receive include: FM radio, UHF band signals, ISM signals, GSM, 3G and LTE mobile radio, GPS and satellite signals, and any that the reader can (legally) transmit of course! In this book we introduce readers to SDR methods by viewing and analysing downconverted RF signals in the time and frequency domains, and then provide extensive DSP enabled SDR design exercises which the reader can learn from. The hands-on SDR design examples begin with simple AM and FM receivers, and move on to the more challenging aspects of PHY layer DSP, where receive fi lter chains, real-time channelisers, and advanced concepts such as carrier synchronisers, digital PLL designs and QPSK timing and phase synchronisers are implemented. In the book we will also show how the RTL-SDR can be used with SDR transmitters to develop complete communication systems, capable of transmitting payloads such as simple text strings, images and audio across the lab desktop.
While the book is not yet released the full table of contents is currently available for viewing on their downloads page. From looking at the table of contents, we can see that the text book looks very comprehensive and will likely be extremely useful for students who are learning RF and DSP concepts in university level classes. The team behind the book (desktopsdr.com) also have a YouTube channel where it appears that they are releasing supporting videos.