Wikipedia defines software radio as Software-defined radio (SDR) as a radio communication system where majority of the radio components such as amplifiers, mixers, filters among others have been implemented in software instead of hardware. This means that these part of a radio system are in software code instead of something physical.
To quickly understand how a software defined radio works, imagine the sound card on a computer. It converts sound from analog(continuous time) to discrete samples. After that, you can record(store) the sound samples in various formats such as .wav, .mp3 and so on. It also allows one to apply filters to the sound thus one can also mix sounds and perform many other effects. The act of applying the effects is called digital signal processing(DSP). So when you hear a DJ on the radio, he is doing nothing more than math on sound samples and you like the effects.
There is main drivers for the development of SDR:
- Digital signal processing(DSP). When you are applying filters to sound and so on, that is DSP. It is just applying mathematics to samples to realise an effect.
- Moore’s law– The growth of transistors that can be packaged in a chip at a given cost grows exponentially. This increases the computational speed, but of late this has hit diminishing returns so multi-core processing systems are more popular.
To further understand how a software defined radio works, let us look at how WIFI works based on its OSI (Open systems interconnect) model.
The OSI model
The physical layer defines our layer of interest when working in this. Examples of how this layer works:
- In WIFI, the physical layer defines how the bits are converted to wireless signals from sender to receiver.
- In ethernet, the physical layer defines how the bits are converted to electrical signals that travel down an ethernet cable between sender and receiver.
- in USB, the physical layer defines how the bits are converted to and from USB signals that travel down a USB cable, from a host to device or vice versa.
The image below shows an example system block diagram of a software defined radio from XILINX:
SDR system block diagram
The antenna is on the far left. The upper section is the input path and it defines the receive section of the system. It consists of an analog to digital converter(converts signals to bits). The lower section is the transmit section of the system(converts bits to signals).
THE FUN STUFF
Hackrf SDR platform (1MHz-6GHz)
You can imagine you are an engineer who has been asked to develop a wireless system and you want to check that it works, how do you check wireless signals???
- You either use a dedicated radio that can tune to the wireless frequency you want. The radio will most likely convert the wireless signal to information. Example: If you want to check that you have a wifi signal, you take your phone and it gives you this information.
- You can use a software defined radio that you can tune into the wireless frequency range and inspect that there is the desired signal.
Understanding how communication happens
The communication model
To use a software defined radio: Connect the SDR to your computer and tune to your frequency of interest. Obtain the modulation from the data and convert it into bits/information. This is done usually in C++ or Python using the software framework gnuradio companion.
A GNU-radio wireless capture session
Then one saves a recording and writes a software decoder to decode the signal usually in python or C++.
Example 1: vehicle wireless key signal(Digital)
An example of this is below when one presses a wireless key to open a car, you want to check that it works.
A spectrogram. The horizontal axis is frequency, vertical is time.
To clearly see the signal sent to the car to unlock, we need to zoom and filter the signal. The brighter the parts of the image, the more power there is thus giving an indication of information being sent. The rest of the image is just background noise power.
We thus isolate the lower power section which represents background noise and we obtain our signal to the car.
As can be seen, It can be seen that the power shifts between two frequencies thus one frequency represents a binary 1 and the other represents a binary 0. This sequence of 1s and 0s is binary data.
If we remember our definition of the physical layer, The physical layer defines how bits are encoded into physical signals. In this case, this case a binary 1 is encoded into frequency F1 and binary zero is encoded into frequency F2. This encoding is called modulation. This specific modulation is called BFSK(Binary frequency shift keying). The carrier frequency is generated usually by an oscillator on the wireless key and modulated by the data.
NOTE: A software defined radio can even demodulate the signal to give you the actual message. It is not enough to use the above system to open cars as the wireless key signal is pseudorandom nature as a rolling key(constantly changing under an algorithm) is XOR’d with the message. Once the car system receives the message, it XOR’s the message with the key to obtain the actual command message from the wireless key. More details of this can be studied in stream ciphers in cryptography. It relies on synchronizing the receiver and transmitter in order not to xor with the wrong key.
Example 2: FM capture(Analog)
FM means frequency modulation, it encodes low frequency information such as voice on a higher frequency wave called a carrier signal. The carrier signals in Kenya are standardised by the Communications authority from 88MHz-108MHz.
Frequency vs amplitude modulation
To inspect this on the local FM band, we tune and we check the power across the frequency bands to obtain the following signals which confirm Frequency modulation. I remember there was a talk show at the moment this was captured.
FM modulation on the FM frequency bands.
SDR is thus an important tool for wireless designers, wireless researchers and hobbyists. This concludes the overview of software defined radio(SDR).