Software Defined Radio based MIMO channelsounding

Jens Elofsson
adi09jel@student.lu.se
Peter Seimaradi09pse@student.lu.se
Department of Electrical and Information Technology
Lund University

Advisor: Fredrik Tufvesson
Joao Vieira
May 25, 2016

Printed in Sweden
E-huset, Lund, 2016

Abstract

With todays increased use of smartphones and other wireless devices, the demandson the wireless networks have increased dramatically. This has prompted the research and development of new types of wireless systems using multiple antennas
at both the transmitter and the receiver, known as MIMO. Since wireless systems
are very susceptible to interference and to changes in the environment, it is important to know how the wireless channel behaves in the environment that thewireless system is intended to operate in. This is done by sounding the channel,e.g. where a signal is transmitted from the transmitter and processed on the receiver in order to obtain the impulse response of the channel. When performing
channel sounding on a MIMO system it is important that the signals transmitted
from the antennas interfere with each other as little as possible so as to get a good
estimation for how the channel behaves. In this thesis we implement a 2 by 2
MIMO channel sounder using m-sequences and Zadoff Chu-sequences, both withgood autocorrelation properties. The major part of the implementation is doneon an FPGA in order to be able to perform the sounding in real time.

iii

Acknowledgements

We would like to express our our gratitude to our supervisors Fredrik Tufvesson
and Joao Vieira for their support and guidance during our thesis work and formaking this thesis possible. We would also like to show our appreciation to Bertil
Lindvall and Josef Wajnblom for their help with installing software and hardware
needed for our work.

iii

iv

Table of Contents

1

Introduction
1.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Thesis purpose and aim . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Thesis outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3
3
4
4

2

Wireless channels and channel sounding
2.1 Wireless channels . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5
5

2.2

2.3

2.4

Channel properties and parameters

2.1.2

Multipath propagation

5

6

System models . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

2.2.1

SISO - Single Input Single Output

8

2.2.2

MIMO - Multiple Input Multiple Output

8

Channel sounding . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

2.3.1

Impulse sounder

10

2.3.2

Correlative sounder

10

2.3.3

MIMO channel sounding

Sounding sequences

11. . . . . . . . . . . . . . . . . . . . . . . . . .

11

2.4.1

The Zadoff-Chu sequence

11

2.4.2

m-sequences

1215

Tools overview
3.1 USRP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Programming environment . . . . . . . . . . . . . . . . . . . . . . .

19
19
21

3.2.1

4

5

Estimating the impulse responses . . . . . . . . . . . . . . . . . . .

2.5
3

2.1.1

LabVIEW

21

Proposed implementation
4.1 General approach . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 LabVIEW implementation . . . . . . . . . . . . . . . . . . . . . . .

25
25
27

4.2.1

Correlator loops

28

4.2.2

Resource utilization and scaling

32

Validation of the implementation
5.1 2-path channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

v

35
35

2x2 MIMO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

Conclusion
6.1 Future work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Issues encountered . . . . . . . . . . . . . . . . . . . . . . . . . . .

41
41
42

5.2
6

vi

Abbreviations

Abbreviations
ACF
ASIC
AWGN
FPGA
GF
HDL
IC
IO
LFSR
LOS
LUT
MIMO
MPC
NI
SCTL
SISO
SNR
USRP
VI

Auto-Correlation Function
Application Specific Integrated Circuit
Additive White Gaussian Noise
Field-Programmable Gate Array
Galois field
Hardware Description Language
Integrated Circuit
Interacting Object
Linear Feedback Shift Register
Line Of Sight
LookUp Table
Multiple Input Multiple Output
Multi Path Component
National Instruments
Single Cycle Timed Loop
Single Input Single Output
Signal-to-Noise Ratio
Universal Software Radio Peripheral
Virtual Instrument

1

2

TABLE OF CONTENTS

Chapter1

Introduction

1.1 BackgroundIn the past 10 years, technology has taken huge steps forward in the fields of mobile communication. With the introduction of smart phones, tablets and wearable
devices there are more wireless signals than ever before. The current development
indicates that this trend will continue in the future with an increasing numberof wireless devices. This trend of smart equipment and communication is now
starting to affect other parts of society, for example the car industry, where a lotof development is already being put into the development of self-driving cars andsmart car systems [1]. Future cars could communicate with each other and be able
to warn each other of lane shifting, sudden brakes and fast emergency vehicles behind low sight corners, to lower the risk for accidents or to avoid them entirely [2].
When advanced communication systems as this one becomes standard equipment
for vehicles, a robust communication system will be needed between the vehicles
to ensure the safety and reliability of the systems.
The performance of a wireless system relies heavily on the environment it operates in, i.e. the wireless channel. Objects in the surrounding area usually interact
with the wireless signal between the transmitter and the receiver. These interactions all contributes to the version of the signal that the receiver sees. Whendesigning a wireless system, these and other factors need to be considered, so an
understanding for how the channel behaves in different scenarios is crucial. This
is where channel sounding proves useful. Channel sounding is the process of measuring properties of the channel (e.g. the impulse response), which can be donein a variety of ways [3, p. 150]. One possible technique is to transmit a signal
from the transmitter to the receiver and letting the original signal be known to
the receiver. This way the receiver is able to estimate how the channel affected
the signal, which in turn could be used to model the channels behaviour.
In order to perform channel sounding and other signal processing operations,software defined radios, or SDRs, are becoming increasingly popular as the performance of the devices increases. SDRs offer a flexible and relatively fast alternative
to hardware implementations, since much of the functionality is implemented insoftware.

3

4

Introduction

1.2 Thesis purpose and aim
The purpose of this thesis is to implement and evaluate a 2x2 MIMO channelsounder on software defined radio devices with onboard FPGA:s. The design
should support the use of different sounding sequences. The performance of thechannel sounder framework will be evaluated when sounding with either ZadoffChu sequences or m-sequences. As for future applications, the sounder could act asfoundation for larger and more advanced channel sounders. The evaluation of thesounding sequences could also give an indication of which of the sequences could be
the better one to use for different sounding scenarios. The possibilities to further
improve and scale the sounder will be discussed, as well as future applications of
the sounder.

1.3 Thesis outline
This report is structured as follows. In chapter 2, the theoretical background. The
concept of a wireless channel is explained, different channel models are presented,
and a theoretical model for MIMO systems is described. A more thorough explanation of channel sounding is provided, and different methods of channel sounding arepresented. Two sequences, namely m-sequences and Zadoff-Chu sequences, suitable for channel sounding are also described. In chapter 3 the sounding equipmentused is presented, including many aspects of the SDRs and their programming
environment. In chapter 4, we propose an FPGA implementation of the crosscorrelation algorithm that processes the received signals for the channel sounding
purposes. We also address the details of our particular implementaion, which was
performed using the programming language of the SDRs.

Chapter2

Wireless channels and channel sounding

2.1 Wireless channels
In wireless communications systems there are many factors that influence theperformance. Some examples of these are path loss between the transmitter andthe receiver, interference from other wireless systems, or objects in the terrain
between the transmitter and the receiver. The transmitted signal might travel
through buildings and terrain, be reflected by obstacles in the environment etc.
All of these things contribute to the distortion of the transmitted signal, and theycollectively make up the wireless channel.

