Introductory Tutorial For SDR and GNU Radio Beginners
Introductory Tutorial For SDR and GNU Radio Beginners
3
About tutorial
● Introduces fundamental DSP concepts and GNU Radio to new users
● Consists of the following lab modules based on Jupyter Notebooks
○ Lab DSP
○ Lab SDR
○ Lab WBFM
● We will use GNU Radio for
○ Exploring signals in simulation mode
○ Sound processing
○ Spectrum watching with RTL-SDR
○ Broadcast FM demodulation
Get the labs (if you haven’t already)
● Labs available @ GitHub
○ https://github.com/ARDC-TOBB-ETU/GRCon23Tutorial
Download or clone
Use README to install
● Linux/Mac
○ Run ./install.sh
● Windows
○ Install miniforge
○ Create a new environment
■ conda config --append channels conda-forge
■ conda create --name GRCon23 --file requirements.txt
Opening Jupyter Notebooks/GNU Radio
● Linux/Mac
○ Run source "${HOME}/conda/etc/profile.d/conda.sh"
○ Activate the environment conda activate GRCon23
○ Run jupyter-lab
○ Run gnuradio-companion
● Windows
○ Open a miniforge prompt
○ Activate the environment conda activate GRCon23
○ Run jupyter-lab
○ Run gnuradio-companion
Jupyter Notebook
Outline
● About me
● About tutorial
● GNU Radio (slides from a previous presentation)
● Lab: Digital Signal Processing (DSP)
● Lab: Software Defined Radio (SDR)
● Lab: Wide Band Frequency Modulation (WBFM)
GNU Radio is…
Console Variables
GNU Radio Workshop // SDR Academy 17
Search Blocks
GUI Output and Instrumentation
GQRX - a GNU Radio Application
Out Of Tree Modules
▪ GNU Radio can be extended with OOTs
▪ OOTs cover more specific functionality
▪ There is a large number available
▪ CGRAN is our central database
Academic Hardware
Research Vendors
Professional
Students Service
Hobbyists Providers
GNU Radio is an Ecosystem
▪ Active Open Source community since 2001
▪ PyBombs, OOTs
● Flexible functionality
○ the operation of a radio can be changed without making any physical alterations to the device
● Algorithms from DSP and communications theory running as real-time
software on a CPU, GPU and/or FPGA
● Joe Mitola first coined the term in 1991
Why SDR?
● Traditional radios are hard-wired to specific frequency bands and
communication protocols
○ Fixed-function, Black Box
○ Can’t be easily modified, can’t easily access internal values and states
● SDR provides:
○ Flexibility
○ Upgradability
○ Reconfigurability
○ Lower Cost
Key SDR Parameters (Features)
• Frequency (Tuning) Range
• Instantanous Bandwidth
• Bit resolution
• Interface (USB, Ethernet, PCIe)
• Rx/Tx, half-duplex, full-duplex, MIMO
• Preselectors
• Budget: 50$-...k$
RTL-SDR
• “I smell a very cheap poor man’s SDR here☺”
• Cheap man’s radio since 2012
• Hams, DIY, hackers, makers, students,…
• Demodulator
• Named by RTL2832U chip, DVB-T
• Tuner
• R820T: 24-1766MHz
• E4000: 52-2200MHz
RTL-SDR
• Receive-only
• 8-bit ADC
• 24MHz-1.75GHz (depends on tuner chip)
• 2.4MSPS BW (stable) upto 3.2M
• “HamItUp” upconverter
• HF coverage
RTL-SDR Driver Installation#1 - Windows
● Plug in your dongle
● Right click zadig.exe file and select "Run as administrator".
● In Zadig, go to "Options->List All Devices" and make sure this option is
checked. If you are using Windows 10 or 11, in some cases you may need to
also uncheck "Ignore Hubs or Composite Parents".
RTL-SDR Driver Installation#2 - Windows
● Select "Bulk-In, Interface (Interface 0)" from the drop down list. Make sure it is
Interface 0 (ZERO), and not "1".
RTL-SDR Driver Installation - Linux
● Linux users may blacklist RTL so that default DVB-T driver is not loaded when
dongle is plugged in.
○ # cd /etc/modprobe.d/
○ # sudo gedit blacklist-rtl.conf
○ # append: blacklist dvb_usb_rtl28xxu
○ OR
○ # echo "blacklist dvb_usb_rtl28xxu" >> /etc/modprobe.d/blacklist.conf
LabSDR.ipynb
Outline
● About me
● About tutorial
● GNU Radio
● Lab: Digital Signal Processing (DSP)
● Lab: Software Defined Radio (SDR)
● Lab: Wide Band Frequency Modulation (WBFM)
Frequency Modulation (FM)
FM Radio Multiplex
● It is common practice to multiplex multiple information signals together before
performing modulation, as this allows for multi-channel transmission using
one carrier.
Broadcast FM (WBFM)
LabWBFM.ipynb
Thanks!
[email protected]