Move to the intermediate level of learning software defined radio with cheap tools. Bring your DSP textbooks to life with hands on experiments and hacking.
Recently, I have been playing with GNURadio Companion, which is a great visual learning environment. With GNURadio, you can experiment with software defined radio by connecting together different digital signal processing blocks without writing a line of code. This got me thinking about the various levels and methods for actually learning software defined radio, or SDR.
Most hams and radio listeners have very little formal training in electronic engineering. We are mainly users and tinkerers. We begin to learn about SDR by using commercial or hobby radio hardware and software. Beginners usually learn by using, often adding a bit of reading. We configure our radios for different sampling rates, adjust filters and demodulate a variety of signals – all out of the box. Typically, we read enough so that we can explain to others how it all works to friends and family. But truly, we are skimming the surface. Most of us could not create a software defined radio if our lives depended on it.
At the other end of the spectrum, advanced learners are the ones who actually make things. Most advanced practitioners will have formal education in DSP engineering, as a foundation for moving on SDR hardware and software. Once you have an SDR front end providing quadrature data, it’s fairly straightforward to write software to process the data. This is because there are many free or open source signal processing libraries available for your use. Moving up to actually co-developing both hardware and software is quite a leap, though. Most SDR these days run on sophisticated integrated circuits, mainly field programmable gate arrays, together with analog to digital converters and specialized DSP chips and I/O controllers.
Using these powerful components requires learning their development environments and libraries. For example, the FPGA and other devices get defined using specialized hardware description languages like Verilog and VHDL. Basically, you write and simulate code for the hardware, much the same as you write software. For example, the essence of my Flex 6300 is really just three chips: a 16 bit Analog Devices ADC running at 123 Msps; a Xilinx Virtex-6 FGPA; and a Texas Instruments Da Vinci microprocessor that does DSP and control. This FPGA contains thousands of programmable logic blocks that do most of the heavy lifting in the radio. The real value Flex offers is that they know how to program these FPGA to work magic.
Learning Software Defined Radio – Intermediate Level
In this series of articles, I am going to focus on a number of free or low cost tools that you can use to learn DSP and SDR by experimenting and hacking. Combined with some good textbooks, you can learn by doing. You won’t be ready to take on Flex, but you can learn the foundations. For example, by using MATLAB, you can create the building blocks for programming an FPGA and building SDR hardware. By using GNURadio, you can learn signal processing flow and bring the DSP textbook descriptions to life.
And the amazing thing is that you can use the little $20 RTL-SDR dongle as your hardware platform to write some pretty sophisticated reception, filtering and demodulation solutions. Then, you might be ready to move on to more powerful hardware like the Ettus Research Universal Software Radio Peripheral, USRP.
Learning Software Defined Radio at the intermediate level is also a great crossover point for hams to become engaged with the maker community, and the whole world of young engineers “hacking RF” from DC to Daylight. Here is a taste.