2.1.1 Channel properties and parameters
One property that affects a wireless signal is path loss, that is, the median lossof power the signal experiences when travelling between the transmitter and thereceiver. In the most basic scenario, with no obstacles in the way, the powerreceived at the receiver is given by Friis law [3, p. 48]

PRX (d) = PT X GT X GRX

λ
4πd

2

,

(2.1)

where GRX and GT X are the antenna gains for the receiving and transmitting
antennas, respectively, λ is the wavelength and d is the distance between thetransmitter and the receiver.
Generally, wireless systems are not deployed in areas free from obstacles, butrather in densely populated areas, where there are many buildings, cars etc. Thus,
the simple model for the received power is not enough to fully describe the wirelesschannel. As the signal travels it will interact with the obstacles in its paths (socalled interacting objects, or IOs). Two of the ways a signal can interact with IOs
are reflection and transmission. Reflection occurs when a electromagnetic signal
hits a smooth surface, and is reflected off it [3, p. 69]. When the surface is roughthe signal a will scatter against the surface, and the power of the reflected signal
will be dispersed in many directions.

5

6

Wireless channels and channel sounding

Electromagnetic waves can also be subject to transmission, which means thatthe wave passes through an object. How much power the electromagnetic signal
retains depends on the material of the object and the wavelength of the signal. It
is this phenomenon that allows cellphones and other wireless devices to be used
inside buildings, where there is no direct path to the base station.
If either the transmitter or the receiver is moving, the signal is subjected to the
Doppler effect, which means that the frequency increases or decreases depending
on if the transmitter and the receiver moves towards or away from each other.
This results in a frequency shift of the received signal, given by [3, p. 73]v
ν = −fc cos α,
c

(2.2)

where fc is the carrier frequency, v is the relative speed of the receiver in relation
to the transmitter, c is the propagation speed of the signal and α is the incident
angle.

2.1.2 Multipath propagation
Due to the interactions with IOs, the transmitted signal can take multiple paths
as it travels between the transmitter and the receiver. This causes multiple copiesof the transmitted signal to arrive at the receiver, and these copies are called multipath components (MPCs). The MPCs will have different attenuation and phasedepending on their individual paths, and they will also arrive at slightly different times since the length of each propagation path typically is different. This is
known as a time-dispersive channel, and transferred into the frequency domain,it makes the channel frequency selective, that is, different frequencies will havedifferent amplitudes [4, p. 11].
Since the receiver may not able to differentiate between different MPCs, they
will interfere with each other. The interference can be constructive, ie. the crestsof multiple MPCs align, which will increase the amplitude of the received signal
at a specific time and frequency. They can also be misaligned, in that case they
will cancel each other out, ie. interfere destructively [3, p. 28].
Due to different MPCs having different delays, the channel impulse response
will not be a single Delta function [3, p. 27]. Instead it will consist of several peaks,
each corresponding to one MPC. This phenomena is referred to as time dispersion.
A way of modelling time dispersion is the tapped delay line model [3, pp. 31,128]h(t, τ ) = a0 δ(τ − τ0 ) +NX

ci (t)δ(τ − τi ),

(2.3)

i=1

where a0 is the amplitude of the first component, ci typically is the zero-mean
complex Gaussian distributed random process with a mean power following the socalled power delay profile and τi is the delay for each MPC.

Wireless channels and channel sounding

7

Figure 2.1: Example of a two-path model [5].
A simple case of the tapped delay line model is the two-path channel, visualized
in Figure 2.1. The channel consists of two components, the LOS component, andthe component reflected off the ground. Figure 2.2 shows an example of a possible
impulse response for a two-path channel where the amplitude of the first MPC isnormalized.

Figure 2.2: Example of an impulse response for a two-path channel.

8Wireless channels and channel sounding

2.2 System models
In many areas of engineering, it is useful to make a mathematical model of a reallife scenario to be able to gain an understanding of how the real world scenario
behaves. In this chapter, system models that offer a mathematical explanation for
how wireless communications system, both single antenna and multiple antenna
systems, behaves is presented.

2.2.1 SISO - Single Input Single Output
To be able to understand multiple antenna systems, it is essential to first understand the basic single antenna (SISO) systems as it lays some ground principles
that the multiple antenna system models build upon. With one transmitter, one
receiver and a time-invariant channel, such as a wire, the relationship between thetransmitted signal s(t) and the received signal r(t) can be expressed asr(t) = h(t) ∗ s(t) + n(t),(2.4)

where h(t) is the channel impulse response, s(t) is the transmitted signal, n(t) is
the random process modelling the noise and ∗ denotes convolution.
In wireless systems the channel can often not be seen as time-invariant since
the channel will change as the propagation environment changes. Because of this,the impulse response of the channel becomes time-variant [6, p. 11]
Z ∞y(t) =
x(t − τ )h(t, τ )dτ
(2.5)
−∞

The channel h(t, τ ) is referred to as a time-variant channel where τ denotes thedelay.

2.2.2 MIMO - Multiple Input Multiple Output
In the 2000s, the use of wireless devices has increased dramatically [7] and in orderfor the wireless systems to be able to cope with the increased demands it has become necessary to develop new techniques to make more efficient use of the radio
spectrum and to increase the bit rate of the system [8, p. 6]. One way of achieving
this is to introduce the concept of MIMO, in which there are multiple antennas at
the receiver and the transmitter [3, p. 465]. One of the advantages of MIMO is thatbeamforming can be used, in which the transmitted energy is focused in a certain
direction which increases the received SNR in that direction. Another advantage
is spatial multiplexing, where the data is transmitted on different antennas at thesame time. The receiver can then recover each part by the use of signal processing.
Another advantage is that MIMO introduces spatial diversity [8, p. 6]. Since thereceive- and transmit antennas are separated in space the channel will affect thesignal arriving at the different antennas differently, and by combining the signals
received at each antenna a high SNR can be achieved even though the received

Wireless channels and channel sounding

9

signal strength may be low on some of the antennas.
A time-varying MIMO channel is described by the channel matrix
h11 (t, τ ). . . h1MRX (t, τ )


..
..
..
H(t, τ ) = ,.
.
.
hMT X 1 (t, τ ) . . .

(2.6)

hMT X MRX (t,τ )where hij (t, τ ) is the impulse response between transmit antenna i and receive
antenna j, and MT X and MRX is the number of transmit and receive antennas
respectively.
The relationship between the transmitted signals and the received signals in a
MIMO system can be described asZ ∞H(t, τ )s(t − τ ) + n(t)dτ ,r(t) = H(t, τ ) ? s(t) + n(t) =
(2.7)
−∞

where r is the vector of received signals, s is the vectorof transmitted signals andr1 (t)
n(t) is the noise. For a 2x2 MIMO system, r =is the received signals at
r2 (t)s (t)antenna 1 and 2, s = 1
is the transmitted signal from antenna 1 and 2, ands2 (t)
H is the 2x2 channel matrix.
From this it can be seen that r1 (t) and r2 (t) can be written as [8, p. 34]
Z ∞Z ∞r1 (t) =s1 (t − τ )h11 (t, τ ) + n(t)dτ +s2 (t − τ )h21 (t, τ ) + n(t)dτ (2.8a)
−∞

−∞

Z ∞

Z ∞
s1 (t − τ )h12 (t, τ ) + n(t)dτ +r2 (t) =−∞s2 (t − τ )h22 (t, τ ) + n(t)dτ (2.8b)−∞

