Академический Документы
Профессиональный Документы
Культура Документы
Prepared by
1. Surafel Alemu
2. Yalemzewud Tadesse
Contents
Table of content ............................................................................................................................... I
List of figures .................................................................................................................................. II
List of tables .................................................................................................................................. IV
List of abbreviations ...................................................................................................................... V
1. INTRODUCTION ................................................................................................................... 1
1.1 Objective .......................................................................................................................... 1
1.2 Software defined radio ..................................................................................................... 1
1.3 Architectures and block diagrams of SDR ....................................................................... 3
1.4 DDC VS DUC .................................................................................................................. 8
2. Universal Software Radio Peripheral (USRP)....................................................................... 10
2.1 USRP Block diagram ..................................................................................................... 11
2.1.1 Transmit signal path ................................................................................................ 11
2.1.2 Receive signal path ................................................................................................. 11
2.2 Models of USRP ............................................................................................................ 12
2.3 Selection criteria for USRP models ............................................................................... 12
2.4 USRP X 300 and X 310 product overview .................................................................... 13
3. GNU radio ............................................................................................................................. 15
3.1 Installing GNU radio in windows .................................................................................. 16
3.2 GNU radio companion ................................................................................................... 20
3.2.1 Library..................................................................................................................... 21
3.2.2 Work-space ............................................................................................................. 22
3.3 Common errors in GRC flow graph construction .......................................................... 24
3.4 GNU radio out of tree modules (OOT) .......................................................................... 26
3.5 Simple flow graph example............................................................................................ 26
Summary ....................................................................................................................................... 30
Reference ...................................................................................................................................... 31
I
List of figures
Figure 1-1: Traditional hardware radio and software defined radio [7] ......................................... 2
Figure 1-2: Block diagram of analog radio receiver [5] ................................................................. 3
Figure 1-3: The fundamental architectures of SDR [7] .................................................................. 4
Figure 1-4: Block diagram software defined radio ......................................................................... 4
Figure 1-5: Digital down convertor (DDC) [5]............................................................................... 5
Figure 1-6: Digital up convertor (DUC) [5] ................................................................................... 7
Figure 1-7: The effect of interpolation filter [5] ............................................................................. 8
Figure 1-8: DDC & DUC Processing [5] ........................................................................................ 9
Figure 2-1: USRP motherboard [7]............................................................................................... 10
Figure 2-2: USRP block diagram [7] ............................................................................................ 11
Figure 2-3: The appearance of USRP X 310 [8]........................................................................... 14
Figure 2-4: The front panel of USRP X 310 [8] ........................................................................... 14
Figure 2-5: The rear panel of USRP X 310 [8]............................................................................. 14
Figure 3-1: C++ and Python interface [7] ..................................................................................... 15
Figure 3-2: Location of GNU radio installer ................................................................................ 16
Figure 3-3: GNU radio setup wizard ............................................................................................ 17
Figure 3-4: End user license agreement ........................................................................................ 17
Figure 3-5: Destination folder ....................................................................................................... 18
Figure 3-6: Ready for installation ................................................................................................. 18
Figure 3-7: Installation progress ................................................................................................... 19
Figure 3-8: Finalizing installation................................................................................................. 19
Figure 3-9: Start up page of GNU radio ....................................................................................... 20
Figure 3-10: GNU radio companion window ............................................................................... 21
Figure 3-11: How to access the Library of GRC .......................................................................... 22
Figure 3-12: GRC Work-space ..................................................................................................... 22
Figure 3-13: Modifying the properties of blocks .......................................................................... 23
Figure 3-14: Terminal of GNU radio ............................................................................................ 23
Figure 3-15: Setting of sampling rate ........................................................................................... 24
Figure 3-16: Flow graph Error indicator ....................................................................................... 24
Figure 3-17: Indicated error .......................................................................................................... 25
II
Figure 3-18: Flow graph error (data type mismatch) ................................................................... 25
Figure 3-19: Cosine wave generation flow graph ......................................................................... 26
Figure 3-20: Location of Generated python code ......................................................................... 27
Figure 3-21: generated python code ............................................................................................. 28
Figure 3-22: USRP and GNU radio interface ............................................................................... 29
III
List of tables
Table 2-1: Different USRP models characteristics [6] ................................................................. 12
Table 2-2: FPGA resource comparison [8] ................................................................................... 13
IV
List of abbreviations
DAC Digital to analog convertor
RF Radio frequency
IF Intermediate frequency
V
1. INTRODUCTION
With the exponential growth in the ways and means by which people need to communicate - data
communications, voice communications, video communications, broadcast messaging, command
and control communications, emergency response communications, etc. – modifying radio devices
easily and cost-effectively has become business critical. Software defined radio (SDR) technology
brings the flexibility, cost efficiency and power to drive communications forward, with wide-
reaching benefits realized by service providers and product developers through to end users [2].
Traditional hardware based radio devices limit cross-functionality and can only be modified
through physical intervention. This results in higher production costs and minimal flexibility in
supporting multiple waveform standards. By contrast, software defined radio technology provides
an efficient and comparatively inexpensive solution to this problem, allowing multimode, multi-
band and/or multi-functional wireless devices that can be enhanced using software upgrades[2].
1.1 Objective
Using GNU radio and USRP in SDR platform implementation
To call a radio an SDR the software should be responsible for fundamental RF signal
processing tasks that are traditionally performed by a hardware. In traditional hardware based
radios there are a physical components such as filters, converters, modulators and demodulators.
1
One goal of SDR is replacing this physical components by different software modules capable of
adapting this physical components task. Look at the following pictures for a better understanding
of how traditional radio’s physical component replaced by software.
Figure 1-1: Traditional hardware radio and software defined radio [7]
In the era of traditional hardware based radios, radios were costly and also lacks functional
flexibility of supporting multiple waveforms. The need for functionality modification requires a
hardware manipulation. This leads to the need for components which have a reconfigurable
capacity. An advent of RF integrated circuits (RFIC’s), field programmable gate arrays (FPGA’s)
and digital signal processors (DSP’s) accelerated the move into SDR paradigm shift. SDR is the
currently available solution providing a cost effective and flexible radio technology [7].
The traditional radio receiver performs three major tasks. These are carrier frequency tuning to
select the desired signal, filter to separate the desired frequency from undesired frequencies and
2
power amplification to compensate transmission loss. Let’s review the structure of the
conventional analog radio receiver by the following block diagram shown as below.
The RF signal enters through the antenna. Then the RF amplifier amplifies the incoming signal
and the amplified signal is fed to the analog mixer stage. The mixer is fed with two inputs, the one
from the RF amplifier and another from a local oscillator. The mixer is responsible in performing
an analog multiplication of the two inputs and translates the desired input signal to the intermediate
frequency (IF). The mixer performs an analog multiplication of the two inputs and generates a
difference frequency signal [5].
The frequency of the local oscillator is set so that the difference between the local oscillator
frequency and the desired input signal (the radio station you want to receive) equals the IF [5].
Then the output of the mixer is fed to the IF band-pass filter which only passes the IF. Common
center frequencies for IF stages are 455 kHz and 10.7 MHz for commercial AM and FM broadcasts
[5]. After all the demodulator recovers the original modulating signal from the IF filter output.
3
Figure 1-3: The fundamental architectures of SDR [7]
The Radio Frequency (RF) front-end module digitizes the incoming baseband signal from antennas.
Then after the digitalized baseband signal is converted to data frame by the processing engine.
Finally the application side receives data frames [7].
4
Figure 1-4 shows the block diagram of a software defined radio. In the reception path, the RF tuner
performs the role of the first three blocks in traditional radio receiver. It converts the RF analog
signal to IF analog signal. Conversion of the IF analog signal to digital IF samples is taken by the
analog to digital converter (ADC). Then the converted digital samples are fed to the digital down
converter.
The digital downconverter is typically a single monolithic chip or FPGA IP, and it is a key part of
the SDR system [5]. It consists of three major sections, which are digital mixer, digital local
oscillator and FIR low pass filter. DDC performs two major signal processing operations. The first
one is frequency translation of the digital IF samples down to base band and the other one is low
pass filtering. Look at the following figure for better understanding of digital down convertor.
The operation of low pass filtering takes place by the operation known as decimation. But what
does the term decimation mean? Let’s go through this concept before we proceed to the rest parts
of the SDR receiver.
Decimation is the process of decreasing the sampling rate of a signal. It is also termed as down
sampling. It is done by removing samples without violating the standard sampling theorem, which
5
is the Nyquist’s sampling theorem which states that “any signal can be represented by discrete
samples if the sampling frequency is at least twice the bandwidth of the signal.” Simply stating a
decimation is a process of keeping one sample out of every N signal sample. Let’s see this by
taking an example:
So that after decimation the decimated sample is Y[n] = [0 2 4 6 8] at Fs/D sampling rate.
In the process of receiving a decimated signal can be processed easily and can be stored in a less
memory space. This decimation technique also reduces the overall system cost.
Coming back our suspended discussion concerning the SDR receiver, after the IF samples are
translated to baseband and decimated the output of the DDC which is digital baseband sample is
fed to the DSP block. Finally the tasks like demodulation, decoding and other processing tasks are
performed in the DSP.
When we come to the transmission path of SDR, the process is vice versa to the process described
in the reception path. Unlike the SDR receiver the input to the transmitter SDR is a digital base
band signal typically generated by a DSP stage. Here the digital up converter block (DUC)
functions oppositely from DDC. The DUC interpolates the digital baseband samples and translates
to digital IF samples. Inside the DUC shown in Figure 1-6, the digital mixer and local oscillator
translate baseband samples up to the IF frequency. The IF translation frequency is determined by
the local oscillator.
6
Figure 1-6: Digital up convertor (DUC) [5]
Note that the sample frequency at the output of mixer must be equal to the DAC sample frequency
(fs). To make this sure the local oscillator sample rate and the baseband sample rate must be equal
to the DAC sample frequency (fs). The local oscillator already operates at a sample rate of (fs). But
the input baseband sample frequency is usually much lower than expected. So we need to have an
Interpolation Filter to solve this problem [5].
Interpolation is an inverse process to decimation which is discussed in the DDC section. It refers
to up sampling of a signal. The interpolation filter increases the sample frequency of the baseband
input signal by a factor N, known as the interpolation factor. Look at the following figure for a
better understanding of the effect of interpolation filter shown in the time domain [5].
7
Figure 1-7: The effect of interpolation filter [5]
The next hardware block labeled DAC converts the digital IF samples to analog IF signal and fed
to RF up converter. The RF up converter converts the analog IF signal to analog RF signal and
sends to the power amplifier unit. Finally, the power amplifier boosts signal energy to the antenna.
8
Figure 1-8: DDC & DUC Processing [5]
Both the DDC and DUC have their own advantage in signal processing. DDC preselects only the
desired frequency and offers the optimum banwidth to the desired signal by using minimum
sampling rate. On the other hand the DUC is able to boost the samling rate and accelerate the
sample delivery time to the ADC. This functions help in reducing the processors work load and
time of signal processing.
9
2. Universal Software Radio Peripheral (USRP)
USRP is a computer hosted RF transceiver used for development and explorations of software
defined radios. It is capable of both transmitting and receiving RF signals. “While some
characteristics and specifications vary from model to model, all USRP devices use the same
general architecture.”[8]. USRP consists of different sections to perform specific tasks. The
mother-board consists of the DACs, ADCs and the FPGA. And there is also an RF front end which
we call it the daughterboard.
The daughterboard of a USRP is the one that handles the receiving function of a radio signals and
passes the analog signal to the main USRP unit (the motherboard) [2]. The motherboard is
responsible in changing the analog form of the radio signal to digital one (in the receiving path)
and digital to analog (in the transmission path). And the converted signal is sent to the field
programmable gate array (FPGA). Here the user is capable of modifying his programs.
10
2.1 USRP Block diagram
The above block diagram shows the path of transmitting and receiving a signal while using a
USRP.
11
2.2 Models of USRP
There are different models of USRP which have different features and capabilities.
12
Looking at the above table we can see that the X-Series models offer a faster interfacing options
and a better bandwidth. In addition to advanced interfacing mechanism and the bandwidth ADC
and DAC rates and bits resolution is better than the rest models.
In the USRP the functions like digital up conversion and down conversion, fine- frequency tuning,
and other digital signal processing is performed with the help of the FPGA. This leads us to
consider the FPGA performance while selecting a USRP.
These features makes the X-series USRP models preferable for our project.
13
Figure 2-3: The appearance of USRP X 310 [8]
14
3. GNU radio
Formerly a radio communication engineer needs to develop a specific circuit and to design a
specific IC in order to detect and be able to encode and decode a particular transmission. This
makes a radio communication technology a tedious and costly task. Different researches have been
taking place through times to come across this obstacle in the development of communication
technology. One of the findings is a GNU radio framework.
“GNU Radio is a framework that enables users to design, simulate, and deploy highly capable real-
world radio systems” [9]. It is a highly modular, free and open source flow graph-oriented
framework with a set of various comprehensive library of processing blocks that can be readily
combined to implement different software defined applications. The blocks in the GNU radio are
written in C++ and the flow-graph construction is written in python. There is an interface between
C++ and python which is called SWIG (simplified wrapper interface generator). A SWIG is a
software development tool that connects programs written in C and C++ with a variety of high-
level programming language.
15
GNU radio uses a flow graph based approach to digital signal processing. A flow graph is a
connection of different specific function blocks for a particular signal processing purpose.
A GNU radio can be used with external RF hardware to create software defined radios or it can be
used without hardware as simply a simulation environment. By using the blocks in the library one
can construct a flow graphs which can perform a signal processing task which are found in
hardware form in radios. The blocks are filters, channel codes, synchronization elements,
equalizers, demodulators, vocoders, decoders etc.
A GNU radio is an API (application program interface) for creating signal blocks and a simulation
environment for signal processing.
16
Double click on the gnu radio windows installer. The next window will appear.
After clicking the “Next” button, the following end user license agreement will appear.
Accept the term by checking the agreement check box then click on “Next” button.
17
Click “Next” button to install into the default folder or click “Change” button to choose another.
Now the GNU radio software is ready for installation. Click the “install” button.
18
Figure 3-7: Installation progress
19
Figure 3-9: Start up page of GNU radio
20
Figure 3-10: GNU radio companion window
3.2.1 Library
This part of the GRC is a home for different blocks. Here blocks are grouped in different categories.
We can find the blocks by clicking the drop down button of the category name or simply by typing
the block name in the search space. For example; if we need to add an Audio source to the work-
space we can type the block name in the search space and the block appears as follows:
21
Figure 3-11: How to access the Library of GRC
We can add the selected block to the work-space simply by dragging the selected block or by
double clicking on the block.
3.2.2 Work-space
This is the arena of flow graph construction. There are two GUI generate options. These are WX
GUI and QT GUI. While opening a new GUI, the work space comes with two pre-defined blocks.
These are the variable (with default ID name” top block”) and options (with default QT GUI)
block.
22
This blocks are used to modify the properties of the blocks we are using in construction of our
flow graphs Let’s modify the properties of the block by double clicking the options block and see
the modifying options.
Here we have different options to modify. The first one is the ID. Looking at the terminal we can
see that Python uses the ID name as the file name of generated code. Changing the ID name
immediately changes the python code file name. This modification will help us to simple tracking
of the generated python file location.
We can also choose GUI generate options and the number of output. In the variable block we can
set our interest of sampling rate as shown in the following figure.
23
Figure 3-15: Setting of sampling rate
24
Figure 3-17: Indicated error
2. Trying to connect blocks with different output and input data types will result an error. Here
in addition to the error indicator on the toolbar the arrow connecting the blocks will also turn
red.
25
3.4 GNU radio out of tree modules (OOT)
OOT is a user created block or an accessible block which created by somebody else which is not
available in GRC library. OOT can be created when a GNU radio user wants to extend the frame
work with additional functional blocks. A lot of OOT projects are hosted at CGRAN (the
comprehensive GNU radio archive network) [9]. A GNU radio user can access these archive freely.
In this case the signal source block is used to generate a cosine waveform. The throttle block
prevents the CPU from running with its full speed so that we are able to see the generated
waveform, and the sink will display the generated wave form in time and frequency. Looking at
the terminal (circled in red on the above figure) there is a generated python code directory. By
following the directory we can find a python code generated for the flow-graph.
26
Figure 3-20: Location of Generated python code
27
Figure 3-21: generated python code
28
By integrating the USRP and GNU radio we can implement a software defined reconfigurable
radio.
29
Summary
Software defined radio technology provides a suitable environment in researches and projects
concerning radio communication. In our project by combining USRP and GNU radio we can
implement a reconfigurable SDR platform.
There are a number of USRP models with different features available in the market. Among the
models of USRP’s the X-series models are a high performance USRP’s with a better interfacing
options and configurability. Their compatibility with different USRP supported frame works (like
GNU radio in our case) makes them preferable for our project.
The GNU radio is a free source frame work with comprehensive block libraries. It is a flow graph
oriented frame work that enables users to design, simulate and reconfigure their designs in real-
time. So, combining this two we will be able of implementing a re-configurable SDR.
Using SDR’s re-configurability we can adjust our working frequencies to different available bands.
Implementing the SDR platform will support to undergo different researches and perform different
applications in our Electronic Warfare technology capacity building. Through this project there
will be a knowledge shift and progress in radio communication science.
30
Reference
1. NATIONAL INSTRUMENTS. 2017. AN INTRODUCTION TO SOFTWARE DEFINED
RADIO with NI LabVIEW and NI USRP. [ONLINE] Available
at: ftp://ftp.ni.com/pub/events/campus_workshop/niusrp_hands_on_sp_manual.pdf.
[Accessed 23 October 2017].
2. WIRELESS INNOVATION FORUM. 2017. What is Software Defined Radio?. [ONLINE]
Available at: http://www.wirelessinnovation.org/Introduction_to_SDR. [Accessed 23 October
2017].
3. Radio-Electronics. 2017. Software Defined Radio, SDR, Tutorial. [ONLINE] Available
at: http://www.radio-electronics.com/info/rf-technology-design/sdr/software-defined-radios-
tutorial.php. [Accessed 23 October 2017].
4. José Raúl Machado-Fernández. 2014. Software Defined Radio: Basic Principles and
Applications. [ONLINE] Available
at: http://www.scielo.org.co/pdf/rfing/v24n38/v24n38a07.pdf.. [Accessed 23 October 2017].
5. H. Hosking, R., 2017. Software-Defined Radio Handbook.. 9th Ed. One Park Way, Upper
Saddle River: New Jersey 07458: Pentek, Inc.
6. Grayver, E., 2013. Implementing Software Defined Radio. 1st Ed. New York. Springer
science + business media.
8. Ettus Research, a National Instruments Company. 2017. USRP x310. [ONLINE] Available
at: https://www.ettus.com/product/details/X310-KIT. [Accessed 10 October 2017].
9. Guided Tutorials. 2017. Guided GNU Radio Tutorials. [ONLINE] Available
at: https://wiki.gnuradio.org/index.php/Guided_Tutorials. [Accessed 10 October 2017].
31