Implementation of OFDM Systems Using GNU Radio and USRP
Implementation of OFDM Systems Using GNU Radio and USRP
Research Online
University of Wollongong Thesis Collection
2013
Recommended Citation
Nguyen, Duc Toan, Implementation of OFDM systems using GNU Radio and USRP, Master of Engineering - Research thesis, School
of Electrical, Computer and Telecommunications Engineering, University of Wollongong, 2013. http://ro.uow.edu.au/theses/3977
August 2013
ABSTRACT
As communications technology continues its rapid transition from analogue to
digital, more functions of modern radio systems are implemented in software, rather
than hardware, leading toward the software defined radio architecture. Software
defined radio (SDR) is a promising technique for multi-type, high speed wireless
communication system with low requirements on capability of hardware devices, low
development cost and facilitation of the development process. SDR is an emerging
and developing technique, thus it has not been matured yet.
In this project, a SDR testbed has been built to evaluate the practical error
performance of Orthogonal Frequency Division Multiplexing (OFDM) based
systems in different propagation conditions with different system configurations. In
particular, the testbed has been built based on the GNU Radio Software platform and
version-2 Universal Software Radio Peripheral (USRP2) devices.
Theoretical simulation results show that OFDM provides good error performance
and high data rate transmission, compared to single carrier transmission techniques.
However, the implementation of OFDM with SDR in actual hardware, as well as the
verification of its performance in various realistic propagation conditions with
different system configurations, has been almost unexplored. Evaluation of practical
performance of OFDM systems is very important from practical points of view,
including but not being limited to, the deep understanding of the effects of
synchronisation and channel estimation techniques to the error performance and the
awareness of what the realistic limitations of hardware and SDR are. Therefore, this
project aims at evaluating the error performance of practical OFDM systems in
various experimental environments, including typical laboratory rooms and
corridors. The performance of OFDM with different digital modulation schemes is
also evaluated in this project. The error performances of the implementation are then
compared to the theoretical performances to confirm the effects of synchronisation
and channel estimation processes and the limitations of hardware and SDR.
Outcomes of this project include the testbed which has been successfully built with
SDR in the USRP2 hardware modules, a detailed technical documentation on how an
OFDM system can be implemented with SDR and USRP2, a family of error
performance curves of the implemented OFDM system with different modulation
schemes in different propagation environments, in depth analyses of synchronisation
and channel estimation processes and their effects to the experimental performances,
and analyses of the realistic limitations of SDR and USRP2. These outcomes are
significant, bearing in mind that SDR is an emerging-but-yet-mature technique.
The successful development of the OFDM testbed with SDR and USRP2 opens
various opportunities to research further other advanced signal processing techniques
for OFDM-based systems, such as the improved synchronisation and channel
estimation techniques, the techniques to reduce the well known Peak-to-Average
Power Ratio (PAPR) issue, and the emerging Multiple-Input Multiple-Output
(MIMO) technique. These research directions will be our future works.
ii
ACKNOWNLEDGEMENTS
First and foremost I would like to thank my principal supervisor, Dr. Le Chung Tran,
for introducing me to the very interesting world of wireless networks, for
encouraging me to pursue my research topic and for his guidance over the course of
my time at the University. Special thanks also go to my co-supervisor Prof. Farzad
Safaei for his support, guidance and knowledge. Without their illuminating
instructions and continuous supports, this thesis could not have reached its present
form.
I am also greatly indebted to all officers at the University of Wollongong, especially
the school of Electrical, Computer and Telecommunications Engineering and
SMART building, for their technical support.
I would additionally like to acknowledge my friend, especially, Linh Nguyen for his
help to set up the system and collect experimental data.
Finally, my sincere thanks would go to my beloved family who lend me strong
encouragement and full confidence when I felt frustrated during the research process,
and to all my friends who gave me considerable assistance during the difficult
moments of this thesis.
iii
TABLE OF CONTENTS
ABSTRACT ................................................................................................................. i
ACKNOWNLEDGEMENTS ................................................................................... iii
TABLE OF CONTENTS.......................................................................................... iv
LIST OF FIGURES ................................................................................................. vii
LIST OF TABLES .................................................................................................... ix
ABBREVIATIONS .................................................................................................... x
1 Introduction ............................................................................................................. 1
1.1
Research introduction................................................................................... 1
1.2
1.3
1.4
1.5
Publication ................................................................................................... 5
1.6
2 Literature review..................................................................................................... 6
2.1
2.2
2.3
2.3.1
2.3.2
Synchronisation algorithms.................................................................... 14
2.4
2.4.1
2.4.2
2.5
2.6
2.7
2.7.1
2.7.2
2.8
2.8.1
2.8.2
2.8.3
2.9
2.10
Contributions .............................................................................................. 38
2.11
3.2
3.3
3.4
3.5
4.2
4.3
4.4
4.5
Synchronisation .......................................................................................... 59
4.5.1
4.6.1
4.6.2
4.6.3
4.6.4
4.6.5
4.7
5 Experiments ........................................................................................................... 72
5.1
Test-bed settings......................................................................................... 72
5.2
5.2.1
5.2.2
5.2.3
5.2.4
5.2.5
5.3
Simulated
OFDM
performances
versus
implemented
OFDM
Simulated
OFDM
performances
versus
implemented
OFDM
Simulated
OFDM
performances
versus
implemented
OFDM
Simulated
OFDM
performances
versus
implemented
OFDM
6 Conclusions ............................................................................................................ 94
6.1
6.2
Recommendations ...................................................................................... 95
6.3
6.4
Conclusions ................................................................................................ 96
REFERENCES ......................................................................................................... 98
vi
LIST OF FIGURES
Figure 2-1 Block diagram of the conventional OFDM system .................................. 10
Figure 2-2 Block diagram of a fundamental OFDM receiver .................................... 12
Figure 2-3 An example to create training symbols .................................................... 16
Figure 2-4 Channel estimation in OFDM receiver .................................................... 19
Figure 2-5 Typical training symbols and pilot subcarriers arrangement[40] ............. 20
Figure 2-6 Software defined radio architecture ......................................................... 26
Figure 2-7 An example of flowgraph ......................................................................... 30
Figure 2-8 GNU Radio Blocks................................................................................... 31
Figure 2-9 An example of a hierarchical block .......................................................... 32
Figure 2-10 FM receiver built by GRC ...................................................................... 33
Figure 2-11 Decimating low pass filter function in FPGA [70] ................................ 34
Figure 2-12 Block diagram of USRP2 main components and signalling rates [83] .. 35
Figure 2-13 WBX daughterboard............................................................................... 36
Figure 3-1 OFDM system block diagram .................................................................. 40
Figure 3-2 Performance of OFDM systems in different propagation environments . 42
Figure 3-3 OFDM frame structure ............................................................................. 43
Figure 3-4 Block diagram of OFDM systems with channel estimation .................... 44
Figure 3-5 Comparison of LS and MMSE estimations in OFDM systems ............... 45
Figure 3-6 Block diagram of OFDM systems with SNR estimation ......................... 46
Figure 3-7 Performance of blind SNR estimation in OFDM system ......................... 48
Figure 3-8 OFDM block diagram with estimated channel state information ............ 49
Figure 4-1 OFDM system's module hierarchy ........................................................... 52
Figure 4-2 Block diagram of ofdm_receiver module ................................................. 57
Figure 4-3 Block diagram of frame_sink module ...................................................... 59
Figure 4-4 PN synchronisation flow graph ................................................................ 60
Figure 5-1 Structure overview of the testbed ............................................................. 73
Figure 5-2 Laboratory environment without obstruction and the arrangement of
transmitter and receiver in our experiments ....................................................... 74
Figure 5-3 Comparison OFDM performance with BPSK and QPSK constellations in
laboratory environment without obstruction ...................................................... 76
vii
Figure 5-4 Comparison performance of OFDM system with BPSK and QPSK in
simulation ........................................................................................................... 77
Figure 5-5 The laboratory environment with obstruction .......................................... 77
Figure 5-6 Performance of OFDM systems with BPSK and QPSK constellations in
the laboratory environment with obstruction between two antennas ................. 78
Figure 5-7 Performance of OFDM system with BPSK versus QPSK in simulation . 79
Figure 5-8 Corridor environment used in the experiments ........................................ 80
Figure 5-9 Comparison between performances of implemented OFDM with BPSK
and QPSK in corridor environment without obstruction ................................... 81
Figure 5-10 Comparison performances of OFDM with BPSK and QPSK in
simulation ........................................................................................................... 82
Figure 5-11 Obstruction between two antennas in corridor environment ................. 83
Figure 5-12 Performances of OFDM systems with BPSK and QPSK constellations in
corridor environment with obstruction............................................................... 84
Figure 5-13 Comparison performances of OFDM with BPSK and QPSK in
simulation ........................................................................................................... 84
Figure 5-14 Comparison between performances of the implemented OFDM system
in our laboratory with obstruction and without obstruction ............................... 85
Figure 5-15 Performances of the implemented OFDM system in the corridor
environment with and without obstruction ........................................................ 86
Figure 5-16 Simulated OFDM vs. implemented OFDM in laboratory environment
without obstruction ............................................................................................ 88
Figure 5-17 Simulated OFDM vs. implemented OFDM in laboratory environment
with obstruction.................................................................................................. 90
Figure 5-18 Simulated OFDM vs. implemented OFDM in corridor environment
without obstruction ............................................................................................ 91
Figure 5-19 Simulated OFDM vs. implemented OFDM in corridor environment with
obstruction .......................................................................................................... 92
viii
LIST OF TABLES
Table 2-1 USRP1 and USRP2 Comparison ............................................................... 35
ix
ABBREVIATIONS
ADC
Analogue-to-Digital Converter
AGC
AMC
API
AWGN
BER
BPSK
BRANs
CFO
CIR
CPU
CRC
DAB
DVB-T
DAC
Digital-to-Analogue Converter
DECT
FER
FIFO
FIR
FPGA
GI
Guard Interval
GNU
GPL
GPP
GRC
GSM
HIPERLAN-II
IDFT
IF
Intermediate Frequency
IIR
IO
ISI
Inter-Symbol Interference
LANs
LO
Local Oscillator
LOS
Line-of-Sight
LS
Least Square
MANET
MCM
Multi-Carrier Modulation
MIMO
Multiple-Input Multiple-Output
ML
Maximum-Likelihood
MMSE
MSE
MSPS
NC-OFDM
Non-Contiguous OFDM
NNR
Noise-to-Noise ratio
OFDM
PAPR
PC
Personal Computer
PCI
PN
Pseudo Noise
PSK
QA
Quality Assurance
xi
QAM
QPSK
RF
Radio Frequency
SC-FDMA
SD
Secure Digital
SDR
SNR
Signal-to-Noise Ratio
UDP
UHD
USRP
USRP2
WLANs
xii
1 INTRODUCTION
1.1
Research introduction
Wireless communication is one of the most exciting areas in the communication field
today. It is used to transmit information over the air without the use of a guided
medium. Due to the sharply increasing in demand for wireless connectivity, it has
developed extremely fast during the last two decades. However, wireless
communication is not as reliable as guided medium communication, due to fading
and other propagation effects [1]. Accordingly, the techniques to improve its capacity
and reliability become the essential objectives for current research. Numerous
techniques have been proposed to enhance the performance and reduce the
interference in wireless communication. A common technique is Orthogonal
Frequency Division Multiplexing (OFDM). The aim of OFDM technique is to
against frequency-selective fading or narrowband interference in wireless
communication, consequently improving the system reliability. This technique
allows data to be transmitted in parallel by modulating the data on a set of orthogonal
sub-carriers. It has been widely applied in practice, such as in Digital Audio
Broadcasting and Digital Video Broadcasting for terrestrial television (DAB/DVBT), Wireless Local Area Networks (WLANs) such as IEEE802.11a /g/n, Broadband
Radio Access Networks (BRANs), WiMax and High Performance Local Area
Network type 2 (HIPERLAN-II) [2, 3].
To enhance wireless communication performance numerous techniques have been
proposed and validated in simulations. However, validation of those techniques in
actual hardware is much more challenging because implementation of a system in
hardware takes a large amount of time, effort and with a high cost. Currently, the
Software Defined Radio (SDR) approach could help researchers and engineers to
reduce the time, effort and cost to implement a wireless system. Therefore, it has
become more and more widespread in the formation of wireless networks. The main
idea of SDR is to turn radio hardware problems into software problems. Most signal
processing in wireless systems thus can be performed via software. This character of
SDR system offers great flexibility for wireless communication researchers and
developer to implement new protocols, methods or techniques. In SDR-related
research field, opened GNU Radio software platform (GNU stands for GNU's Not
1
Unix [4]) and opened Universal Software Radio Peripheral (USRP) hardware are the
most common software and hardware used to in SDR systems. Since they are open
source, everyone can easily build, develop and modify their system.
The above advantage of SDR techniques motivates us to implement a wireless
communication system based on SDR techniques using GNU Radio software
platform and USRP hardware. Particularly, an OFDM-based system is implemented
based on GNU Radio software platform and version-2 USRP (USRP2) devices. The
performance of the implemented system is then analysed in different realistic
environments with different signal constellations. Finally, the performances of the
implemented OFDM system are compared to the performances of the simulated
OFDM system.
1.2
Project significance
In this project, an OFDM testbed has been successfully developed using GNU Radio
platform and USRP2 devices. The physical experimental platform differentiates this
project from many preceding research projects which merely focus on simulated
results. The successful testbed could be easily extended to verify performance of a
different general wireless communication system, not just limited to an OFDM-based
system, in different realistic propagation environments. Further, the project details
the GNU Radio platform structure and the way to implement or modify a signal
processing module. This contribution makes up for the current less informative
Application Programming Interface (API) of GNU Radio software platform.
Although this project only implements an OFDM system with essential modules, it
provides an approach to construct a SDR system using GNU Radio software
platform and USRP devices. Based on this approach, new methods, new techniques,
and new algorithms could be applied to enhance further the OFDM system, and the
OFDM performance can be evaluated in different realistic environments. The
successful implementation of OFDM systems in SDR using GNU Radio software
platform and USRP devices opens the opportunity to implement other wireless
communication system in SDR and verify easily the performance of the system in
practical environments as well as to apply new techniques to enhance the
performance of the system with less effort and lower cost.
2
Research approach
Find out how to modify, create and install a module in GNU Radio;
1.4
Research outcomes
A newly developed blind SNR estimation module. This module facilitates the
evaluation of the BER performance of OFDM systems in different realistic
environments;
1.5
Publication
Thesis structure
2 LITERATURE REVIEW
This chapter presents the background of the following techniques, which involve in
this project, and the research questions which will be addressed in this project.
GNU radio
2.1
root mean squared (rms) delay spread - the time between the first and the last
arriving signal paths;
6
number of multipaths - the number of path ways from the transmitter to the
receiver.
Rayleigh and Rician fading channels are currently channel models wisely used to
model narrow-band and wideband wireless channels in a number of realistic wireless
communication environments. In realistic wireless communication environments,
some propagation phenomena, including multipath scattering effects, the time
dispersion and Doppler shifts, are typically present.
Rayleigh fading channel [3, 7-9] is the rational model when there are many object in
the environment that scatter and reflect the transmitted signal and there are no direct
path (Line-Of-Sight) between the transmitter and receiver. If there is no Line-ofSight (LOS) then the constructive and destructive nature of multipath signal in flat
fading can be approximated by a Rayleigh distribution.
In Rayleigh channel, the received signal can be expressed as
N
s(t ) i cos(c t i )
(2-1)
i 1
where N is the number of paths, i and i are amplitude and phase of the i th reflected
signal at the receiver from an angle i relative to the direction of motion of the
received antenna. The phase i and angle i can be assumed to follow a uniform
distribution over 0, 2 . The Doppler shift is given by
d
i
c
c
cos i
(2-2)
Taking the Doppler shift into consideration, the received signal can be written as
N
s(t ) i cos(ct di t i )
(2-3)
i 1
Expressing the signal in-phase and quadrature phase form, (2-3) can be written as
s(t ) I (t ) cos(ct ) Q(t )sin(ct )
(2-4)
where:
N
I (t ) i cos(di t i )
(2-5)
i 1
Q(t ) i sin(di t i )
(2-6)
i 1
(2-7)
The probability density function of the in-phase and quadrature phase components is
given by the Gaussian density
fQ (q)
2
2
1
e q /2
2
(2-8)
f R (r )
e r
2
/2 2
(2-9)
(2-10)
where constant kd is the strength of the direct component, d is the Doppler shift
along the LOS path, and d is the Doppler shift along the i th indirect path. The
i
f R (r )
e ( r
kd2 )/2 2
I0 (
akd
(2-11)
K (dB) 10log(
kd2
)
2 2
(2-12)
For K , we have no direct path and the Rician distribution becomes the
Rayleigh distribution. For K , the Rician distribution turns into the Gaussian
distribution.
2.2
Add a Guard Interval (GI) then feed the results to the up converter
digital
Since timing and frequency errors in multi-carriers ruin orthogonal property among
subcarriers which causes large performance degradation, time and frequency
synchronisations are significant to construct a wireless communication system.
Basically, the target of the function is to obtain significant parameters such as start of
the frame, sampling clock and frequency offset from the received signal for reliable
transmission. The synchronisation tasks in an OFDM system can be identified as
following[32]:
The receiver block diagram is presented in Figure 2-2. In the analogue frontend, the
Local Oscillator (LO) generates two quadrature sinusoids to filter and down-convert
the incoming waveform r (t ) to baseband. An Analogue-to-Digital Converter (ADC)
then is applied to sample the baseband signal at the sampling frequency. The
frequency f LO of the DFT does not match to the received carrier frequency f c due to
oscillator instabilities and/or Doppler shifts. The difference f d fc f LO causing a
phase shift of 2 kf d is known as frequency offset or Carrier Frequency Offset (CFO).
Thus, the received signal in baseband can be written as
r (k ) y(k )e j 2 k / N
(2-13)
f 1/ ( NTs ) .
system performance. Therefore, the start of each OFDM symbol at the receiver is
sufficient to estimate within one sampling period. Denotes k to be the number of
samples the time scale shifted compared to the perfect setting at the receiver. Thus,
the samples from ADC are expressed by
L 1
(2-14)
l 0
where h [h(0), h(1), ...,h(L-1)]T is the discrete time Channel Impulse Response
(CIR), NT is the number of symbols in transmitted signal, w(k ) is a complex-valued
AWGN.
The timing and frequency synchronisation blocks in the OFDM system shown in
Figure 2-2 utilise the received samples r (k ) to estimate and k . r (k ) is counterrotated at an angular speed 2 k / N , which is estimated frequency offset, by
numerically controlled oscillator (NCO). Whereas the timing estimation block is
aimed to estimate the beginning of the received signal. Specifically, the corrected
samples r (k ) are passed to the DFT/FFT block and the result signal in the frequency
domain is utilise to retrieve the data symbols transmitted by the i th OFDM
symbol.
2.3.1
To estimate the effect of frequency offset on the performance of digital system, the
loss in SNR value is used as a indicator [32]. It is defined as
( )
SNRideal
SNRreal
(2-15)
( ) 1
1 Es
( ) 2
3 N0
(2-16)
13
(2-17)
Wi (n) w(k )e j 2 kn / N
0 n N 1
(2-18)
k 0
H i (n) h(k )e j 2 kn / N
0 n N 1
(2-19)
k 0
a fractional time offset after DFT/FFT only causes a linear phase rotation and
can be eliminated by the channel equaliser;
the timing offset does not ruin the orthogonal properties between subcarriers;
and
the effect of timing error is increasing a linear phase offset across the
subcarriers.
2.3.2
Synchronisation algorithms
non data-aided: make use of the correlation between the CP and the end of
the symbol
data-aided: make use of additional data such as preamble and pilot tones.
14
( n)
n L 1
r (k )r (k N ) E
*
(2-20)
k n
1
1 n L 1
| r (k ) |2 | r (k N ) |2
1 SNR 1 2 k n
(2-21)
where L is the CP length, N is the OFDM symbol length, and E is the normalised
signal energy.
The timing offset firstly is estimated using the peak of (n) . Then the frequency
offset can be calculated based on the phase shift between the CP and the samples at
the end of the OFDM symbol. Intuitively, this algorithm works inefficiently in
multipath channel because the CP is distorted by ISI. Besides the second-order
cyclostationarity of the received signals is exploits, and then the information of
symbol-timing offset and carrier frequency offset are obtained by the cyclic
correlation [36].
Non data-aided time and frequency estimation algorithms archive better bandwidth
efficiency, but worse performance than other time and frequency data-aided
estimation algorithms because no training symbol is required. It is important to
discuss data-aided estimation algorithms.
2.3.2.2 Data-aided
The accuracy of estimated time and frequency offset is significant to an OFDM
system. Therefore, there is a trade-off between the system bandwidth efficiency and
the system performance. In most cases, it is justified to lose some amount of
bandwidth for synchronisation. The bandwidth can take the form of the preamble,
some pilot tones in each OFDM symbol, or a combination of the two.
15
2.3.2.2.1
Preamble techniques
The most popular synchronisation technique using the preamble for OFDM systems
was initiated by Schmidl and Cox [37], which has accuracy close to the Cramer-Rao
bound. There have been numerous subsequent works based on this algorithm.
Schmidl and Cox used a symbol preamble with special structure to estimate the
timing and frequency offsets. They create the training symbol with two matching
halves in time domain by in the frequency domain transmitting Pseudo-Noise (PN)
sequence only on even subcarriers, and transmitting nothing on odd subcarriers, i.e.,
X 2k 1 0 for k 0,..., N / 2 1. It can be seen in Figure 2-3.
ci (n) Ci (k )e i 2 kn / N
k 0
N /2 1
C ( k )e
l 0
i 2 2 ln / N
(2-22)
=ci (n N / 2)
The received samples in the time domain will be separated into two matched parts
and will have approximately the same timing. Therefore if we multiply rd , the d th
received sample, with the conjugate of rd N /2 then the only factor affects the phase of
the product is the carrier frequency offset. Since we are two matched half a symbol
16
T
fT with f is frequency
2
N /2 1
r (k d )r (k d N / 2)
k 0
(2-23)
If d is the part of the CP that is unaffected by the ISI, or the start of OFDM symbol,
P(d ) will be the sum of terms with the similar phase. By searching peak of P(d ) , the
optimal starting point of the OFDM symbol can be found. In [36], P(d ) is
normalized by the energy of the second half of the received symbol
R(d )
N /2 1
| r (d k N / 2)
k 0
(2-24)
P(d )
. Denote the optimal value of d to be d*
R(d )
(2-25)
Since the phase difference P(d *) is limited to , and the frequency offset is
limited to less than the subcarrier spacing, Schmidl and Cox extended the result to
the circumstance when the carrier frequency offset is larger than subcarrier spacing
by introducing the term z
f
P(d *) 2 z
T
T
(2-26)
|
B( g )
x
k 0
*
2
1,2 k 2 g 2 k 2,2 k 2 g
v x
N /21
2( | x2,2 k | )
(2-27)
2 2
k 0
17
2.3.2.2.2
Pilot techniques
The use of only pilot tones in each OFDM symbol to estimate time was initiated by
Kim [38]. The behind idea of is that the phase offset between two subcarriers
depends only on the frequency difference between those subcarriers.
(q) q ,k2 n1 q ,k2 n
2
(k2 n1 k2 n )
N
(2-28)
In (2-28), k2n and k2 n1 are the position of the two tones of the n th pilot pair. If
we transmit identical pilot tones then take the difference of the phases of the received
tones, we can estimate the phase offset caused by timing error. The more pilot pairs
are used, the better the timing synchronisation performance is. To take the advantage
of all different pilot pairs to get timing offset estimated, the average phase offset,
instead of the phase offset between two subcarriers, is used.
(q)
1 L
(Yq,k2 n1Yq*,k2 n1 )
L n1
(2-29)
In the wireless communication systems using the blind channel estimation technique,
no specialized reference (training) signal is needed, therefore, transmission efficiency
is retained. On the other hand, without the knowledge of transmitted signals, in order
to achieve a reliable estimation, a large amount of data must be collected. However,
data-aided channel estimation techniques need to insert the known training signals to
18
the transmitted signals. The rapid and accurate channel estimation can be obtained by
comparing the received signals and transmitted signals.
For the simplicity, the channel is assuming that receiver is perfectly synchronised
0 and k 0 . As a result, the received signal after DFT block during the i th
symbol is expressed as
R(n) H (n)C (n) W (n),0 n N 1
(2-30)
decisions C (n) to recover the C (n) on the transmitted data. A simple channel
estimation is that the equaliser coefficients is estimated in the pure channel inversion,
which is known as Zero-Forcing (ZF) equalisation. The equaliser coefficients are
then estimated by
P ( n)
1
H ( n)
19
(2-31)
Y ( n)
R ( n)
W ( n)
C ( n)
H ( n)
H ( n)
(2-32)
The (2-32) equation shows that the Zero-Forcing equalisation is able completely to
compensate any distortion caused by the wireless channel. On the other hand, at the
equaliser output, the noise power, which is given by w 2 / | H (n) |2 , may be extremely
large due to strongly faded subcarriers and the low channel gains H (n) .
In this project, we focus mainly on data-aided channel estimation techniques because
of the high accuracy of the technique. In data-aided channel estimation, known
information is added to transmitted OFDM symbols so that the receiver can use the
know information to estimate the current channel. There are two common data-aided
channel estimation techniques, namely channel estimation with training symbols
(sending known information over one or more whole OFDM symbols without any
data), and pilots aided channel estimation (sending known information together with
the data). The first type is referred to as a block type, while the latter is called comb
type. These two techniques are shown in Figure 2-5.
In the pilot aided channel estimation, the spacing of the pilot tones requires to be
decided carefully. The pilot spacing in the frequency domain relies on the coherence
20
bandwidth of the wireless channel, which is related to the delay spread. According to
the Nyquist sampling theorem, the number of subcarriers between two consecutive
pilots in the frequency domain, D p , has to be small enough so that the channel
frequency response can be estimate correctly. That is,
Dp
1
max d f
(2-33)
where max is the maximum excess delay of channel and d f is the subcarrier
spacing. If the equation is not fulfilled, the channel then samples available at the pilot
subcarriers do not reflect the actual channel accurately. Consequently, the estimation
technique introduces an irreducible error floor since this causes the aliasing of the
Channel Impulse Response (CIR) taps in the time domain [41].
If the pilot tones are inserted in time domain, the maximum spacing of plot tones
across time [40] is given by
Dt
1
2 f dmax T f
(2-34)
where f dmax is the maximum Doppler spread and T f is the OFDM symbol duration.
The pilots are transmitted continuously in each OFDM symbol, while the channel is
varying in both time and frequency domains. Therefore the pilot tones have to be
sampled at least at the Nyquist rate in order to reconstruct accuracy the channel.
Consequently, the rate to insert pilots in the frequency domain and from one OFDM
symbol to another should be set following (2-33) and (2-34). In general, the number
of pilots within an OFDM symbol in the frequency domain should be larger than the
maximum excess delay in the actual channel. Over the time, the Doppler spread is
the main consideration for the pilot arrangements.
Numerous channel estimation studies based on the Mean Squared Error (MSE) of
Least Square (LS) estimation were carried out to find the optimal pilot locations in
both time and frequency domain and gave a minimum number of pilots in order to
save energy in unnecessary pilot symbols and still keep the channel estimation
accuracy. In addition, pilot arrangement not only minimizes MSE of the channel
estimation, but also needs to reduce the complexity of the channel estimation
21
algorithm in order to reserve the system resources. For example, constant modulus
pilots may be used to simplify the channel estimation algorithms as matrix operations
reduce the complexity [42].
Another important consideration for pilot arrangements is the power distribution of
the pilots. The power of pilot subcarriers and data subcarriers are commonly
distributed equally. The performance of channel estimation can be enhanced by
transmitting the pilot subcarriers with more power compared to data subcarriers [43].
However, this decreases the SNR over the data transmission due to increasing the
total power. For pilot power allocation, studies show that pilot power in channel
estimation based on the MSE of the LS estimation should be allocated equally [44].
In addition, channel estimation performs poorly at the edge due to the lack of the
pilot subcarriers at the border of OFDM symbols [45]. It is also proved that due to
the extrapolation the channel estimation performances at the edge subcarriers are
significantly worse than those at the mid-bands. The simplest solution is increasing
the number of pilot subcarriers at the edge of OFDM symbols [46]. However, this
will reduce the spectral efficiency of the OFDM system. Using the periodic
behaviour of the correlation of the Fourier Transform, the channel estimation can be
improved at the edge subcarriers. Z. Jianhua and Z. Ping exploited this property to
enhance the channel estimation performance at the edge subcarriers [47].
2.4.2
22
Signal-to-Noise Radio is defined as the ratio of the desired signal power to the
background noise power. It is a parameter commonly used to evaluate of the signal
quality for communication systems. Moreover, SNR knowledge is commonly used to
improve feedback channel estimation, and is a key decision parameter in adaptive
processes such as dynamic reconfiguration of cognitive radios, Adaptive Modulation
and Coding (AMC), turbo decoding and adaptive power allocation.
In the literature, most SNR estimation techniques proposed so far are related to
single carrier transmission. Various SNR estimation algorithms were compared with
the derivation of the Cramer-Rao bound in [55]. Some of single subcarrier SNR
estimation schemes is directly used in OFDM systems with Additive White Gaussian
Noise (AWGN) [56]. The SNR estimation techniques in OFDM system can be
arranged roughly in two categories: data-aided and non-data-aided schemes (or blind
schemes). Data-aided schemes require known signals such as pilot subcarriers can be
transmitted in each OFDM symbol or a sequence of training OFDM symbol(s) that is
called the preamble. SNR estimation schemes in OFDM system can also be
categorized into the time-domain and the frequency-domain methods. As a result,
SNR estimation schemes are divided in to one or a hybrid of the following four
types: data-aided in time domain [57], data-aided in the frequency domain [56-60],
23
expectation maximization algorithm with the assumption that the channel was known
was used in [64] in order to solve the disadvantage. Thus, the performance of SNR
estimation depends on channel estimation accuracy. A special preamble OFDM
symbol which contains repeated signal segments in the time domain or equivalently
with periodic virtual subcarriers in the frequency domain [59, 69] is used for SNR
estimation. The limitation of these methods is that the SNR estimation in the
preamble may not accurately represent the SNR of payload fields in frequencyselective and/or flat fading channel.
In this project, we implemented the blind SNR estimation with low complexity
which is introduced in [65]. The detail algorithm will be presented in next chapter.
2.6
Software Defined Radio (SDR) has become more prevalent in the formation of
wireless networks. The idea behind SDR is to turn radio hardware problems into
software problems [70]. In SDR systems, most signal processing is done (or at least
managed) via software by using Field-Programmable Gate Arrays (FPGA), General
Purpose Processors (GPP), or any other programmable device. The fundamental
characteristic of SDR is that software defines the transmitted waveforms, and
demodulates the received waveforms. This characteristic of SDR offers great
flexibility for wireless communication research and development. A variety of
newly-developed methods, algorithms and protocols can be implemented and
verified easily in the similar manner as if they were done in a testbed constructed by
real radio platforms. To achieve this, Radio Frequency (RF) components, such as
mixers and filters, are also moved to the software domain, where digital signal
processing is performed in baseband [71-75]. The emergence of low cost, high speed
digital-to-analogue and analogue-to-digital converters has brought the software
defined radio concept closer to reality. The SDR channel model is showed in Figure
2-6.
25
Antenna
RF Section
IF Section
RX
Baseband Section
Digital Up
Converter
D/A
RF Front-End
TX
DSP
Digital Down
Converter
A/D
R 6dB n
(2-35)
where R is the dynamic range of ADCs and n is the number of bits in the
ADC.
Bus Speed: it is another issue to receive the data from the ADC to the
computer. In practice, there is a maximum bus speed for the possible data
rate, limiting the product of sample rate and resolution of the samples. The
bus speed in PCs commonly ranges from a few Mbps to several Gbps.
However, various solutions have been proposed to deal with these problems and help
SDR become a promising low-cost research approach. There are numerous SDR
platforms used to experiment. Most of them consist of free software that is constantly
modified and open hardware which must be purchased to take care of RF part of the
transmission. Currently, GNU Radio software and SDR4All Tool, which are free
software for building SDR, and USRP, which is an open interface hardware platform
for building SDRs developed by Matt Ettus [76], are used widely for numerous
research purposes.
Wang et. al. [77, 78] proposed the use of USRP platforms with RFX2400 daughter
boards and SDR4All tools with MATLAB for Cognitive Radio (CR) in order to
discriminate three standard-like spectrums (e.g. GSM-like, UMTS-like and OFDMlike) under simple real transmission conditions. Tucker and Tagliarini [71] made use
of GNU Radio and version-1 USRP (USRP1) to implement a Multiple-Input
Multiple-Output (MIMO) Software Defined Radio platform in order to operate
Mobile Ad-Hoc Networks (MANET) nodes. A. Kaszuba et. al. [79] implemented
MIMO systems with the Alamouti STBC based on GNU Radio and USRP2.
Experimental results of MIMO link performance in terms of Frame Error Rate (FER)
versus SNR were presented there. Kun-chan and Mei-wen [80] presented a feasibility
study on the use of FM radio for data transmission in vehicular networks, using GNU
Radio and USRP boards to observe the packet loss rate and packet correct rate in
different distances. Marwanto et. al. [81] explored the viability of using GNU Radio
and USRP to transmit and receive the OFDM radio signal with QPSK and BPSK
modulations. In [82], an energy detector is developed based on a USRP2 with
XCVR2450 daughter boards, that work in the 2.4 and 5 GHz bands, in order to
27
GNU radio
GNU Radio is an open software platform for building software defined radio
systems. Anyone is allowed to utilise, exploit and adjust GNU Radio without
limitation under the GNU General Public Licence (GPL). The target of GNU Radio
according to the projects founder Eric Blossom is to "bring the code as close to the
antenna as possible", and "turn hardware problems into software problems" [70].
GNU Radio offers various building blocks for signal processing, as well as a method
to manipulate the data flow between the blocks. This is a partial list of the functions
offered by GNU Radio software platform including:
FFT/IFFT blocks
Filters including High pass filter, low pass filter, band pass filter, band reject
filter, FFT filter, Finite Impulse Response (FIR) filter, Infinite Impulse
Response (IIR) filter and Hilbert;
Control blocks including Automatic Gain Control (AGC) blocks, Detect Peak
block, Threshold block;
Type conversions such as Float to Short block, Int to Fload block, and
Complex to Real
GNU Radio software platform also offer support for different signal sources and
sinks as following:
28
Constant source;
Noise source;
Message source;
Graphical sinks such as Oscilloscope sink, Eye Diagram, FFT sink, Waterfall
sink, Constellation sink and Histogram sink;
At the beginning, GNU Radio was established on a Linux platform. At the moment,
it currently supports different platforms including UNIX, Windows and MAC
platforms.
2.7.1
GNU Architecture
GNU Radio software architecture includes two components. The first one is the set
of various C++ blocks which implement digital signal processing operations for
example
filtering,
I/O
operations,
FFT/IFT,
coding/decoding,
and
29
f - floats (4 Bytes),
Each block defines a general_work() function that performs on its input to procedure
output data streams. Blocks also provide a forecast() function that returns the system
runtime the number of input data streams it requires to perform, and the number of
output data streams it produces from the given input items.
30
31
GNU Radio Companion (GRC) is a graphical interface for GNU Radio user. GNU
Radio Companion is an open source tool based on Python/C++ to build software
radio systems. GRC allows connecting components and generating a signal flow
diagram by using a graphical drag-and-drop interface. Component blocks are
normally implemented in C++ and connected using the Python programming
language. GRC currently is a part of GNU Radio and is under development by Josh
Blum [84]. Though, the visual programming is not as powerful and flexible as the
programming in Python, the visual programming is more intuitive than programming
in Python for the user. With GRC, a simple FM broadcast receiver is easy to build in
the SDR system as shown in Figure 2-10.
32
The Universal Software Radio Peripheral is the most common hardware used with
GNU Radio to build a SDR system. USRP is a family of hardware devices found by
Matt Ettus which facilitate making SDRs. It is composed of two main sub devices, a
motherboard and various daughterboards which can convey and/or receive in
different frequency ranges from 0 to 5.9GHz. The daughterboard can easily be
exchanged. This allows USRP to work at various frequencies.
2.8.1
(40 MHz in the daughterboard used herein). To convert analogue signals to digital
signals, the motherboard uses two high speed analogue-to-digital converters. The
digitalised IF signal is then executed in the on-board FPGA. Therein, the digital
decimating low pass filter preloaded in the FPGA processes the signal. Generally, the
data rate of this digitalised signal is too high for general computer processing [70].
Therefore, the purpose of filtering is to reduce the sampling rate to suit the
processing capabilities of the computer and the capacity of Ethernet cable. The
functionality of FPGA in reducing the sampling rate is shown in Figure 2-11.
Along the transmit path, digital information is sent to the FPGA which is converted
to an analogue signal with two high speed digital-to-analogue converters. The
analogue signal is then fed to the daughterboard to transmit as a RF signal.
Sample rate = fs
fs/N
Input from
ADC
Decimating
Low Pass Filter
Input from
ADC
I
Q
NCO
Sine/Cosine
Generator
Bandwidth
Decimation
factor = N
Center frequency
-fs/2 to fs/2
Figure 2-11 Decimating low pass filter function in FPGA [70]
2.8.2
Version-2 USRP
The version-2 USRP (USRP2) was built up on the success of the original USRP,
offering better performance and increased flexibility at a lower price. It features a
Gigabit Ethernet interface 25 Msps to communicate with PC, Xilinx Spartan 32000
Field Programmable Gate Array (FPGA), SRAM 1MB, 2 Analogue-to-Digital
Converters (ADCs) at 100 MS/s, 14 bits, 2 Digital-to-Analogue Converters (DACs)
34
at 400 MS/s, 16 bits, and a Secure Digital (SD) card reader for the firmware. The
USRP2 architecture and its features are shown in Figure 2-12.
The internal USRP2 clock is a 100 MHz Voltage Controlled Oscillator (VCO) with a
10pp nominal accuracy; USRP2 also provides a connection to an external reference
clock as well as a Pulse-Per-Second (PPS) port [85]. USRP2 provides connections to
daughter boards which serve as RF front-ends.
100 Msps
SD
Memory
Card
Host 25 Msps I/Q
Computer
Spartan 3
-2000
FPGA
XC9572
CPLD
DP83865
Gigabit
Ethernet
Controller
aeMB
soft-core
AD9777
2xDAC
16 bit
LTC2284
2xADC
14 bit
100 Msps
CY7C1356C
1MB
SRAM
100 Msps
I
Q
EF
Front End
Q
100 Msps
Figure 2-12 Block diagram of USRP2 main components and signalling rates [83]
This project uses USRP2 for experiments due to its better properties compared to
USRP1 which are shown in Table 2-1.
Table 2-1 USRP1 and USRP2 Comparison
USRP1
USRP2
Interface
USB 2.0
Gigabit Ethernet
FPGA
ltera EP1C12
8 MHz @ 16bits
25 MHz @ 16bits
ADC Samples
12-bit, 64 MS/s
DAC Samples
Daughterboard capacity
2 TX, 2 RX
1 TX, 1 RX
SRAM
None
1 Megabyte
Power
6V, 3A
6V, 3A
35
2.8.3
Daughter boards
An SDR hardware platform should be able to capture and process weak signals in a
wide dynamic range, which would demand for multi GHz speed ADCs. However, it
is infeasible to realise ADCs at that ultra high speed (USRP device has 100 M
Samples/s ADCs only). To solve this issue, Ettus Research had introduced the
daughterboards that can be plugged into USRP motherboards via transmit/receive
ports. The band pass filter on daughterboard narrows down the frequency range, and
then the residual RF is converted down to IF such that the subsequent ADC can
handle the speed of the signal.
USRP
motherboards
support
various
daughterboard,
such
as
RFX
36
The WBX daughterboard has two interfaces named TX/RX and RX2. It can provide
up to two antennas, one on each interface. The TX/RX interface can be used either
for transmission or reception at any given time, while RX2 interface is only used for
reception. User can select the preferred interface for communication in the SDR
script depending on the application. The interfaces available are:
receive only: Either TX/RX or RX2 can be selected. Both interfaces cannot
be used at any given time to receive two frequencies.
2.9
Research questions
While OFDM with its advantages has been widely used in digital communication
systems nowadays, SDR is an emerging and developing technique, thus it has not
been matured yet. Therefore, the combination of SNR system and OFDM-based
system becomes a interesting and attractive research field. Although, OFDM and
SDR have been somewhat examined for general wireless networks in the literature
such as [79, 81, 85-87], it has been almost unexplored due to the hardware
limitations, the difficulties on system set-up and the large knowledge requirement on
different topics such as channel estimation, time and frequency synchronisation, and
SNR estimation. Consequently, there is a lack of comparisons between OFDM
system performance in different practical environments, with different OFDM
configurations, and with different hardware configurations. Particularly , the
performance of OFDM system is just verified in AGWN channel and laboratory
room in short distance
Thus, the research questions are summarised as follows:
37
2.10 Contributions
In this thesis, we have
38
39
1 N 1
Ci (n)ei 2 kn/ N 0 k N 1
N n 0
(3.1)
To reduce the ISI between successive blocks of data, the transmitter copies a partial
repetition of the tail part ( N g samples) of every block to the head of the block, which
is known as a cyclic prefix, to construct an OFDM symbol consisting of N N g
samples.
Transmitted signals over wireless channel are typically diffracted, reflected and
scattered. Thus, arriving signals at the receiver are combination of different copies of
the same signal with different amplitudes, time of arrival and phases. A common
model to represent the wireless channel effects is use of the channel impulse
response, which is given as
where L is the number of receiver signal paths in the transmission channel, (k ) and
r c*h w
(3.2)
Ri (k ) ri (n)ei 2 kn / N 0 k N 1
(3.3)
n 0
The resulting signal is fed to the simple 1-tap equalizer block. Denote the channel
frequency response to be H f then Hf is given by the FFT of the channel impulse
response h as follows
N 1
H f (k ) h(n)ei 2 kn / N 0 k N 1
(3.4)
n 0
If channel estimation is ideal, the signal after the equalizer block is given by
C i (k ) Ri (k ). / H f (k ), for k 0,1,..., N 1
(3.5)
The maximum likelihood decision is then used to detect each symbol Ci (k ) from
41
In this section, the preamble-based channel estimation algorithm for OFDM systems
in the frequency domain proposed by Beek [88] is presented and simulated by
MATLAB with the assumption that timing and frequency synchronisation is perfect
and channel information state remains static over each frame duration, i.e.
Hi (n) H (n) for i 1,..., I where I is the total number of OFDM symbols within
one frame. Estimated channel response obtained from the preambles can be applied
to coherently detect the whole frame.
The OFDM frame structure in our simulations is shown in Figure 3-3. An OFDM
frame consists totally of I 8 OFDM symbols (1 preamble and 7 OFDM data
symbols). Each OFDM symbol consists of N _ subcariers 40 data, N _ zeros 24
zeros for synchronization, and N _ CP 16 samples of the cyclic prefix for the guard
interval. The preamble symbol has the same structure as other OFDM symbols. The
only difference is that all of N _ subcariers 40 subcarriers in the preamble are the
known Pseudo Noise (PN) sequence used for channel estimation, while these
42
subcarriers in OFDM symbols are used for data transmission. The PN sequence only
consists of 1 in even subcarriers and 0 in odd subcarriers.
(3.6)
where C (k ) are the complex data symbols within the preamble which are known to
the receiver. The Least-Square (LS) estimate or Minimum Mean-Square Error
(MMSE) estimate of the channel frequency can be obtained.
43
Y (2k )
for 0 k N/2-1
C (2k )
(3.7)
(3.8)
1
* eye( FFT _ size))1 H LS
SNR
44
(3.9)
SNR estimation
In this section, SNR estimation in OFDM systems is simulated with the assumption
that time and frequency synchronisations are ideal. The structure of OFDM frames
and OFDM symbols has been shown earlier in Figure 3-3. The OFDM system model
is used for SNR estimation is depicted in Figure 3-6.
45
k is presented by
R j (k ) C j (k ) H j ( k ) W j ( k )
(3.10)
The instantaneous SNR within interval J and the set of subcarriers K is given by
| C (k ) H (k ) |
| W (k ) |
jJ kK
jJ kK
| C (k ) H (k ) |
| R (k ) C (k ) H (k ) |
2
jJ kK
jJ kK
(3.11)
If at the receiver, both the transmitted symbols C j (k ) and the channel frequency
responses H j (k ) are known, the instantaneous SNR can be estimated by the
equation (3.11). During the preamble interval C j (k ) is known. Therefore, in the
preamble fields estimated SNR can be compute as follows
| C (k ) H
jJ kK
(k ) |2
| R j (k ) C j (k ) H j (k ) |2
(3.12)
jJ kK
H j (k )
R j (k )
(3.13)
C j (k )
From (3.12) and (3.13), it is clear that the simple LS channel estimate cannot be
applied for the blind SNR estimation since it leads the estimated SNR to infinity
(3.14)
W (k )
W (k )
jJ kQ
jJ kK
(3.15)
If the noise is white noise such as AWGN, the expected value of NNR approaches a
constant value
|| Q ||
|| K ||
(3.16)
where ||(.)|| is the number of subcarriers in the corresponding set. From (3.12) and
(3.15), the estimated SNR can be derived as below [2]
| R (k ) |
| R (q) |
jJ kK
jJ qQ
47
(3.17)
Figure 3-8 presents the detailed block diagram of an OFDM system with both
channel estimation (cf. Section 3.2) and SNR estimation (cf. Section 3.3), which is
be used to simulate an OFDM system similar to the one implemented in hardware.
The frame and symbol structures used in this system have been mentioned in Section
3.2. The performance of this imitative system model will be used for comparison
with the performance of the realistic OFDM system. To ensure a fair comparison
between the simulated performance and the realistic performance, we use the channel
coefficient in the frequency domain collected from the experiments to estimate the
number of channel multipaths and the channel coefficients, and then apply these
channel state information (i.e. number of multipaths and channel coefficients) to
simulate the imitative system.
48
Figure 3-8 OFDM block diagram with estimated channel state information
In our experiments, channel coefficients will be estimated in the frequency domain
and saved to a file. These channel coefficients are then converted to the
corresponding channel impulse responses in the time domain using the IFFT
operation. A threshold 10 dB is applied to the channel impulse response in the time
domain to remove noise effects. Channel impulse responses which have the power
lower than 10 dB compared to the maximum of all channel impulses are set to zeros.
Therefore, the average number of non-zero channel coefficients in the time domain
will be the average number of multipaths.
3.5
Chapter summary
In this chapter, we have discussed the channel and SNR estimation techniques for
OFDM systems, which are similar to those techniques applied to the OFDM system
in our hardware-based experiments performances of the channel and SNR estimation
techniques have been evaluated by simulations in MATLAB. This chapter also
provides the OFDM block diagram with our estimated channel state information
approach. This imitative OFDM system will be simulated in MATLAB and its error
performance will be used as a benchmark to compare with the error performance of
the realistic OFDM system implemented in hardware.
49
implementations, but they also have some boundaries. The computational power
available limits the size of FFT/IFFT that can be computed in a limited time or some
other operations that require a lot of resources in a short time and the bandwidth that
can be increase total number of computation.
The USRP2 devices are equipped with a WBX daughterboard working in the
frequency range from 50MHz to 2.2GHz. The connection between the desktop
computer and the USRP2 is made by a Gigabit Ethernet cable. The connection
between the laptop computer and USRP2 is made by a Gigabit Switch because the
Ethernet card of the laptop computer does not support Gigabit Ethernet connection.
As a matter of fact, the Gigabit Ethernet is also not fully used.
4.2
In this section the different OFDM modules in GNU Radio will be detailed.
Afterward, the setup of the transceiver and the process of modulation and
demodulation implemented in GNU Radio will be presented.
GNU Radio platform provides a quantity of software modules dedicated to build the
OFDM modulation and demodulation. An OFDM application example has been
offered in the GNU Radios example directory which includes the benchmark_tx.py,
benchmark_rx.py and optional benchmark_add_channel.py files. Most existing GNU
Radio-based implementations of OFDM systems have been developed based on this
application example. This example is a simple simulated OFDM system with both
transmitter and receiver being completely created in software. The signals will be
transmitted through realistic environments via USRP devices. The OFDM system
also can be run completely in software. In this case, the whole transmission chain
including the channel is simulated in optional file benchmark_add_channel.py. This
example has been used as the basic source code for the implemented OFDM
communication system in this project.
In the benchmark_tx.py and benchmark_rx.py files, the source code is separated in
many files that are hierarchically sorted in different abstraction levels. The topmost
levels set the most parameters such as the total amount of data to be sent, the size of
packets, digital modulation, transmitter gain, FFT size, number of occupied tones and
number of cyclic prefix in one OFDM symbol. However, only amount of data to be
51
sent and the size of the packets are used at the upmost abstraction level, while as in
the hierarchy more specific parameters are sent to lower abstraction levels and
processed later. Figure 4-1 shows the most important blocks and the connections in
the hierarchy that will be explained in this section. The coloured boxes represent
source code files. The ones painted light blue are written in Python and the ones
painted dark blue are written in C++. The white boxes are instances of the modules
that are used in their corresponding file.
benchmark_rx.py
and
benchmark_add_channel.py.
The
acquisition of the information to be sent happens directly within the python code of
52
benchmark_tx.py. Test data can be created by command lines or from file. The data
fill the packets that will be transmitted through the system. This operation does not
require a lot of computational power, thus a dedicated C++ module is not necessary.
The creation of the test data is made in python and inserted in the module chain
through a send function send_pkt().
The channel in our experiments used is the air, since the signal is going to be sent
from and received by the USRP antennas. USRPs are placed in a laboratory room,
thus the channel would have multipath with a very short time delay. Additionally, the
USRPs are stationary, thus the Doppler effect does not exist. The knowledge of the
channel and some notions of the values of its parameters are very useful for setting
the parameters of the realistic system and simulated system. In the original version of
benchmark_add_channel.py there is a module called 'channel' that simulates a
channel with some parameters such as SNR, frequency deviation and phase
deviation. However, it did not simulate multipath channel. The multipath effect can
be simulated simply by FIR-filter where the complex filter coefficients can be
estimated from practical environment or just taken from a channel model such as
Rician and Rayleigh channel model. The signal from an input port is convey to the
corresponding GNU Radio block gr.fir_fillter_ccc.
These parameters, which can be configured in the topmost level of the file hierarchy
are related to different modules existing in python files benchmark_tx.py and
benchmark_rx.py. For example, packet size parameter is related formation of the data
packets module; maximum sample rate is related to the throttle and uhd_transmitter
modules. A part from configuration at topmost level, total number of Megabytes
transmitted parameter is set. This parameter is a global execution of the programme
parameter and not directly dedicated to any single module. The rest of the
configurable parameters of the system are defined in deeper levels of the hierarchy.
At the moment of the execution of the programme (by running the benchmark_tx.py
file ,then the benchmark_add_channel.py and finally benchmark_rx.py file if the
system runs completely in software, or by running benchmark_tx.py and
benchmark_rx.py at the same time if the system runs in realistic environment through
the USRP hardware), the other parameters that belong to other modules will also be
set at the topmost level, and they will be sent through the hierarchy until they reach
53
their target module. This makes the execution much simpler, as all the configurable
parameters can be set at the same time and they will find their target destination
automatically.
Below the topmost level: The next level in the hierarchy is also consists entirely of
python files. In this level, the two relevant files are transmit_path.py and
receive_path.py. The transmit_path.py file simply defines an OFDM modulator and
provides two new parameters. One parameter is the number of messages that the
modulator should buffer. The other is called 'padding for USRP', which makes sure
that the data that is sent to the USRP is multiple of 128 samples in order to the USRP
process the data correctly. The receive_path.py file is very similar to
transmit_path.py. It defines the OFDM demodulator and the module called 'probe'
that is used for detecting if there is a on- going transmission.
Lowest level: The lowest level in the hierarchy is entirely in the python file ofdm.py.
In this level, an abstraction of OFDM modulation and OFDM demodulation are built
based on the instances of GNU Radio's modules which are written in C++. The
modulator and demodulator in this level will be explained in the next two
subsections.
4.3
The OFDM modulator is built in the python file ofdm.py together with the OFDM
demodulator.
connections as shown in Figure 4-1. In definition of the modulator in the python file,
OFDM modulator has no input port and one output port. This is because the
modulator includes a send function send_pkt. The function will take a payload
parameter that is information needs to be sent and send it to the first module
pkt_input of its module chain. The send_pkt function uses a common method to
insert data in the module chain. In this case the module chain will be the one in the
modulator itself. The send_pkt function receives the payload data that is created at
topmost level. In the sent_pkt function, this payload data is converted into a data
packet by calling a function named make_packet from the Python module
ofdm_packet_utils. The make_packet function adds the Cyclic Redundancy Check
(CRC) and the header into the payload data that will be used at the receiver to verify
the validity of the received frame. The send_pkt function then calls the insert_tail
54
function, which belongs to the message queue of pkt_input module. The insert_tail
function puts the transmitted data, including CRC and the header, at the end of this
queue of messages, and the module itself will access to this data automatically. The
access method suggests that in the system there are some buffers, which play a
critical role in certain parts of the development of the prototype. The first module in
the OFDM modulator is pkt_input module. It is the first C++ module that appears in
the system and it is defined in the C++ file gr_ofdm_mapper_bcv.cc. This file is
dedicated to OFDM modulations, and it takes a stream of bytes and maps it to a
vector of complex constellation points suitable for the IFFT block. The pkt_input
module has two different outputs. One output is the actual data, which output in a
vector of the IFFT size, and the other output is a vector of characters, which contains
one character for each output OFDM symbol. This character would be '1' if the
OFDM symbol is the first symbol of the frame, and '0' otherwise. The second output
indicates the preambles module the start of preamble, thereby the receiver knows
where the beginning of each frames is.
The next module in ofdm.py is the preamble written in the C++ file
gr_ofdm_insert_preambles.cc. This module adds one preamble to each OFDM frame
to be sent. The preamble is a sequence of known symbols which are randomly
created 1s and are stored in the file ofdm.py. Both of the inputs of this module are
fed by the outputs of the pkt_input module. The first input port contains OFDM
symbols from the first output of the pkt_input module. The second input receives the
characters from the second output of the pkt_input module that marks the beginning
of frames. In this case, the OFDM data symbols are hold in a buffer; it puts out a
preamble and then the buffered data symbols. This preamble module has two
outputs. The first output is a vector of complex symbols having the length of the FFT
size and including the preamble symbols and the payload symbols. The second
output is stream of characters. This stream indicates whether the corresponding
symbol on the first output is the first symbol of the packet (the first symbol of
preamble). The character is '1' if the corresponding symbol is the first symbol and is
'0' if otherwise.
Following the preamble module is the inverse Fourier transformation carried out by
the IFFT written in the C++ file gr_fft_vcc.cc. This module takes a vector of complex
55
values from the output of the preamble module and computes the IFFT. This module
can also be used for the computation of FFT, simply by editing its parameters. It also
allows us to set other parameters such as the FFT/IFFT window or if the FFT should
be shifted.
After the Fourier transformation, cyclic prefix must be added to the OFDM signal in
order to against multipath effects. This is done by the next module cp_adder in the
modulator. This module is defined in C++ in the file gr_ofdm_cyclic_prefixer.cc. It
takes the OFDM symbol from its input port, copies a number of last symbols (the
number of symbols to copy is specified by the cp_size parameter) and then inserts
these symbols at the beginning of the OFDM symbol. Therefore, the symbol size at
its output is the sum of the size of the input symbol and the size of the cyclic prefix.
Finally, the OFDM symbols are amplified by a multiplication with a constant value.
This is done by the GNU block gr_multiply_const_cc and it is defined in the python
file gnu_core_genneral.py. The OFDM signal is now ready to be sent to the wireless
channel in the topmost layer of the application, which will be the air in this case,
through the USRP2.
4.4
The OFDM demodulator is made of many C++ and Python files. Each files plays a
specific role in the complete demodulation process. This section explains how all the
files are joined and what their jobs are.
Similar to the OFDM modulator, the OFDM demodulator is also defined in the file
ofdm.py. There are both input and output in the demodulator. Its input, in most cases,
is fed by the channel output. Its output is the demodulated signal. In addition, the
commonly used output mechanism is the parallel mechanism to the send_pkt
function that was explained in Section 4.3. The output data is sent to a handler via
the callback function. There is a watcher function, which is defined in
queue_watcher_thread class. It runs in a separate thread to monitor the queue of
demodulated data packets. When a new packet enters this queue, the function takes
the packet and checks the correctness of the information in the packet by checking
the CRC code. Afterwards the previously mentioned callback function is called with
56
the payload data as a parameter in the ofdm.py file and is executed in the topmost
abstraction level of the hierarchy.
As opposed to the OFDM modulator, the demodulator has one extra layer of Python
files. The demodulator structure includes two main parts as shown in Figure 4-1,
corresponding to two blocks ofdm_receiver and ofdm_frame_sink which are defined
in the python file ofdm.py. The first block ofdm_receiver performs the
synchronization and equalization of the CRC signal, while the second block
ofdm_frame_sink, is a state machine that demaps the symbols into bits, verifies the
validity of the synchronized frames and sends the verified frames to a topmost layer
by adding them to the queue of received data packets.
The ofdm_receiver module is defined in the Python file ofdm_receiver.py that
includes a number of modules, such as low pass channel filter, time and frequency
synchronisation, FFT and frame acquisition. Figure 4-2 shows the block diagram of
the ofdm_receiver module. The dashed arrows in the figure correspond to the signal
follows, while the solid arrows correspond to other types of data that are not the
actual OFDM signal, such as frequency offset and synchronisation signals.
ofdm_sync_pn.py. This synchronization block finds the right frequency offset and the
start of the received frames. The frequency offset is fed to the frequency modulator
to generate a signal proportional to the frequency error of the synchronisation block.
The signal from the channel filter block is mixed with the signal coming from the
frequency modulator to rotate the signal from the filter back. The synchronized
signal in the form of vectors of the FFT size is fed to the FFT module that transfers
the received signal into the frequency domain. The output signal includes data
subcarriers. Each subcarrier contains information in its phase according to the digital
modulation applied to that subcarrier. In our experiments, all data subcarriers are
modulated with either BPSK or QPSK modulation. The last module of the
ofdm_receiver is the frame acquisition module which takes care of finding the
beginning of frames and equalizing each subcarrier. This module is defined in the
C++ file digital_ofdm_frame_acquisition.cc.
The second module of the OFDM demodulator is the frame_sink module which is a
state machine defined in C++. This state machine has three states. The first state is
"sync search", where the algorithm looks for the flag in the second input of frame
sink module indicating the start of the frame. It corresponds to receiving the
preamble of the frame. When the sync search state is found, the state machine will
move to the have sync state. The frame_sink module will let the preamble go
through. Afterwards the algorithm will demap the symbols and check the bytes
corresponding to the header of the data. The header is built in a way that the first half
is exactly the same as the last half, thus facilitating the validation of the header. If the
header is correct, the state machine will move to the next state, namely have
header state, where the algorithm will demap the rest of the frame and insert the
resulting data bits in the output queue. As explained previously, that queue is
monitored by a thread which will take the data, validate it and send the results to the
upper layers of the system. Throughout the duration of the have sync and have
header states, the algorithm will constantly look for the beginning of frame flags in
its input port. In these state, the frame flag should be zeros, if it finds frame flag, it is
an error. Therefore, it will reset the state machine to the sync search state. Figure
4-3 shows the behaviour of the state machine in the frame_sink module.
58
SYNC SEARCH
looking for
frame start
Flag found
enqueue
frame
frame start
flag found
frame start
flag found
OK
HAVE SYNC
HAVE HEADER
demap frame
header OK
4.5
Synchronisation
GNU Radio implements different synchronization methods for OFDM systems. The
first method is the Maximum Likelihood (ML) synchronization. The second method
is based on the correlation of PN sequences. The last method is called the fixed
synchronization. It is only used for simulations where all channel state information is
known at the receiver. Therefore, only ML and PN synchronisation methods are the
good choices to use in realistic propagation environments. In this project, for
simplicity, the PN synchronisation is chosen for our experiments.
4.5.1
In this thesis, the PN synchronization method has been chosen for the prototype. The
synchronization module takes place in the C++ file ofdm_sync_pn.cc. The method
was first proposed in [37] by Schmidl and Cox. It is easily seen in Figure 4-4 that the
method includes two main parts. The first part is time synchronisation to find the
start of each frame. It can be simply and precisely performed by observing the signal
59
energy, because the OFDM frames are differentiate by null symbols where the signal
is zero.
To find null symbols, a FIR-filter with its taps to be set to one is applied to calculate
a moving sum of the length Tnull =32. The output of this FIR filter could be expressed
as follows
y ( n)
Tnull 1
x(n k )
(4.1)
k 0
The signal is then multiply with 1 and the result signal is fed to a peak detector
from GNU Radio gr.peak_detector_fb. Whenever a preset threshold in the peak
detector is exceeded, it begins to search for a maximum until the signal power is
lower than the threshold again.
Delay
first half
Signal Power
Magnitude
Squared
Input
Moving
average filter
Detects edge
Regenerate for
each symbol
Moving average
filter
(Matched Filter)
Delay of FFT
Size/2
-1
Peak
Detector
Regenerate
Peaks
conjugate
Moving
average filter
S/H
Magnitude
Squared
Angle
Angle out
Sampler
Correlate to
preamble
Sampled
Signals out
Gate symbol
60
small subcarrier spacing and at low SNR. Schmidl and Cox [3] shown that the fine
frequency offset can be estimated as
f
where P(d )
P(d *)
T
(4.2)
N /2 1
r (k d )r (k d N / 2)
k 0
P(d )
with
R(d )
N /2 1
| r (d k N / 2)
|.
k 0
After the frequency offset is estimated, the signal can be corrected by multiplying the
incoming signal with exp( j t f / T ) .
4.5.2
The carrier frequency offset is frequency error in multiples of the subcarrier spacing.
At this point of the coarse carrier frequency synchronisation, the fine frequency
synchronisation has already been performed. Therefore, after the coarse carrier
frequency synchronisation module the total frequency offset should be close to zero.
The coarse carrier frequency synchronisation must be completed with high accuracy.
Otherwise, the coarse carrier frequency offset could move the subcarriers to the
wrong FFT bins. Thus, the received data subcarriers could be interpreted in the
wrong received OFDM symbols. Even if the wrong coarse carrier frequency offset
makes the subcarriers shifts one subcarrier spacing, it could lead to a complete loss
of information. The coarse carrier frequency synchronisation is performed easily
after the FFT by observing at the energy of the FFT signals. The coarse carrier
frequency offset estimation is therefore
f c arg max
n
| X [i n] |2 n [0, N K ]
(4.3)
0i K ,i K /2
where X [i] is the i-th element in the FFT vector, K is the number of occupied tones
( subcarriers used to transmit real data) and N is the FFT length.
61
The coarse carrier frequency synchronisation module is implemented in the C++ file
digital_ofdm_frame_acquisition.cc. In this file, the unused subcarriers are removed
and its output is a vector of K (the number of occupied tones) symbols.
4.6
In the previous sections, the OFDM modules in GNU Radio, including OFDM
modulation and OFDM demodulation blocks, have been presented in detail. This
chapter show how to modify GNU Radio and what our modifications have been done
in the GNU Radio platform to experiment the OFDM transmission in different
realistic propagation environments.
4.6.1
configure.ac,
Makefile.am,
Makefile.common,
Makefile.swig,
The apps/ sub-direction includes complete applications (both for GRC and
standalone executables) which are installed in the system alongside with the
blocks.
The cmake/ folder consists of instruction files for auto tools and CMake to
find the GNU Radio libraries.
lib/ sub-direction includes source files (.cc and .h) for the developed blocks.
Any source code written in C++ (or C, or any language that is not Python) is
placed into lib/. C++ files usually have header files which are put
into include/ if they are to be exported, or in lib/ if they are only relevant
62
during the compiling time, but are not installed after that time, such
as _impl.h files.
The swig/ folder includes the files for the SWIG tool to build python
interfaces for C++ classes.
Python files will be put into python/. This folder consists of unit tests and
parts of the Python module which are used when installing the module.
A certain block requires the XML descriptions of the block must be added in
the grc/ subdirectory to be available in the GRC.
4.6.2
63
digital_ofdm_frame_acquisition_sptr
digital_make_ofdm_frame_acquisition (
unsigned int occupied_carriers,
unsigned int fft_length,
unsigned int cplen,
const std::vector<gr_complex> &known_symbol,
unsigned int max_fft_shift_len)
{
return gnuradio::get_initial_sptr(new
digital_ofdm_frame_acquisition (occupied_carriers,
fft_length, cplen,
known_symbol, max_fft_shift_len));
}
The third file is swig interface file which is used for SWIG tool to compile
from C++ code to Python code. Because the header file is used to describe
64
classes, functions and variables, we can simply include the headers in the
main swig interface file.
From the block coding structure described above, block can be modified by altering
the declaration in its header file and functions in the source file in C++.
4.6.3
To apply the change in a block, we need to rebuild and reinstall the block. This can
easily be done by the auto tool CMake.
# We're currently in the module's top directory
$ cd build/
$ cmake ../
dir up
$ make
# And start building (should work after the
previous section)
$ make test
$ make install
In reality, when we create or change a block in GNU Radio system, we will certainly
suffer some errors sooner or later. Therefore, a debugging tool is needed. The tool
may help us to observe the data flowing out from the block during the run-time in
order to find out the reason of the error. This is usually the case if a flow graph runs
without crashing, but the final result is incorrect. The following options are easily
implemented and are useful for GNU Radio users of any skill level.
4.6.4
Channel estimation and equalisation are important before OFDM symbols can be
demapped. These processes remove the distortion caused by frequency selective
fading and time-varying fading. As mentioned in Section 3.2, the channel estimation
method chosen in this project is the LS estimates for simplicity.
The channel estimation is implemented in the gr-digital module and C++ file
digital_ofdm_frame_acquisition.cc. Due to the fact that coarse carrier frequency
offset is also in this file, the channel estimation need to count it on the calculators.
Therefore, the channel estimates in the frequency domain are described as follows
H LS (k )
(4.4)
where
2 coarse _ freq
cp _ length
symbol _ count
fft _ length
current OFDM symbol in the supper frame, R(k ) is received symbol at k-th
subcarrier and C(k) is preamble symbol at k-th subcarrier.
void
digital_ofdm_frame_acquisition::calculate_equalizer(const
gr_complex *symbol, int zeros_on_left)
{
unsigned int i=0;
// Set first tap of equalizer
d_hestimate[0] =
(coarse_freq_comp(d_coarse_freq,1)*symbol[zeros_on_left+d_coar
se_freq]) / d_known_symbol[0];
// set every even tap based on known symbol
// linearly interpolate between set carriers to set zerofilled carriers
for(i = 2; i < d_occupied_carriers; i+=2) {
d_hestimate[i] =
(coarse_freq_comp(d_coarse_freq,1)*(symbol[i+zeros_on_left+d_c
oarse_freq])) / d_known_symbol[i];
d_hestimate[i-1] = (d_hestimate[i] + d_hestimate[i-2]) /
gr_complex(2.0, 0.0);
}
// with even number of carriers; last equalizer tap is wrong
if(!(d_occupied_carriers & 1)) {
d_hestimate[d_occupied_carriers-1]=
d_hestimate[d_occupied_carriers-2];
}
}
67
digital_ofdm_frame_acquisition::digital_ofdm_frame_acquisition
(
unsigned occupied_carriers,
unsigned int fft_length,
unsigned int cplen,
const std::vector<gr_complex> &known_symbol,
unsigned int max_fft_shift_len)
: gr_block ("ofdm_frame_acquisition",
gr_make_io_signature2 (2, 2,
sizeof(gr_complex)*fft_length, sizeof(char)*fft_length),
gr_make_io_signature2 (3, 3,
sizeof(gr_complex)*occupied_carriers, sizeof(char),
sizeof(gr_complex)*occupied_carriers)),
}
4.6.5
The blind SNR estimation algorithm presented in Section 3.3 is implemented in this
project. This algorithm estimates SNR in the frequency domain, i.e. the SNR
estimation is done after FFT. Therefore, it can also be implemented in the
digital_ofdm_frame_acquisition block. However, the OFDM system is running in
real time, thus only one OFDM symbol is allowed to pass through the
digital_ofdm_frame_acquisition block at a time for processing. Therefore, only
instantaneous SNR could be estimated in the block. The average SNR is estimated at
the topmost abstract level.
Because the frequency is shifted due to frequency offset, the number of zero
subcarriers is not stable. Therefore, the original blind SNR estimation algorithm
cannot be applied on the whole super frame or the whole one symbol in the real
68
testbed. Instead, the blind SNR estimation algorithm must be modified to estimate
SNR based only on the preamble with only occupied tones.
The structures of frames and preambles are shown in Figure 3.3. An OFDM
preamble symbol includes 12 zeros which are located at each beginning of the
OFDM symbol, the 40 symbol PN sequence, which only consists of known symbols
1 in the even subcarriers and 0 in the odd subcarriers, and finally 12 zeros which
are located at the end of OFDM symbol. Therefore, the received preamble signal in
the i-th super frame can be expressed as below
Ri (k d ) Pr(k ) Hi (k ) e2 d n _ cp / n _ fft Ni (k ) k=1,2,...,K
(4.5)
SNR
P X i (k ) H i (k )
N
N i (k )
(4.6)
Pr (k ) H (k ) k 1,3,..., K 1
N (k )
N (k ) N (k ) P (k )
SNR
(4.7)
and
k 1,3,.., K 1
k 2,4,.., K
k 2,4,..., K
(4.8)
SNR
P(Y
P(Y
preamble
(kodd d ))
preamble ( keven d ))
(4.9)
69
/*!
* \brief Return an estimate of the SNR of the channel
*/
float snr() { return d_snr_est; }
float power() { return d_power; }
float noise_power() { return d_noise_power; }
The signal power in all odd subcarrier d_power and noise power in all even
subcarrier d_noise_power are calculated as follows
float Tu_so=0;
float Mau_so =0;
for(i = 2; i < d_occupied_carriers; i+=2) {
Tu_so = abs(symbol[i+zeros_on_left +
d_coarse_freq])*abs(symbol[i+zeros_on_left+d_coarse_freq]) +
Tu_so;
Mau_so = abs(symbol[i+zeros_on_left + d_coarse_freq
+1])*abs(symbol[i+zeros_on_left+d_coarse_freq+1]) + Mau_so;
}
d_power = Tu_so;
d_noise_power = Mau_so;
The average SNR is estimated in the topmost abstraction level in the Python file
benchmark_rx.py. Total transmitted power of the preamble signals in the odd
subcarriers and total noise power (i.e. total power of preamble signals received in all
even subcarriers) are declared as a global variable to make it possible to change its
value after each frame is consumed. They are declared in benchmark_rx.py as below
global power,noise_power
power =0
noise_power=0
Once each OFDM frame is consumed, the signal power and noise power are updated
as below
noise_power_current =
tb.rxpath.ofdm_rx.ofdm_recv.ofdm_frame_acq.noise_power()
power_current =
tb.rxpath.ofdm_rx.ofdm_recv.ofdm_frame_acq.power()
power = power + power_current
noise_power = noise_power + noise_power_current
snr_est = 10*math.log10(power*(noise_power**(-1))-1)
,the snr_est variable is the instantaneous average SNR estimated from the start of
transmission until the considered time.
70
4.7
Chapter summary
This chapter first analyses clearly the OFDM system example given in GNU Radio,
especially the OFDM modulation, OFDM demodulation, and OFDM synchronisation
blocks. To verify an OFDM system performance in practical environment, the
modifications of the channel estimation and SNR estimation blocks, has been
presented. In the next chapter, the performances of our implemented OFDM system
in different realistic propagation environments, including laboratory rooms and
corridors, with different transmitter-receiver distances and/or with different
modulation schemes will be presented. These performances will be compared to the
simulated performance of the corresponding OFDM systems to evaluate the
differences between the theoretical performances and the realistic ones.
71
5 EXPERIMENTS
In the previous chapters, the both implemented OFDM and simulated OFDM
systems have been presented. This chapter investigates how well our testbed
performs compared to the theoretical Bit Error Rate (BER) error performance. We
will refer the performance of our implemented OFDM system in the testbed to as
implemented performance, while the performance of OFDM systems simulated in
MATLAB to as simulated performance. The chapter first details the testbed setup,
including propagation environment properties, hardware devices and prototype used
in the testbed. Implemented OFDM system performances in different realistic
propagation channels and with different modulation schemes is then presented.
Finally, comparisons between the simulated OFDM performances and the
implemented OFDM performances are discussed.
5.1
Test-bed settings
The overall system design is illustrated in Figure 5-1. The transmitter includes one
Personal Computer (PC) running on the Ubuntu 10.4 operating system, which has
been installed via VMware Player; one Gigabit Ethernet Switch to synchronise the
100Mbit/s port on the PC and the Gigabit port on USRP2; a USRP2 module with one
WBX daughter board, which has been described in Chapter 2; and one omnidirectional (whip) antenna. Receiver comprises of a PC running on the Ubuntu 10.4
operating system, a USRP2 module with one WBX daughter board, and one whip
antennal. The Gigabit Ethernet Switch is used in the transmitter because the PC in
the transmitter system does not support Gigabit transmission. Therefore, the Gigabit
Ethernet Switch is required to communicate with the USRP2 module, which supports
Gigabit Ethernet transmission.
Similarly to any other hardware connected via an Ethernet port, each of the USRP2
devices has an IP address which is by default preconfigured to 192.168.10.2/24. The
GNU Radio script running on the PCs will use this IP address to identify the
connected USRP2 device. Preferably, the Gigabit Ethernet interface of the PC should
have some IP address in the same subnet, i.e. 192.168.10.x/24. This IP address being
in the same subnet as the USRP2 device avoids the necessity to have custom defined
entries in the routing table of the PC. In this project, the IP addresses of the PC in
both the transmitter and receiver are set to 192.168.10.1/24.
72
73
5.2
5.2.1
74
The performance of the OFDM system with a QPSK constellation is worse than that
with a BPSK constellation. The BER performance can only be obtained for SNR
higher than 13 dB. The error floor starts to be seen at SNR of 22 dB.
Figure 5-3 also shows that the performance of OFDM systems with BPSK in the
same environment is better than that with QPSK by approximate 3-4 dB. This is
consistent
with
the
simulation
in
Figure 5-4 where the performance of OFDM systems with BPSK is better than that
with QPSK by 3.5 dB. The OFDM systems with BPSK and QPSK constellations are
simulated in MATLAB with the same channel impulse respond which collected from
analysing the channel coefficients in the frequency domain.
75
Figure 5-3 Comparison OFDM performance with BPSK and QPSK constellations in
laboratory environment without obstruction
76
Figure 5-4 Comparison performance of OFDM system with BPSK and QPSK in
simulation
5.2.2
In this section, the implemented OFDM performances are illustrated with BPSK and
QPSK constellations in our laboratory environment with obstruction between
transmit and receive antennas. The laboratory environment is room 226 building 6
University of Wollongong and portrayed in Figure 5-5.
The location and distance of two antennas are the same as those in the previous
experiments mentioned in Subsection 5.2.1. The only difference is that there is one
metal frame used as obstruction between two antennas in order not to allow wireless
signal to pass directly from the transmit antenna to the receive antenna. The
obstruction reduces the received signal power at the receiver. Therefore, to reach the
same SNR values at the receiver, the transmitted power at the transmitter need to be
increased. This can be done by increasing the amplitude of transmitted signals.
The performance of OFDM systems with BPSK and QPSK modulations in our
laboratory environment with the obstruction between two antennas is shown in
Figure 5-6 .
Figure 5-6 Performance of OFDM systems with BPSK and QPSK constellations in
the laboratory environment with obstruction between two antennas
Similar to the case of no obstruction, the OFDM system with BPSK performs
relatively well in the laboratory environment even with the obstruction between the
two antennas. The BER performance reaches below 103 at SNR of 19 dB of SNR.
The system BER performance can be obtained with our hardware for the SNR being
78
higher than 7 dB, and reaches the BER floor at SNR of 23 dB due to the saturation
problem at the receiver.
The performance of OFDM systems with a QPSK constellation is worse than that
with BPSK. In this scenario, the BER performance can only be obtained for SNR
being higher than 13 dB. The error floor occurs at SNR of 23 dB.
In addition, the figure Figure 5-6 shows that the OFDM system with BPSK performs
better than that with QPSK by about 3-4 dB in the same propagation environment.
This is relatively consistent with the simulation where the performance gain is to be
approximately 3.5 dB. The simulation of OFDM systems with BPSK and QPSK is
given in Figure 5-7.
Figure 5-7 Performance of OFDM system with BPSK versus QPSK in simulation
Comparing Figure 5-3 with Figure 5-6, one can easily realise that the obstruction
cause the BER performance degradation by approximate 0.5-2 dB in both BPSK and
QPSK modulations. For instance, in the case of BPSK, SNR should be 16 dB in
order to achieve BER = 10-2 when no obstruction is present, and should be 18 dB
79
80
for this experiment. The performance of the implemented OFDM system in the
corridor environment without obstruction is shown in Figure 5-9.
82
with the same setup. The BER performance is only obtained within 12 dB of SNR
and get error floor within 24 dB of SNR.
83
Figure 5-12 Performances of OFDM systems with BPSK and QPSK constellations in
corridor environment with obstruction
5.2.5
The simulated performance of OFDM systems has been briefly presented in Chapter
3. This section explains how the simulated performance of OFDM systems is
86
Reverse these channel coefficients from the frequency domain into the time
domain
using
IFFT.
Denote
this
channel
impulse
response
to
be
h [h1 h 2 ... h 64 ];
Calculate
and
denote
value;
Repeat all above steps for next set of channel coefficients;
The average of L is the estimated average number paths in channel.
87
5.3.1
To fairly compare the performance of the simulated OFDM system and that of the
experimental OFDM system, parameters of the simulated OFDM system are chosen
to be the same as those in the implemented OFDM system (i.e. with BPSK
constellation, FFT size of 64, 40 occupied tones, cyclic prefix length of 16).
After analysing the channel coefficient file, the estimated average number of paths in
the realistic channel, i.e. in our laboratory room without obstruction, is found to be
2.78. In addition, since there is no obstruction between antennas, the wireless
channel would be a Rician one. Therefore, based on our power analysis of the
channel coefficients collected via our experiments, we could approximate the
experimental wireless channel to be a Rician channel with three paths with the
channel impulse response h [0.863 0.432 0.259] .
88
The performances of the simulated OFDM system and the implemented OFDM
system are illustrated in Figure 5-16. It is important to recall that, due to the
limitation of our hardware, the BER performance of the experimental OFDM system
can only be obtained for SNR higher than 8 dB, and that the BER performance of the
experimental OFDM system starts to experience the error floor at SNR = 23 dB
because the receiver is saturated. Meanwhile, for the simulated OFDM system, we
can plot the BER curve for a wider SNR range. For these reasons, we only focus our
analysis on the SNR range 8-23 dB.
The Figure 5-12 shows that the performance of the implemented OFDM system with
SNR higher than 17dB is the same as the performance of the simulated OFDM
system. It is worse than the simulated performance at SNR lower than 17 dB. This is
explained by the fact that the synchronisation method and channel estimation method
are affected high noise at low SNR. It is also due to the fact that no external
frequency reference, such as GPS (Global Positioning System) signal, is used for the
synchronisation process due to the limited project budget.
5.3.2
In this scenario, after the channel coefficient file is analysed, the estimated average
number of paths in the realistic propagation channel (laboratory room with
obstruction) is found to be approximate 2.34.
between the transmitter and receiver antennas, we suggest that the experiment
channel in our experiment would be a Rayleigh channel with two to three paths. For
the illustration purpose, we simulate the OFDM system with a three-path .Raleigh
fading channel with channel impulse response h [0.8 0.58 0.089] .
Figure 5-17 depicts the performances of the simulated OFDM system and the
implemented OFDM system. Similarly to the performances of OFDM systems in the
laboratory environment without obstruction, the performance of the implemented
OFDM system relatively matches the simulated performance of simulated OFDM
system for SNRs higher than 17dB and worse than the simulated performance at
lower SNRs. This inferior behaviour is because of two reasons, namely the modest
89
90
5.3.3
91
5.3.4
Figure 5-19 Simulated OFDM vs. implemented OFDM in corridor environment with
obstruction
Finally, we discuss the corridor propagation environment with an obstruction
between the transmitter and receiver antennas. Our analysis based on the channel
coefficient file shows that the estimated average number of paths in this case is 2.41,
which is slightly higher than that in the case of the laboratory room with obstruction
(2.34). Based on our power analysis of the multipath collected via our experiments,
we suggest that the experiment channel in our experiment is a Rayleigh channel
having three paths with the channel impulse response in time domain
h [0.83 0.52 0.18] .
Chapter summary
93
6 CONCLUSIONS
The OFDM technique is widely used in reality, such as in WiFi, WiMax, Long Term
Evolution (LTE) systems. In order to have a better understanding of the OFDM
system performance, both simulations and actual hardware implementations are
required. Implementation of wireless communications using Software Defined Radio
(SDR) is one of the emerging research areas nowadays. SDR is a promising
technique for multi-type, high speed wireless applications with low requirements on
capability of hardware devices, low development cost, while facilitating development
processes. In this project, we have implemented an OFDM system based on the GNU
platform and USRP2 hardware to evaluate the OFDM performances in different
realistic environments and different modulation constellations. The experimental
performances are then deeply analysed in comparison with the simulated OFDM
performances.
This chapter summarises the whole thesis and highlights our contributions. This
chapter is organised as follows. Section 6.1 summarises the research contributions in
this thesis. Section 6.2 discusses the future works regarding to the topic of this thesis.
Section 6.3 provides overall conclusions for this thesis.
6.1
Research contributions
Our research activities and contributions in this thesis can be summarised as follows
A blind SNR estimation module has been developed to evaluate the BER
performance of OFDM in different realistic environments;
6.2
Recommendations
Through our development of the OFDM testbed in SDR systems using GNU Radio
software platform and USRP devices, some hands-on recommendations could be
drawn as follows
GNU Radio software platform and USRP devices are suggested to implement
SDR system because of their advantages such as great flexibility and low
cost;
When researching SDR techniques for the first time, the GNU Radio
software and USRP Hardware Driver are recommended to be installed on the
VMware software (or any similar software) for simple configurations and
modifications;
The more powerful computers with Gigabit Ethernet cards should be used to
improve the performance of the implemented communication system;
95
Power attenuators could be used to solve the early power saturation issues at
the receivers, thus the experimental SNR range could be expanded.
6.3
Future works
The successfully developed testbed opens various directions to research further the
advanced signal processing techniques for OFDM-based systems, such as MultipleInput Multiple-Output techniques, channel coding, and block spreading. It also
facilitates the evaluation of OFDM performances in various other propagation
environments, such as out-door environment and mobile wireless channels (where
the receiver moves relatively to the transmitter). Therefore, some of my possible
future works regarding to the topic of this project could be listed as follows
6.4
Conclusions
estimation processes into consideration. The newly created blocks are the blind SNR
estimation module and BER calculator. Necessary modifications and new
developments have been documented in detail in this project. Performances of the
implemented OFDM system have been evaluated in our laboratory room and in a
corridor, with and without obstructions between the transmitter and receiver, and
with different digital modulation schemes.
To compare the simulated OFDM performances in MATLAB with the implemented
OFDM performances, we have managed to create as similar propagation conditions
as well as system settings to the implemented OFDM system as possible. It means
that most algorithms used in the implemented OFDM system have been applied to
the simulated OFDM system in MATLAB. The simulated OFDM system is built
based on the analysis of the implemented OFDM system.
Overall, performances of the simulated and implemented OFDM systems are
relatively well matched in the SNR ranges which we could measure with our
hardware. This performance matching confirms the validity of our testbed and our
implemented signal processing techniques. This performance match can be seen with
both BPSK and QPSK modulations, in different realistic propagation environments,
and in both unobstructed and obstructed scenarios. The comparisons also show the
limitation of the hardware that the receiver would be saturated at high SNRs, given
that we do not use any attenuator in our experiments. The saturation levels are
variable, depending on particular propagation conditions, as shown in our project.
In conclusion, SDR techniques with GNU Radio software platform and USRP2
devices can be used to implement OFDM-based systems. More research on this
research field is required to enhance the performance of OFDM-based systems on
hardware.
97
REFERENCES
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
[21]
98
[22]
[23]
[24]
[25]
[26]
[27]
[28]
[29]
[30]
[31]
[32]
[33]
[34]
[35]
[36]
[37]
[38]
[39]
[40]
[41]
C. Jung-Chieh, "Partial transmit sequences for PAPR reduction of OFDM signals with
stochastic optimization techniques", IEEE Transactions on Consumer Electronics, vol. 56,
no. 3, pp. 1229-1234, Aug. 2010.
J. Shiann-Shiun and C. Jia-Ming, "Efficient PAPR Reduction in OFDM Systems Based on a
Companding Technique With Trapezium Distribution", IEEE Transactions on Broadcasting,
vol. 57, no. 2, pp. 291-298, June 2011.
A. Bury, J. Egle, and J. Lindner, "Diversity comparison of spreading transforms for
multicarrier spread spectrum transmission", IEEE Transactions on Communications, vol. 51,
no. 5, pp. 774-781, May 2003.
M. L. McCloud, "Optimal binary spreading for block OFDM on multipath fading channels",
Proc. Wireless Communications and Networking Conference (WCNC), pp. 965-970 Vol.2,
March 2004.
M. Jalloh and P. Das, "On the Performance of Transmit and Receive Diversity OFDM
Systems with Phase Noise and Imperfect Channel Estimation", Proc. Vehicular Technology
Conference (VTC), pp. 1-6, April 2009.
G. V. Rangaraj, Jalihal, D & Giridhar, K., "Exploiting Multipath Diversity in Multiple
Antenna OFDM Systems With Spatially Correlated Channels", IEEE Transactions on
Vehicular Technology, vol. 54, no. 4, pp. 1372-1378, July 2005.
A. V. Sarad and S. Srikanth, "Improved interference diversity in multicellular OFDMA
systems", Proc. First International Communication Systems and Networks and Workshops
(OMSNETS), pp. 1-8, Jan. 2009.
L. H. Xing, et al., "Channel Estimation for Transmitter Diversity OFDM Systems", Proc.
IEEE Conference on Industrial Electronics and Applications, pp. 1-4, May 2006.
Y. Yiwei, H. Xiaojing, and E. Dutkiewicz, "Block spread OFDMA system with space-time
coded MIMO over frequency selective fading channels", Proc. Third International
Conference on Communications and Networking in China (ChinaCom), pp. 464-468, Aug.
2008.
M. L. McCloud, "Analysis and design of short block OFDM spreading matrices for use on
multipath fading channels", IEEE Transactions on Communications vol. 53, no. 4, pp. 656665, April 2005.
M.-o. Pun, M. Morelli, and C. C. J. Kuo, Multi-Carrier Techniques For Broadband Wireless
Communications: A Signal Processing Perspectives, Imperial College Press, London, 2007.
J.-H. Wen, et al., "PN code-aided timing estimation, channel estimation and signal
compensation in OFDM systems", Digital Signal Processing, vol. 20, no. 3, pp. 860-868,
May 2010.
W. Qi, M. Simko, and M. Rupp, "Modified Symbol Timing Offset Estimation for OFDM
over Frequency Selective Channels", Proc. Vehicular Technology Conference (VTC Fall),
pp. 1-5, Sept. 2011.
J. J. van de Beek, M. Sandell, and P. O. Borjesson, "ML estimation of time and frequency
offset in OFDM systems", IEEE Transactions on Signal Processing, vol. 45, no. 7, pp. 18001805, Jul. 1997.
P. Byungjoon, et al., "A blind OFDM synchronization algorithm based on cyclic correlation",
IEEE Signal Processing Letters, vol. 11, no. 2, pp. 83-85, Nov. 2004.
T. M. Schmidl and D. C. Cox, "Robust frequency and timing synchronization for OFDM",
IEEE Transactions on Communications, vol. 45, no. 12, pp. 1613-1621, Dec. 1997.
K. Dong-Kyu, et al., "A new joint algorithm of symbol timing recovery and sampling clock
adjustment for OFDM systems", IEEE Transactions on Consumer Electronics, vol. 44, no. 3,
pp. 1142-1149, Aug. 1998.
T.-D. Chiueh, P.-Y. Tsai, and I.-W. Lai, Baseband Receiver Design for Wireless MIMOOFDM Communications, 2nd ed., John Wiley & Sons, Singapore, 2012.
M. K. Ozdemir and H. Arslan, "Channel estimation for wireless ofdm systems", IEEE
Communications Surveys & Tutorials, vol. 9, no. 2, pp. 18-48, Jul. 2007.
H. Arslan and T. Yucek, "Estimation of Frequency Selectivity for OFDM Based New
Generation Wireless Communication Systems", Proc. World Wireless Congress, San
Francisco, May 2003.
99
[42]
[43]
[44]
[45]
[46]
[47]
[48]
[49]
[50]
[51]
[52]
[53]
[54]
[55]
[56]
[57]
[58]
[59]
[60]
L. Ye, "Simplified channel estimation for OFDM systems with multiple transmit antennas",
IEEE Transactions on Wireless Communications, vol. 1, no. 1, pp. 67-75, Jan. 2002.
A. Dowler, A. Doufexi, and A. Nix, "Performance evaluation of channel estimation
techniques for a mobile fourth generation wide area OFDM system", Proc. IEEE Vehicular
Technology Conference, Vancouver, Canada, pp. 2036-2040, Sept. 2002.
I. Barhumi, G. Leus, and M. Moonen, "Optimal training design for MIMO OFDM systems in
mobile wireless channels", IEEE Transactions on Signal Processing, vol. 51, no. 6, pp. 16151624, Jun. 2003.
S. Boumard and A. Mammela, "Channel estimation versus equalization in an OFDM WLAN
system", Proc. IEEE Vehicular Technology Conference, Rhodes, Greece, pp. 653-657, May
2001.
M. Morelli and U. Mengali, "A comparison of pilot-aided channel estimation methods for
OFDM systems", IEEE Transactions on Signal Processing, vol. 49, no. 12, pp. 3065-3073,
Dec. 2001.
J. Zhang and P. Zhang, "An improved 2-dimensional pilot-symbols assisted channel
estimation in OFDM systems", Proc. IEEE Vehicular Technology Conference, pp. 15951599, April 2003.
Y. S. Cho, et al., MIMO-OFDM Wireless Communications with MATLAB, John Wiley &
Sons, 2010.
T. Haiyun, K. Y. Lau, and R. W. Brodersen, "Interpolation-based maximum likelihood
channel estimation using OFDM pilot symbols", Proc. IEEE Global Telecommunications
Conference, pp. 1860-1864, Nov. 2002.
S. Yan, W. Xiaowen, and K. J. R. Liu, "A joint channel estimation and unequal error
protection scheme for video transmission in OFDM systems", Proc. International
Conference on Image Processing, pp. I-549-I-552, Sept. 2002.
H. Chunping, S. Shenghui, and C. Dazhong, "Channel estimation for adaptive OFDM system
and effects of estimation error on system performance", Proc. International Workshop on
Mobile and Wireless Communications, NewYork, pp. 200-204, Sept. 2002.
Y. Heejung, K. Myung-Soon, and L. Sok-Kyu, "Channel estimation and equalization for high
speed mobile OFDM systems", Proc. Conference Record of the Thirty-Seventh Asilomar
Conference on Signals, Systems and Computers, Daejeon, South Korea, pp. 693-697, Nov.
2003.
F. Said and H. Aghvami, "Linear two dimensional pilot assisted channel estimation for
OFDM systems", Proc. IEE Conference on Telecommunications, London, UK, pp. 32-36,
Apr. 1998.
T. Zijian, et al., "Pilot-Assisted Time-Varying Channel Estimation for OFDM Systems",
IEEE Transactions on Signal Processing, vol. 55, no. 5, pp. 2226-2238, May 2007.
D. R. Pauluzzi and N. C. Beaulieu, "A comparison of SNR estimation techniques for the
AWGN channel", IEEE Transactions on Communications, vol. 48, no. 10, pp. 1681-1691,
Oct. 2000.
D. Athanasios and G. Kalivas, "SNR Estimation for Low Bit Rate OFDM Systems in AWGN
Channel", Proc. International Conference on Networking, International Conference on
Systems and International Conference on Mobile Communications and Learning
Technologies, pp. 198-198, Apr. 2006.
Y. Wang, et al., "A New Noise Variance Estimation Algorithm for Multiuser OFDM
Systems", Proc. IEEE International Symposium on Personal, Indoor and Mobile Radio
Communications, pp. 1-4, Sept. 2007.
A. Doukas and G. Kalivas, "A Novel SNR per Subcarrier Estimation Scheme for OFDM
Systems in Frequency Selective Channels", Proc. IEEE International Conference on
Wireless and Mobile Computing Networking and Communications, pp. 340-345, Oct. 2008.
M. Zivkovic and R. Mathar, "Preamble-Based SNR Estimation in Frequency Selective
Channels for Wireless OFDM Systems", Proc. IEEE Vehicular Technology Conference, pp.
1-5, Apr. 2009.
R. S. Manzoor, et al., "Front-end estimation of Noise Power and SNR in OFDM systems",
Proc. International Conference on Intelligent and Advanced Systems, pp. 435-439, Nov.
2007.
100
[61]
[62]
[63]
[64]
[65]
[66]
[67]
[68]
[69]
[70]
[71]
[72]
[73]
[74]
[75]
[76]
[77]
[78]
[79]
[80]
[81]
C. Tao and C. Tellambura, "Power delay profile and noise variance estimation for OFDM",
IEEE Communications Letters, vol. 10, no. 1, pp. 25-27, Jun. 2006.
F. X. Socheleau, A. Aissa-El-Bey, and S. Houcke, "Non data-aided SNR estimation of
OFDM signals", IEEE Communications Letters, vol. 12, no. 11, pp. 813-815, Dec. 2008.
Lo, et al., "Maximum Likelihood SNR estimation for asynchronously oversampled OFDM
signals", Proc.
IEEE Workshop on Signal Processing Advances in Wireless
Communications, pp. 26-30, Jul. 2008.
C. H. Aldana, et al., "Accurate noise estimates in multicarrier systems", Proc. IEEE
Vehicular Technology Conference, pp. 434-438 vol.1, Sept. 2000.
L. Yunxin, "Blind SNR estimation of OFDM signals", Proc. International Conference on
Microwave and Millimeter Wave Technology, pp. 1792-1796, May 2010.
H. Jingyu, et al., "Novel Scheme for Joint Estimation of SNR, Doppler, and Carrier
Frequency Offset in Double-Selective Wireless Channels", IEEE Transactions on Vehicular
Technology, vol. 58, no. 3, pp. 1204-1217, Mar. 2009.
Y. Kang, K. Kim, and H. Park, "Efficient DFT-based channel estimation for OFDM systems
on multipath channels", IET Communications, vol. 1, no. 2, pp. 197-202, Apr. 2007.
M. Morelli and U. Mengali, "An improved frequency offset estimator for OFDM
applications", Proc. Communication Theory Mini-Conference, 1999, pp. 106-109, Jun. 1999.
M. Zivkovic and R. Mathar, "Preamble-based SNR estimation algorithm for wireless MIMO
OFDM systems", Proc. International Symposium on Wireless Communication Systems, pp.
96-100, 2009.
E. Blossom, Exploring GNU Radio, Nov. 2004, Available: http://www.gnu.org/software/
gnuradio/doc/exploring-gnuradio.html, [Access date: Jan. 5, 2012]
D. C. Tucker and G. A. Tagliarini, "Prototyping with GNU radio and the USRP - where to
begin", Proc. IEEE Southeastcon, Atlanta, GA, pp. 50-54, Mar. 2009.
A. Mate, L. Kuo-Hao, and I. T. Lu, "Spectrum sensing based on time covariance matrix
using GNU radio and USRP for cognitive radio", Proc. IEEE Long Island Systems,
Applications and Technology Conference (LISAT), pp. 1-6, May 2011.
R. K. Ganti, et al., "Implementation and Experimental Results of Superposition Coding on
Software Radio", Proc. IEEE International Conference on Communications (ICC), pp. 1-5,
May 2010.
M. A. Sarijari, et al., "Energy detection sensing based on GNU radio and USRP: An analysis
study", Proc. IEEE Malaysia International Conference on Communications (MICC), pp.
338-342, Dec. 2009.
M. Bruno, et al., "Widely tunable RF transceiver front end for software-defined radio", Proc.
IEEE Military Communications Conference, pp. 1-6, Oct. 2009.
M. Ettus, Universal Software Radio Peripheral, Available: http://www.ettus.com, [Access
date: Feb. 25, 2012]
H. Wang, et al., "Blind standard identification with bandwidth shape and GI recognition
using USRP platforms and SDR4all tools", Proc. International Conference on Cognitive
Radio Oriented Wireless Networks & Communications (CROWNCOM), pp. 1-5, Jun. 2010.
H. Wang, et al., "Blind Bandwidth Shape Recognition for Standard Identification Using
USRP Platforms and SDR4all Tools", Proc. Sixth Advanced International Conference on
Telecommunications (AICT), pp. 147-152, May 2010.
A. Kaszuba, R. Checinski, and J. Lopatka, "MIMO Implementation with Alamouti Coding
Using USRP2", Proc. Progress In Electromagnetics Research Symposium, pp. 899-902,
Mar. 2011.
L. Kun-chan and L. Mei-wen, "Feasibility study of using FM radio for data transmission in a
vehicular network", Proc. 2010 International Computer Symposium (ICS), pp. 55-60, Dec.
2010.
A. Marwanto, et al., "Experimental study of OFDM implementation utilizing GNU Radio
and USRP - SDR", Proc. 9th Malaysia International Conference on Communications
(MICC), pp. 132-135, Dec. 2009.
101
[82]
[83]
[84]
[85]
[86]
[87]
[88]
P. Alvarez, et al., "Energy detection and eigenvalue based detection: An experimental study
using GNU radio", Proc. 14th International Symposium on Wireless Personal Multimedia
Communications (WPMC), pp. 1-5, Oct. 2011.
P. B. Jorgensen, et al., "Implementation of LTE SC-FDMA on the USRP2 software defined
radio platform", Proc. Communication Technologies Workshop (Swe-CTW), pp. 34-39, Oct.
2011.
GNU Radio Companion, Available: http://gnuradio.org/redmine/projects/gnuradio/wiki/
GNURadioCompanion, [Access date: 12 July 2013]
G. Berardinelli, et al., "An SDR architecture for OFDM transmission over USRP2 boards",
Proc. Conference Record of the Forty Fifth Asilomar Conference on Signals, Systems and
Computers (ASILOMAR), pp. 965-969, Nov. 2011.
A. Blad, E. Axell, and E. G. Larsson, "Spectrum sensing of OFDM signals in the presence of
CFO: New algorithms and empirical evaluation using USRP", Proc. IEEE International
Workshop on Signal Processing Advances in Wireless Communications (SPAWC), pp. 159163, Jun. 2012.
M. Rahman, et al., "The Study of OFDM ICI Cancellation Schemes in 2.4 GHz Frequency
Band Using Software Defined Radio", Proc. International Conference on Wireless
Communications, Networking and Mobile Computing (WiCOM), pp. 1-6, Sept. 2011.
J. J. van de Beek, et al., "On channel estimation in OFDM systems", Proc. IEEE Vehicular
Technology Conference, pp. 815-819 vol.2, 1995.
102