2.3 Channel sounding
When developing channel models for different types of wireless systems it is necessary to know how the wireless channel behaves. Early measurements conductedin the 1960s only measured the received signal strength [3, p. 145], but as seen in
section 2.1, the received signal strength is just one of the properties of a wirelesschannel.
The principle of a channel sounder is quite simple. The transmitter transmits
a sequence, the signal travels through the wireless channel to the receiver, which
by knowing the original transmitted sequence, can estimate the channels impulse
response. In order for the channel sounder to be efficient, the transmitted signal
needs to fulfill a few criteria. The bandwidth of the signal should be sufficiently
large so that the delay resolution becomes high enough, since the bandwidth is10

Wireless channels and channel sounding

proportional to the inverse of the delay resolution [3, p. 146]. The length of thesequence should be short enough so that the channel stays constant for one periodof the signal, so that the channel can be seen as time-invariant for the durationof one sequence. The frequency response of the signal should be flat, so thatthe entire frequency spectrum of the signal can be estimated with equal quality[3, p. 146]. In this chapter we will describe two time domain channel sounding
principles. We will also introduce the concept of MIMO channel sounding, as wellas present two types of signals possible to use as sounding signals.

2.3.1 Impulse sounder
One type of sounder is the impulse sounder, in which the transmitter transmits ashort pulse every T seconds. The receiver simply interprets the received signal as
the channel impulse response [8, p. 118]. In order to sound over large bandwidth,
the pulses transmitted should be narrow in time with high amplitude in orderfor the frequency response of the signal to be as flat as possible. Due to theproperties of antennas, amplifiers, mixers etc, the type of pulse needed can bedifficult to generate. Also, because to the shape of the pulse, the sounder can causea significant amount of interference in frequency [9, p. 171], since the transmitted
pulse gives a wide frequency response because of its similarity to a Dirac deltafunction.

2.3.2 Correlative sounder
Instead of transmitting short pulses, a correlative sounder transmits a sequencewith good autocorrelation properties. The receiver then takes the received signalr(t) and correlates it with the transmitted signal s(t). A simple noise free, timeinvariant system can be expressed asr(t) = h(t) ∗ s(t).

(2.9)

If the continuous autocorrelation function for s(t)Z
Rs,s (τ ) = s(t)s∗ (t − τ )dt,

(2.10)

is equal to the Dirac’s delta function1δ(t) =
0(2.11)t=∞,k 6= 0or if the discrete autocorrelation function
X
Rs,s [k] =s[k]s∗ [n − k],n∈Z(2.12)

equal to the Kronecker deltaδ[k] =

10

k=0,
k 6= 0(2.13)

Wireless channels and channel sounding

11

the channel impulse response h(t) can be reliably estimated by cross-correlatingr(t) with s(t) [3, p. 151]r(t) ~ s(t) = h(t) ∗ s(t) ~ s(t) =⇒ h(t) = r(t) ~ s(t),(2.14)

where the ~ denotes discrete cross-correlation.
One issue with correlative sounder is that the hardware in the transmitter andthe receiver also contribute to the distortion of the transmitted signal, so (2.9)
doesn’t suffice when describing the entire system. A more accurate description isinsteadr(t) = hT X (t) ∗ h(t) ∗ hRX (t) ∗ s(t),(2.15)
where hT X (t) impulse response for the transmitter, and hRX (t) is the impulse
response from the receiver. Because of this, simply cross correlating r(t) withs(t) is not enough, as it is required to remove hT X (t) and hRX (t) as well [10,p. 1467]. In a practical system, this can be done by connecting the transmitter tothe receiver with a cable, and estimating the impulse response of the system. The
saved impulse response is then removed from the impulse response obtained whensounding the channel by deconvolving the total estimated impulse response withthat of the system.

2.3.3 MIMO channel sounding
The challenge that arises when performing channel sounding in a MIMO system isthat the received signals at each receive antenna will be a combination of all of thetransmitted signals, as described in subsection 2.2.2. This makes it necessary todifferentiate between the signals transmitted from each antenna. In this project thedifferentiation is made by transmitting different signals with good cross correlation
properties from each antenna in order to minimize the interference between them,so that the channels between all antenna pairs can be estimated. In other words
Z ∞Rs1 ,s2 (τ ) =s1 (t)s∗2 (t − τ )dt,
(2.16)−∞

should be as low as possible, where s1 and s2 are the sequences transmitted fromthe two antennas.

2.4 Sounding sequences
When performing correlative channel sounding, there are a number types of sequences that can be used. Two of them are the Zadoff-Chu- and m-sequences,which both will be presented below.

2.4.1 The Zadoff-Chu sequence
The Zadoff-Chu-sequence is a complex-valued discrete time sequence where theelements in the sequence are defined asui [k] = (−1)ik e

jπi2 kN, 0 ≤ i ≤ N − 1,

(2.17)

12

Wireless channels and channel sounding

where N , the length of the sequence, is an odd, positive integer, 0 < k < N ,gcd(k, N ) = 1.
The reason why Zadoff-Chu sequences are suitable for channel sounding is due
to its lack of variation in amplitude, and its autocorrelation-(2.18) and cross correlation(2.19) properties which can be seen in Figure 2.3 [see 11, pp. 151, 152]
Rs (τ ) =n N for τ ≡ 0 mod N

0 otherwise√
Rsk1 ,sk2 (τ ) = N , for τ ≡ 0,(2.18)

mod N ,

(2.19)

if gcd(|k1 − k2 |, N ) = 1 where k1 and k2 are the value of k in Equation 2.17 forthe respective Zadoff-Chu sequence.

Figure 2.3: The autocorrelation of a Zadoff-Chu sequence, and across correlation between two Zadoff-Chu sequences with k1 =25 and k2 = 29.
It is their cross correlation properties makes them particularly interesting in
MIMO channel sounding, since two Zadoff-Chu-sequences transmitted from twoantennas interfere with each other with a factor of √1N . Another reason that
Zadoff-Chu-sequences are suitable for channel sounding is its flat frequency response. This means that fluctuations in the received power will be equally visible
over the entire frequency spectrum.

2.4.2 m-sequences
A binary m-sequence is a sequence consisting of or 1s and -1s, with the length
N = 2n − 1, where n is a positive integer. In order for a binary sequence to beconsidered an m-sequence, they need to fulfill a number of conditions [11, p. 119].
They need to be balanced, ie. the number of 1s must not differ from the numberof −1s more than one. A subsequence of 1s or -1s is called a run, and 1/2 of allruns in the sequence must be of length 1, 1/4 of all runs must be of length 2, 1/8

Wireless channels and channel sounding

13of all runs must be of length 3 etc. The last condition is that the autocorrelation
function for the sequence must be

Rs (τ ) =n N for τ ≡ 0 mod N.
−1otherwise(2.20)

The frequency response of an m-sequence can be seen in Figure 2.4.

Figure 2.4: Frequency spectrum of an arbitrary m-sequence.

One way of performing MIMO sounding with m-sequences, is to delay the msequence transmitted from one of the antennas by N/2 samples in relation to thesequence transmitted from the other antenna, so the result of the cross correlation
at the receiver shows two peaks, one at 0 and one at N2 samples as shown in Figure 2.5, assuming a noise free one path channel. This limits the maximum delaythat can be unambiguously detected to N2 samples. If the sequences are transmitted continuously, the receiver has no way of knowing which peak corresponds towhich transmitted sequences. This could possibly be solved by for example nottransmitting continuously, but leaving a small window between each transmitted
sequence so that the receiver can discern which peak corresponds to which transmit antenna.

14

Wireless channels and channel sounding

Figure 2.5: Cross correlation of two m-sequences shifted N2 samples.

2.4.2.1 Construction of m-sequencesm-sequences are constructed using a Linear Feedback Shift Register (LFSR) of
length k, where the feedback function of the LFSR must be a primitive polynomial in the Galois field GF (2k ), for an m-sequence of length N = 2k − 1 [12, p. 3].
Feedback shift registers are made up by a series of elements, forming a queue.
For each clock cycle, the queue is pushed one step forward and a new value for the
first step is created from some or all of the queue values from the last iteration.
The value pushed out of the queue is the output for each iteration. This produces
a binary sequence with the values 1 and 0, and the 0:s are replaced with −1:s.

out
Figure 2.6: Example of a 7-bit shift register.
The feedback function of an LFSR describes what positions that are used when
computing the new element. It is often represented in the form of a polynomial[13]p(x) = xk + xk−1 + . . . + x + 1,
(2.21)
where kn denotes which position in the shift register that is added. As an example,
the LFSR in Figure 2.6 has 7 bits and the feedback function
p(x) = x7 + x4 + x + 1(2.22)

indicates that new elements are calculated by modulo-2 adding the first, last andthe third element of the LFSR [14, p. 17].

Wireless channels and channel sounding15

2.5 Estimating the impulse responses
Although wireless channels generally are time-variant, for this application it isassumed that the channel is time-invariant for the entire length of one sequence.
Since the equipment used for measuring the channel also have its own impulse
response, it has to be taken into account as well. From (2.7) we get the new
equation for the received signal at antenna iri (t) =M
TXX

sj (t) ∗ hTj X (t) ∗ hij (t) ∗ hRX(t) + n(t),i(2.23)

j=1

where n(t) is the additive noise process, hT Xj (t) is the impulse response of thej:th transmitter chain, hRXi (t) is the impulse response of the i:th receiver chain,sj (t) is the signal transmitted from the j:th transmit port, and hij (t) is the impulse response from the j:th transmit port to the i:th receiver port. Using thecommutative property of the convolution operator, (2.23) can be rewritten asrj (t) =MTXX

si (t) ∗ hdij (t) ∗ hij (t) + n(t),(2.24)

where hdij (t) = hTi X (t) ∗ hRXj (t).

(2.25)

i=1

The two transmitted signals are removed from the received signal by crosscorrelation.
ĥtot
ij =

M
TX
X

rj (t) ~ si (t) + n(t), j = 1 . . . MRX .

(2.26)

i=1

If the cascade of the hardware responses hdij (t) are known, one way of removing
the measurement system from the channel measurement is by deconvolution, whichin the frequency domain can be done byĥij (t) = F −1F[ĥtotij (t)]
F[hdij (t)],

(2.27)

where F is the Fourier transform.
d
As can be seen below, if ĥtot
ij (t) and hij (t) closely resembles Dirac delta functions, cross correlation may be used to remove the systems inpulse response hdij
from the total impulse response ĥtotij
dĥij (t) = ĥtot
ij (t) ~ hij (t).

(2.28)As a sequence approaches a Dirac delta function, the result of cross correlation
approaches the result of a deconvolution. Figure 2.7b and Figure 2.7c shows the16

Wireless channels and channel sounding

deconvolution and cross correlation respectively of a sequence of 50 random numbers used as an example sequence Figure 2.7a. As can be seen there is quite alarge difference between the two, the deconvolution is a normalized Dirac delta
function, while the cross correlation average is around 0.8, apart from the spikeat 50 lag where it’s equal to 1. If we instead look at Figure 2.8 we can see thatthe cross correlation more closely resembles the deconvolution when the peak issignificantly higher than the rest.

Wireless channels and channel sounding(a) Original sequence(b) Deconvolution(c) Cross correlation
Figure 2.7: Deconvolution and cross correlation done for an example
sequence of 50 random normalised values.

17

18

Wireless channels and channel sounding(a) Original sequence(b) Deconvolution(c) Cross correlation
Figure 2.8: Deconvolution and cross correlation done for an example
sequence of 50 random normalised values, with a Dirac delta
function.

Chapter3

Tools overview

3.1 USRP
Software Defined Radio (SDR) is a concept in the area of radio devices, in whichtasks (such as baseband processing algorithms) that have traditionally been donewith hardware components are implemented in either software or reprogrammablehardware such as an FPGA. This makes SDR platforms more versatile when it
comes to experimenting with wireless systems and technologies, making it a useful
tool in for example prototyping new wireless systems [15].
The advantage of implementing the processing on a computer is that higher
level programming languages can be used, while the FPGA is available to do processing at a much higher rate than a computer but at the cost of being more
complex and restricting to do the implementation on.
One example of SDR devices are the USRPs, which is a series of devices manufactured by Ettus Research and National Instruments. The device used in thisproject is the NI-USRP 2953R. It can tune its center frequency from 1.2 to 6 GHz,
with a bandwidth of 40 MHz. It is equipped with two RF chains (RF0 and RF1)
with 2 antenna ports each, one transmit antenna (TX1) and one receive antenna(RX2) [16]. The transmit antenna can be used for both transmitting and receiving, though not at the same time. The USRP is equipped with a Kintex 7410T
FPGA from Xilinx. A list of few of the specifications can be seen in Table 3.1,
and a more exhaustive list can be found in [17].
In Figure 3.1 a block diagram of the NI USRP-2953R is shown, which showsa basic view of the components used between the antennas and the host computer
controlling the USRP. The data to be transmitted is generated by the FPGA,
either directly or it is sent to the FPGA from the host computer. It is sent to thedigital upconverter, which re-samples the signal to work with the digital-analog
converter, all done on the onboard FPGA. Then, outside the FPGA, a low passfilter cleans up the signal from high frequency components and noise before a mixer
upconverts the signal to the selected frequency. The signal is then amplified andtransmitted from the antenna. The receiver part of the USRP works in the sameway, but all operations are reversed except the amplifying, as can be seen in the

19

20

Tools overview

diagram.

Figure 3.1: NI USRP-2953R block diagram [18], the functionality
inside the square is implemented on the FPGA.

Logic cells
DSP slices
Block memory

406 7201540
28 620 Kb

Table 3.1: Kintex 7 410T specifications
The FPGA can be used to process the data on the USRP instead of on thehost computer, reducing the number of calculations needing to be performed by
the host computer. By using lookup tables, which are able to store and retrieve
bits, depending on the input to the table, logic blocks can be created. These blocks
can, depending on the values stored, behave like any logic gate like AND or OR,
etc. Logic blocks can be grouped together to perform multiplications or simultaneously perform several additions [19], and these groups are referred to as DSP slices.
By putting many such logic blocks on the FPGA and redirectable paths between them, different implementations can be created by changing the values
stored in the lookup tables and by changing the paths between the blocks. Ifneeded, the logic blocks can be used as RAM memory along with the dedicatedblock memory that is built into the FPGAs. A very important purpose of the
FPGA is to give the flexibility of being able to compile an application in just a
couple of hours and still get the benefits of an integrated circuit, like being able todo single cycle timed loops, which are loops where all operations are able to run
in a single clock cycle. An FPGA also have I/O ports, which allows it to receive
input values from external data sources.

Tools overview

21

Figure 3.2: An example of a small FPGA.

3.2 Programming environment
3.2.1 LabVIEWLabVIEW is a graphical programming platform developed by National Instruments. A LabVIEW program (referred to as a Virtual Instrument, or VI) consistsof two parts, the block diagram and the front panel. The front panel contains theuser interface and the block diagram contains the program logic. Elements on the
Front panel are referred to as controls or indicators, where controls can be used
for input and indicators for output [20]. Figure 3.3 is an example of a LabVIEW
PN −1
VI that calculates i=0 i, where N equals 10, as defined in the "Max" control,and outputs it to the "Result" indicator.

(a) Block diagram(b) Front panel

Figure 3.3: A simple LabVIEW example showing addition, a loop,
shift registers and the front panel.

22

Tools overview

Block are connected using wire. The colors of the wires differ depending on
what datatype the wire is, and the thickness of them denotes whether it is a scalarvalue, an array or a matrix [21].

3.2.1.1 LabVIEW FPGA
In order to program the FPGA, the LabVIEW FPGA module is used. LabVIEW FPGA programming interface is similar to usual LabVIEW programming,
although there are some differences. The more notable difference in regards tothis project is the lack of floating point numbers, no complex numbers, no division and no modulus operator [22] in LabVIEW FPGA. One central component
in LabVIEW FPGA is the Single Cycle Timed Loop (SCTL). It’s guaranteed to
execute one loop iteration in one clock cycle, compared to a normal while loop
which will take 3 clock cycles to execute one loop iteration [23].
In order to run an FPGA VI, is it first compiled to a bitfile, which loaded
onto the FPGA from a VI running on a host computer. In this project, the hostcomputer is connected to the USRP via a PCIe-cable as illustrated in Figure 3.4.

PCI Express
connection
Hostcomputer

USRP

Antennas

Figure 3.4: The hardware setup used

3.2.1.2 Communication between host computer and FPGA
Data can be transported between the host computer and the FPGA in two ways,
either by using front panel controls and indicator on the FPGA VI, and write
to/read from these on the host, or to use DMA FIFOs. There are three types of
FIFOs:• Host-to-target, used to stream data from the host computer to the FPGA
• Target-to-host, used to stream data from the FPGA to the host computer• Target-scoped, used to stream data inside the FPGA, eg. between twoparallel running loops
Figure 3.6 shows an example where data is read from the host and written to atarget-scoped FIFO in the upper SCTL, and is read from a FIFO and written to
the host using a target-to-host FIFO in the lower SCTL. One of the features oftarget-scoped FIFOs is that they can transport data between SCTLs with different
clock rates [24].

Tools overview

23

Figure 3.5: Example showing the use of FIFOs

3.2.1.3 Storing and accessing data inside the FPGA VI
For data that needs to be accessed from a sequence arbitrarily and not in a sequential manner, the preferred method is to use memories. Memories can either
be implemented in block memory or by using the LUTs, depending on size of thememory and whether the memory needs to be accessed from different clock domains [25]. If the memory is implemented in block memory, it takes a minimumof one iteration to read from the memory whereas memory implemented in LUT
doesn’t have this latency. Below is an example of an FPGA VI where data is readfrom a memory from the indices 0 . . . 9 and written to a target-scoped FIFO.

Figure 3.6: Example of reading from a memory in LabVIEW FPGA

24

Tools overview

Chapter4

Proposed implementation

In this chapter the FPGA implementation of the cross-correlator at the receiver,for both Zadoff-Chu sequences and m-sequences, as in (2.26) is described. Since
the sequences are transmitted continuously from the transmitter, the cross correlation in this application is equal to circular cross correlation.

4.1 General approach
One important constraint of FPGA development is that the FPGA has limited
space for programming logic, meaning that the number of operations that can be
performed in parallel on the FPGA is limited. In order to be able to handle longsequences, the circular cross-correlation needs to take up a small amount of theavailable resources, even when the sequence length N is large.
Thus, if we want to be able to perform circular cross-correlation for sequencesof arbitrary lengths, we need to implement it in such a way that the number ofoperations needed to be performed in parallel does not increase as the sequencelength, N , increases. The algorithm for achieving this is described the example
below.
If we take, for example, the m-sequence x1 = x2 = (1 −1 1) the circularcross-correlation equals
x1 (3) × x2 (1) + x1 (2) × x2 (2) + x1 (1) × x2 (3) = 1 × 1 + (−1) × (−1) + 1 × 1 = 3(4.1)
x1 (3) × x2 (3) + x1 (2) × x2 (1) + x1 (1) × x2 (2) = 1 × 1 + (−1) × 1 + 1 × (−1) = −1
(4.2)
x1 (3) × x2 (2) + x1 (2) × x2 (3) + x1 (1) × x2 (1) = 1 × (−1) + (−1) × 1 + 1 × 1 = −1
(4.3)
If we imagine a scenario in which the transmitter transmits x1 repeatedly, andthat x1 is known at the receiver as x̂ and the receiver receives exactly the same, discrete values that are transmitted, the received values will be . . . 1 −1 1 1 −1 1 . . ..
This scenario could obviously never occur, as explained in chapter 2, but it will

25

26

Proposed implementation

do as a model for describing our implementation.
Let the received samples be r = 1 −1 1 1 −1 1 1 −1 . . . and x̂ = (1 −1 1).
N = 3 denotes the length of x̂. τ denotes the number of samples x̂ is shifted,
sum−1 = 0 and i = k + τ mod N . For the first iteration τ = k = 0 and k isincremented by 1 after each processed sample. In order to calculate the circularcross-correlation for one period, the following steps are executed.
The following is done in order to calculate (4.1).
For the first received sample r0 = 3, take sum0 = sum−1 + r0 × x̂i = 0 + 1 × 1 = 1.
For the second received sample r1 = 2, sum1 = sum0 + r1 × x̂i = 1 + −1 × −1 = 2.
For the third received sample r2 = 1, sum2 = sum1 + r2 × x̂i = 2 + 1 × 1 = 3.
In order to calculate (4.2), τ is incremented in order to induce the shift in x̂.
τ = 1 and k is reset to 0.
For the fourth received sample r4 = 3, take sum0 = sum−1 +r0 × x̂i = 0+1×−1 =−1.
For the fifth received sample r5 = 2, sum1 = sum0 + r1 × x̂i = −1 + −1 × 1 = −2.
For the sixth received sample r6 = 1, sum2 = sum1 +r2 ×x̂i = −2+1×1 = −1 = -1.
The calculations are done in the same manner for (4.3), where τ = 2 andk = 0.
For the seventh received sample r7 = 3, take sum0 = sum−1 +r0 ×x̂i = 0+1×1 = 1.
For the eighth received sample r8 = 2, sum1 = sum0 + r1 × x̂i = 1 + −1 × 1 = 0.
For the ninth received sample r9 = 1, sum2 = sum1 + r2 × x̂i = 0 + 1 × −1 = -1.
This concludes Rx1 ,x2 (τ ) for 0 ≤ τ ≤ N − 1. In our implementation, thealgorithm then starts over from τ = 0 as we continuously perform circular crosscorrelation of the received signal.

Proposed implementation

27

4.2 LabVIEW implementation
The LabVIEW implementation of the algorithm is based on the "NI-USRP Streaming" example project that is bundled with LabVIEW, and the FPGA portion isheavily based on the "Streaming (Xcvr)" VI, which in its original state configures
the USRP for receiving and transmitting on a specified center frequency, and thereceived samples are passed on directly to the host computer using two target-tohost FIFOs.
Our implementation is based on this VI, and the received samples are sampledfrom the radio interfaces at RF0 and RF1 inside a SCTL, and written to twotarget-scoped FIFOs instead, as seen in Figure 4.1, for further processing on the
FPGA. The I- and Q-components are quantized by 16 bits, and merged into one
32-bit integer with the I-component in the lower bits and the Q-component in thehigher.

Figure 4.1: Samples being written to FIFOs from a SCTL loop where
the blue wire is a 2x1 array containing one sample from RF0
and one from RF1

For the correlator SCTLs to begin executing, it requires knowledge of a few
values, the type of sequence, the length of the sequences and the sequences themselves. Thus, before the correlator SCTLs start executing, these values are supplied
to the FPGA from the host. The type of sequence and the sequence length is written to the FPGA from the host using Front panel indicators on the LabVIEWFPGA VI and the sequences are written to the FPGA from the host using two
host-to-target FIFOs.
On the FPGA VI, the Front panel indicators storing the sequence length andtype of sequence, both have a default value of 0. Before the SCTLs performing
the circular cross-correlation is executed, the FPGA application waits for thesevalues to be defined, as seen in Figure 4.2. The loop will exit when the values in
the indicators are no longer 0.

28

Proposed implementation

Figure 4.2: The loop that waits for the type of sequence and sequence length to be specified from the hostAfter Figure 4.2 have exited, the contents of the FIFOs storing s0 and s1 are
written to two memories each, one to be used in the SCTL performing the circularcross-correlation for the samples from RF0, and one to be used in the SCTL for
the samples from RF1.
The samples in the sequences are represented by one unsigned 64-bit integer.
In the case of the Zadoff-Chu sequence the real and imaginary part of each element
is represented as 32-bit integers and merged into a unsigned 64-bit integer with thereal component in the higher bits and the imaginary component in the lower. In thecase of the m-sequence, each element of the m-sequence is represented as a 32-bit
integer and written to both the higher and lower part of a 64-bit unsigned integer.
After the sequences are taken from from the FIFOs and stored in the memories,
the SCTLs that performs the circular cross-correlation starts executing.

4.2.1 Correlator loops
The circular cross-correlation is performed in two SCTL, one for the samples at
RF0 and one for the samples at RF1. The implementation of the two SCTLs arenearly identical, they only differ in which FIFO they read the received samples
from. Each of the SCTLs circularly cross-correlates the received samples withboth of the transmitted sequences, s0 and s1 , and they functions as follows.
For every iteration, one element from the FIFO containing the received samples
is read as a 32-bit unsigned integer. As mentioned in section 4.1, the I- andQ-components are represented by one 16-bit integer respectively, so the integer
from the FIFO is split up into I- and Q-components as 16-bit integers. These
are multiplied with the corresponding element in s0 and s1 . The way that themultiplication is done differs depending on whether the sequence used is an msequence or a Zadoff-Chu sequence. In the case of an m-sequence the I- andProposed implementation

29

Q-component is simply multiplied with the corresponding element in s0 and s1
as seen in Figure 4.3a. In the case of the Zadoff-Chu sequence the I- and Qcomponent are treated as the real and imaginary part of a complex number, which
is multiplied with the conjugate of the corresponding element in s0 and s1 as canbe seen in Figure 4.3a.

(a) Multiplication for Zadoff-Chu sequence(b) Multiplication for m-sequence
Figure 4.3: The multiplication for different sequence types
The resulting I-component is added to the sums of I-components from theprevious iteration, as described in section 4.1 and the resulting Q-component is
added to the sums of Q-components in the same manner. If the calculations for
one value of τ is completed, the sums for the I- and Q-components are merged
into a 64-bit integer and written to the host using a host-to-target FIFO, and set
to zero for the next loop iteration. A flow chart of the implementation of circularcross-correlation with one sequence s can be seen in Figure 4.4. Each correlator

30

Proposed implementation

loop implements Figure 4.4 for both sequences s0 and s1 in parallel.

Proposed implementation

Figure 4.4: A flow chart describing the loops performing circularcross-correlation, where s is the sequence stored on the FPGA

31

32

Proposed implementation

4.2.2 Resource utilization and scaling
Figure 4.5a shows the device utilization for the original "Streaming (Xcvr)" VI,
and Figure 4.5b show the device utilization with our additional processing. As canbe seen, the device utilization has increased slightly, but lack of device resources
is no issue.
Figure 4.5(a) Device utilization of the original "Streaming Xcvr (FPGA)" VI(b) Estimated device utilization after the correlation were added
One of the most notable increase is from 11.2% to 16.9% for LUTs (Lookup tables). The reason for this is that the memories that is used to store the sequencess0 and s1 on the FPGA are implemented in Lookup tables, meaning that theyalso consume resources that could be used for programming logic[25]. This could
pose a problem since an increase in the number of sequences used also leads to anincrease in the number of memories needed by one memory block per correlator
loop. It could also be a problem if the sequence lengths increases dramatcially,
since that would require larger memories. One way to remedy this is to implement
the memories in block memory instead of Lookup tables, since block memory does
not use programming logic for storage[25].
Since every correlator loop implements Figure 4.4 once per transmitted sequence, the number of performed operations, Figure 4.3b and Figure 4.3a, between
the received sample and the corresponding elements in the stored sequences si will
increase with linearly with an increased number of transmitted sequences. This
will cause problems as the number of sequences used increases, as the number
of DSP slices used for operations such as multiplication and addition (listed as"DSP48s" in Figure 4.5) is limited.
The issue of storing the sequences on the FPGA could possibly be circumvented
by letting the FPGA itself generate the elements of the sequences. The generationof m-sequences is well suited for implementing on an FPGA, since the operations
required are quite simple. It might prove more difficult to generate a Zadoff-Chu

Proposed implementation

33

sequence, since the there are no floating point numbers and no exponential function
ex available in LabVIEW FPGA.

34

Proposed implementation

Chapter5

Validation of the implementation

5.1 2-path channel
In order to verify that the implementation is correct, a simulated 2-path channel iscreated. This is done using two USRP:s, one as transmitter and one as a receiver.
First, the devices transfer function is calculated and stored, then one of the transmit ports on the transmitting USRP is connected to a power splitter, and fromthe power splitter, a 0.5 m cable is connected to a power combiner, and between
the remaining ports on the power splitter and power combiner, a approximately
30 m long cable is connected. The power combiner is then connected to the receiving USRP, and an m-sequence is transmitted. The 2-path channel is sounded bycross-correlating the received signal with transmitted m-sequence, on the FPGA,
and the result is saved to the hard drive, after the device transfer function has
been removed from the result.

30 m

USRP 1USRP 20.5 m
Figure 5.1: The simulated 2-path channel setup

The sequence transmitted is an m-sequence of length 1023, the sample rate is
20 MHz, and the carrier frequency is 1.5 GHz. The result of the sounding can beseen in Figure 5.2, and as can be seen there are two peaks. The first, and taller,
one is from the short path and the weaker, second one is from the longer path.
The reason why the second peak is weaker is due to the fact that the longer cableattenuates the signal approximately 13 dB as can be seen from Figure 5.2. The

35

36

Validation of the implementation(a) Normalized amplitude(b) Normalized amplitude (dB)Figure 5.2: Snapshot of the estimated impulse response for a 2-pathchannel, using a m-sequence of period 1023
difference in length between the cables, l, can be approximated byl = vp ×

k
fs

(5.1)

where vp is the propagation speed of the signal in the cable, fs is the sample rate,
and k is the number of samples the second peak is delayed in relation to the first
peak. The propagation velocity vp is between 69 percent and 80 percent of the
speed of light depending on the material in the cable [26].
By looking at Figure 5.2 we can see that k = 4. This means that the differencein length of the cables can be approximated tol = 0.69 × c ×

4≈ 41m
20 × 106(5.2)

1
If we take into account the delay resolution ∆τ = BW
, the ambiguity of (5.2)
becomes
1
1
∆l =
vp =
× 0.69c = 10.34 m(5.3)
BW
20 × 106

5.2 2x2 MIMOIn this example, a practical example of the MIMO channel sounding described in
section 2.5 is performed for the 2x2 MIMO case. The setup is using two USRPs,
one for transmitting and one for receiving. The sounding process is as follows, andvisualized in Figure 5.3
1. Cables are connected from RF0 and RF1 on the transmitter, to RF0 and
RF0 on the receiver, respectively. The sequence s1 is transmitted from
RF0, and s2 is transmitted from RF1. The receiver performs circular crosscorrelation on each received signal with the transmitted sequence, obtaining

Validation of the implementation

37

s1
USRP 1USRP 2s2(a) Step 1

s1
USRP 1USRP 2s2(b) Step 2

s1
USRP 1s2

USRP 2(c) Step 3
Figure 5.3: Visualization of the MIMO channel sounding process
hd11 (t) and hd22 (t) as described in section 2.5 and the results are saved tothe hard drive of the host computer.
2. The connected cables are crossed, so that RF0 is connected to RF1, and RF1
is connected to RF0. s1 and s2 is the transmitted, and the receiver performs
circular cross-correlation as previously, obtaining hd12 (t) and hd21 (t).
3. The cables are disconnected from one end, and antennas are connected on
the loose ends of the cables, and the antenna ports. s1 and s2 is transmitted
from RF0 and RF1, respectively, and the receiver performs circular crosscorrelation on the FPGA, for each received signal with both s1 and s2 as
described in (2.26).
In these three stages, it is important that the USRPs is not power cycled between the steps, which would result in the transfer function of the system changing.
To counter this, the sounder was implemented to be able to do multiple soundings
without needing a restart.
Measurements are made using both Zadoff-Chu sequences and m-sequences. In
the case of Zadoff-Chu sequences the sequence parameters is k1 = 23, N1 = 1023,

38

Validation of the implementation

k2 = 37, and N2 = 1023. For the m-sequences the length N = 1023 is used, ands2 is shifted 511 samples in relation to s1 . In each case, N × 5 = 5115 samples are
saved.
In Figure 5.4a and Figure 5.5a the estimated channel impulse response ĥchan
11 (t, τ )is presented, and it is obtained in the following way. The first 1023 samples
from the systems impulse response hd11 (t) is removed from the impulse response
htot
11 (t, τ ) obtained in step 3 in Figure 5.3 by deconvolution according to


tot
chan
−1 F[h11 (t, τ )].
(5.4)
ĥ11 (t, τ ) = F
F[hd11 (t)]The following 4 ∗ 1023 samples are treated in the same way, creating the graphs
seen in Figure 5.4a and Figure 5.5a.
For the m-sequences, as explained in subsection 2.4.2, the expected results
are two peaks for each N = 1023 number of received samples with one peak 511
samples after the first peak. This is due to the sequence transmitted from thesecond antenna is delayed 511 samples in relation to that transmitted from thefirst antenna, as well as the cross-correlation properties of m-sequences explained insubsection 2.4.2. Our estimated channel impulse response when using m-sequences
can be seen in Figure 5.4a, where there are two peaks per N samples. Since we
capture 5 × N = 5115 samples, the plot shows 10 peaks. By analyzing the plots
in MATLAB we are able to see that the peaks are 511 samples apart.
For the Zadoff-Chu sequences the expected result is one peak per N samples,
since the transmitted sequences are two different Zadoff-Chu sequences. The peakto-average ratio of the cross-correlation of two different Zadoff-Chu sequences is√1 as seen in subsection 2.4.1. As seen, our estimated channel impulse responseNwhen using Zadoff-Chu sequences presented in Figure 5.5a matches the expected
result of one peak per N samples, as we capture N ∗ 5 = 5115 samples.
Figure 5.4b and Figure 5.5b shows the estimated channel impulse responseĥchanobtained by circularly cross-correlating the systems estimated impulse re11
sponse with the estimated total impulse response. As described in section 2.5,
deconvolution and circular cross-correlation yields the same result when the sequence is a Kronecker delta. Since our channel is subjected to noise and interference between the transmitted sequence, the estimated channel impulse response in
Figure 5.4b and Figure 5.5b will not be of the same quality as when deconvolution
is used. When the channel impulse response is estimated using m-sequences, theresult matches the result obtained from the deconvolution fairly well. We attribute
this to the fact that the interference between the two m-sequences is zero at all
points except for 511 samples after the initial peak. For Zadoff-Chu sequences,
the interference between the two transmitted sequences is constant at a ratio of√1 , making the channel impulse response that is estimated using circular crossN
correlation look quite from that estimated using deconvolution. As can be seenfrom Figure 5.5b and Figure 5.5a, while Figure 5.5b do contain the expected 5
spikes it also contains e.g. one unexplained −30 dB component.

Validation of the implementation

39(a) The estimated channel impulse response with the systems impulse response removed by deconvolution(b) The estimated channel impulse response with the systems impulse response removed by cross-correlation
Figure 5.4: MIMO sounding using a m-sequence of period 1023

40

Validation of the implementation(a) The estimated channel impulse response with the systems impulse response removed by deconvolution(b) The estimated channel impulse response with the systems impulse response removed by cross-correlation
Figure 5.5: MIMO sounding using a Zadoff-Chu sequence with N =1023, k1 = 23, k2 = 37

Chapter6

Conclusion

In this thesis, a 2x2 MIMO channel sounder implemented in LabVIEW FPGA
have been proposed and evaluated. A few different approaches were tried during the development, in order to make the FPGA implementation possible. The
channel sounder was implemented for two different types of sequences, Zadoff-Chu
sequences and m-sequences. This was useful both for evaluating the sounder itself and also to evaluate and compare the sequences themselves, and their channelsounding properties, but required a more advanced implementation to work on the
USRP. In the end, the sounder produced a consistent result, using deconvolution,
for both Zadoff-Chu and m-sequences as can be seen in Figure 5.5a and Figure 5.4a
respectively.
Overall, both sequences resembles the expected results, the floor of the ZadoffChu sequence in Figure 5.5a is slightly higher than that of the m-sequence inFigure 5.4a and this can most likely be attributed to that in addition to thenoise, the Zadoff-Chu sequence transmitted from one antenna also suffers frominterference from the Zadoff-Chu sequence transmitted from the other antenna
with a factor of √1N as mentioned in subsection 2.4.1. With the throughput andaccuracy of the sounder, along with the implementation of both sequences, thegoals stated in section 1.2 were eventually reached.

6.1 Future work
This thesis implements a relatively basic MIMO channel sounding and has room
for improvement and expansion. Currently, few antennas and few sequences areused and an interesting continuation would be to significantly increase the number of transmit antennas and the number of different sequences, especially withregards to Zadoff-Chu sequences. Both to see how the FPGA implementation
handles the increased demands, and also how the Zadoff-Chu sequences performs
as the number of sequences increases. Adding the capability of cycling between
transmitting and receiving automatically would make for a more flexible channelsounder. In addition, GPS could be used to synchronize the local oscillators ofmultiple USRP:s, as well for deciding when one USRP should transmit and receive.

41

42

Conclusion

In terms of sequences used for the sounding, there are more than the m- andZadoff-Chu sequences that was not used at all in this thesis. Gold codes andKasami sequences could have been evaluated and compared as well. As for the
hardware, the sounding in this thesis was carried out over short range and withstationary USRPs. The sounding could be also performed over longer distanceswith stronger antennas and the USRPs placed on moving vehicles. Further, theFPGA application could be extended to remove the system transfer function fromthe total transfer function, something which is currently done on the host computer.

6.2 Issues encountered
A Zadoff-Chu sequence consist of complex numbers where the real and imaginary
components are floating point numbers are bounded by [−1, 1]. Since LabVIEWFPGA doesn’t support floating point number, one need to be careful when converting the Zadoff-Chu sequence to integers, so that no precision is lost, as thatwill influence the auto- and cross-correlation properties of the sequence. It is unclear if the conversion really is the source of the errors we experienced, since theerror should be very low for that conversion, so it is a possibility that the problems
were due to a bug in our implementation.
Our initial LabVIEW FPGA implementation had some issue. The sequences
was written to the FPGA in the same way as in chapter 4, and the received samples were written to FIFOs. These FIFOs were read from in another SCTL. In
the SCTL, the received samples were buffered in an N -length array. In every
iteration, the buffered array and the sequence were multiplied element wise, andthe elements in the resulting array were added. In the next iteration, the element from the receiver was pushed onto the buffered array, and the last element
discarded. There are several issues with this approach, which ultimately lead us
in a different direction which resulted in the implementation described in chapter 4. Since LabVIEW FPGA doesn’t support variable length arrays, the lengthof the sequence had to be hardcoded into the VI meaning that for each sequencelength one individual bitfile would be needed. It is also troublesome for LabVIEWFPGA to handle large arrays. While the implementation worked for sequences ofshorter length (eg. 63), it became problematic when moving to longer sequences,
as in the synthesis step of the compilation the FPGA would run out of DSP-slices
from performing all of the multiplications. The compile process also took quite along time (a few hours). This, combined with our lack of experience with FPGA
programming and LabVIEW FPGA, made for quite a slow development process.

Bibliography[1]

Qing Rao et al. “AR-IVI - Implementation of In-Vehicle Augmented
Reality”. In: Mixed and Augmented Reality (ISMAR), 2014 IEEE International Symposium on (2014).

[2]

U.S. Department of Transportation. Safercar. 2015. url: www.safercar.
gov.

[3]

Andreas F. Molisch. Wireless Communications Second Edition. Wiley,
2011.

[4]

Gerald Matz and Franz Hlawatsch. Fundamentals of Time-Varying
Communication Channels. Academic Press, 2011.

[5]

Wikimedia Commons. 2 Ray Ground Reflection. By Derekjc (Own
work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)],
via Wikimedia Commons. 2014. url: https://upload.wikimedia.
org/wikipedia/commons/9/95/2-Ray_Ground_Reflection.
png.

[6]

Franz Hlawatsch and Gerald Matz. Wireless Communications over
Time-Varying Channels. Academic Press, 2011.

[7]

ITU. Mobile-cellular subscriptions. 2014. url: https://www.itu.
int/en/ITU-D/Statistics/Documents/statistics/2015/
Mobile_cellular_2000-2014.xls.

[8]Nelson Costa and Simon Haykin. Multiple-Input Multiple-Output Channel Models, Theory and Practice. Wiley, 2010.

[9]

Sana Salous. Radio Propagation Measurement and Channel Modelling.
Wiley, 2013.

[10]

Gerald Matz et. al. “Bounds on the systematic measurement errors ofchannel sounders for time-varying mobile radio channels”. In: Vehicular Technology Conference, 1999. VTC 1999 - Fall. IEEE VTS 50th
(1999).

43

44

BIBLIOGRAPHY[11]

Solomon W. Golomb and Guang Gong. Signal Design for Good Correlation. Cambridge University Press, 2005.

[12]

Abhijit Mitra. “On the Construction of m-Sequences via Primitive
Poynomials with a Fast Indeitification Method”. In: International Journal of Electrical and Computer Engineering (2008).

[13]

New Wave Instruments. Linear Feedback Shift Registers. 2010. url:
http://www.newwaveinstruments.com/resources/articles/m _ sequence _ linear _ feedback _ shift _ register _ lfsr .
htm.

[14]

Andreas Klein. Stream Ciphers. Springer, 2013.

[15]

National Instruments. Prototyping Next Generation Wireless Systems
with Software Defined Radios. 2015. url: http://www.ni.com/
white-paper/14297/en/.

[16]

National Instruments. DEVICE SPECIFICATIONS NI USRP-2953R.
2014. url: http://www.ni.com/pdf/manuals/374197a.pdf.

[17]Ehab Mohsen. Balancing Performance, Power, and Cost with Kintex7 FPGAs. 2013. url: http : / / www . xilinx . com / support /documentation / white _ papers / wp432 - K7 - Perf - Power Cost.pdf.

[18]

National Instruments. NI USRP-2953R Block Diagram. Image courtesy of National Instruments and is not to be further distributed without their consent. 2015. url: http://zone.ni.com/reference/
en-XX/help/373380D-01/usrphelp/2953_block_diagram/.

[19]

Xilinx. 7 Series DSP48E1 Slice user guide. 2015. url: http : / /www.xilinx.com/support/documentation/user_guides/
ug479_7Series_DSP48E1.pdf.

[20]

National Instruments. LabVIEW Environment Basics. 2015. url: https://www.ni.com/getting-started/labview-basics/environment.

[21]

National Instruments. Dataflow Programming Basics. 2015. url: http://www.ni.com/getting-started/labview-basics/dataflow#
Wires.

[22]

National Instruments. Unsupported LabVIEW Features (FPGA Module). 2015. url: http://zone.ni.com/reference/en- XX/
help/371599L-01/lvfpgaconcepts/fpgamisc/.

[23]

National Instruments. Single-Cycle Timed Loop FAQ for the LabVIEW FPGA Module. 2015. url: http : / / digital . ni . com /public.nsf/allkb/722A9451AE4E23A586257212007DC5FD.

BIBLIOGRAPHY

45

[24]

National Instruments. Implementing Multiple Clock Domains (FPGA
Module). 2012. url: http : / / zone . ni . com / reference / en XX / help / 371599H - 01 / lvfpgaconcepts / implementing _domains/.

[25]

National Instruments. Storing Data on an FPGA Target (FPGA Module). 2012. url: http://zone.ni.com/reference/en- XX/
help/371599H-01/lvfpgaconcepts/fpga_storing_data/.

[26]

Axon’ Cables. COAXIAL CABLES. 2015. url: http://www.axoncable.com/publications/Coaxial-cables.pdf.

46

BIBLIOGRAPHY

Notes47