DWC-USRP - Student Lab Manual PDF
DWC-USRP - Student Lab Manual PDF
10/20/11
11:30 AM
DIGITAL COMMUNICATIONS
PHYSICAL LAYER EXPLORATION LAB USING THE NI USRP PLATFORM
i
book2 2011/10/28 14:05 page i #1
Digital Wireless
Communication
Physical Layer Exploration Lab
Using the NI USRP
Student Lab Manual
i
i
i
book2 2011/10/28 14:05 page ii #2
ISBN-10: 1-934891-18-5
ISBN-13: 978-1-934891-18-6
10
i
i
i
book2 2011/10/28 14:05 page iii #3
Dedication
I dedicate this to Garima, Pia, and Rohan for their love and support,
to my parents Bob and Judy Heath for their encouragement
and to Dr. Mary Bosworth for her passion in the pursuit of higher education.
R. W. H.
i
i
i
book2 2011/10/28 14:05 page iv #4
i
i
i
book2 2011/10/28 14:05 page v #5
Contents
Preface
vii
xi
10
22
35
Lab 3: Synchronization
51
63
82
99
115
130
139
Bibliography
141
v
i
i
i
i
book2 2011/10/28 14:05 page vi #6
i
i
i
book2 2011/10/28 14:05 page vii #7
Preface
Wireless communication is fundamentally the art of communicating information without wires. In principle, wireless communication encompasses
any number of techniques including underwater acoustic communication,
semaphores, smoke signals, radio communication, and satellite communication, among others. The term was coined in the early days of radio, fell out
of fashion for about fifty years, and was rediscovered during the cellular telephony revolution. Wireless now implies communication using electromagnetic wavesplacing it squarely within the domain of electrical engineering.
Wireless communication techniques can be classified as either analog or
digital. The first commercial systems were analog including AM radio, FM
radio, television, and first generation cellular systems. Analog communication is rapidly being replaced with digital communication. The fundamental
difference between the two is that in digital communication, the source is
assumed to be digital. Modern applications of digital communication include cellular communication, wireless local area networking, personal area
networking, and high-definition television.
Digital communication is widely taught in electrical engineering programs, at both the undergraduate and the graduate levels. Many digital communication courses take an abstract approach that emphasizes theory. This is
no surprisethe mathematical theory of digital communication is beautiful
and elegant. There has been a growing separation, however, in the abstract
content of a typical course and what is implemented in practice. This difference is particularly evident in wireless communication systems, which have
their own set of specific challenges. As courses are becoming more abstract,
there is also increasing reliance on simulation to validate the theory. Typical
simulations, though, are constructed under certain simplifying assumptions,
which leaves important practical issues undiscovered. As a byproduct of the
growing rift between theory and practice, and the increasing reliance on simulation, many students are not prepared to apply their knowledge immediately
to a real digital wireless communication system.
vii
i
i
i
i
book2 2011/10/28 14:05 page viii #8
viii
Preface
i
i
i
book2 2011/10/28 14:05 page ix #9
Preface
ix
i
i
i
book2 2011/10/28 14:05 page x #10
Preface
software from the student. He also revised the lab manual to reflect the new
system implementation. Hoojin Lee undertook the job of creating figures
for the early course material. Josh Harguess created a nice introduction to
LabVIEW presentation. Robert Grant spent time seeing how to convert to
an early version of the USRP platform, when it was just released. Caleb Lo,
Ramya Bhagavatula, Omar El Ayache, and Tom Novlan all made important
revisions to the notes and software to keep it up-to-date with current versions
of LabVIEW. All the teaching assistants ran the labs, worked with the students, collected feedback, and make suggestions and revisions. I sincerely
thank them for their support.
The development of this book and course was supported by several groups.
National Instruments made the course possible through its establishment of
the Truchard Wireless Lab at The University of Texas at Austin. NI provided summer support that funded the endeavor, and contributed countless
hours of employee time. Several groups from University of Texas at Austin
including the Department of Electrical Engineering and the Cockrell School
of Engineering provided teaching assistant support to develop and maintain
the course materials. Working on the labs has inspired my research. I am
pleased to acknowledge research support from the National Science Foundation, DARPA, the Office of Naval Research, the Army Research Labs,
Huawei, National Instruments, Samsung, Semiconductor Research Corporation, Freescale, Andrew, Intel, and Cisco. Their support has allowed me
to train many graduate students who share my appreciation of theory and
practice.
I hope you enjoy this book and doing the laboratory experiments.
Robert W. Heath Jr.
Austin, Texas
i
i
i
book2 2011/10/28 14:05 page xi #11
i
i
i
book2 2011/10/28 14:05 page xii #12
xii
i
i
i
book2 2011/10/28 14:05 page 1 #13
Summary
A software defined radio (SDR) is a communication radio that uses software
to implement the algorithms necessary for digital communication. In this lab,
you will be designing and implementing an SDR using National Instruments
hardware and software (i.e., National Instruments LabVIEW). Through the
implementation of this SDR you will investigate practical design issues in
wireless digital communication.
This introductory lab is divided into two parts. In the first part you will
learn about the software used in this lab; in the second part you will learn
about the RF hardware to be used in lab. This part of the lab will answer the
following questions:
What software will I need for this lab?
What is NI LabVIEW and why do we use it in this lab?
What are some of the advanced LabVIEW tools used in this lab?
Is there such a thing as good code style in LabVIEW?
Also, in this part of the lab, you will build some of the basic components
of the SDR that you will be designing throughout the labs. This lab is meant
to introduce LabVIEW as a tool for the design of digital communications
systems in this course, and to give you a chance to get comfortable with basic
LabVIEW programming concepts.
Throughout the course you will be required to do some portion of the lab
work (e.g., pre-labs) outside of the lab. This means that you will need to get
access to the appropriate software tools and packages outside of class. The
NI software below will be used in the course.
1
i
i
i
i
book2 2011/10/28 14:05 page 2 #14
Note: Your instructor will provide information about how to access LabVIEW
at your University.
i
i
i
book2 2011/10/28 14:05 page 3 #15
i
i
i
book2 2011/10/28 14:05 page 4 #16
2.3
Googling the phrase labview code style will yield a number of sources
for general code style in LabVIEW. Whatever style you choose to follow,
remember that your code style should accomplish the following:
1. Consistency - All of your code should follow the same code style.
2. Readability - Your code should be user-friendly and easy to maintain.
3. Documented - Documentation should not be few and far between.
Good documentation not only comes in the form of free text labels
(see the Decorations palette, which is part of the Structures palette),
but it also means good variable and function names.
When incrementally designing a moderately complicated system, it can
be tempting to continually add hacks until you end up with spaghetti code
(see Figure 1).
The design of a digital communication system is modular and sequential
in nature. Thus it is natural to adopt a code style which makes use of a
great deal of hierarchy and modularity. Since many algorithms in digital
communications can often be boiled down to a recipe (e.g., A then B then C),
it is critical to use sub-VIs whenever possible.
Pre-Lab
In this pre-lab you will build two sub-VIs: source.vi and error detect.vi. You
will then plug your code into a simulator provided to you (shown in Figure 2).
The goals of this pre-lab are (1) to understand how to build and use sub-VIs
and (2) to practice using good code style.
The details of each sub-VI that you must construct are given in Tables 1
and 2. In all future labs you will be provided with an appropriate simulator.
You will typically reimplement certain blocks within the simulator and use it to
perform some kind of measurement. This incremental process will continue
throughout the course as you learn about each part of a digital communication
system. The general simulator you will use in future labs is composed of many
files. Figure 3 shows an overview of the hierarchy of the various parts of the
simulator.
It should be noted that the simulator you will be provided with will have
full functionality; however, the block diagram of the functional blocks of the
simulator will be locked. This means that although you will be able to see
how the simulator is supposed to function and look at the front panel of all the
VIs, you will not be able to see the block diagram (i.e., the implementation)
of the digital communication sub-VIs.
i
i
i
book2 2011/10/28 14:05 page 5 #17
i
i
i
book2 2011/10/28 14:05 page 6 #18
i
i
i
book2 2011/10/28 14:05 page 7 #19
OUTPUTS
length
output bit
sequence
array of U8
(unsigned
bytes)
Once you have constructed the VIs for this lab (source.vi and error detect.vi), be sure to appropriately edit the icon of each VI and connect all of the
relevant terminals. Now you are ready to replace the corresponding blocks
inside the simulator provided to you (shown in Figure 2). After placing your
code in the simulator and verifying that it works correctly, observe what
happens to the bit-error rate as you decrease the noise power in the simulator.
(Note: If your subVI appears greyed out after placing it in the simulator, right
click the subVI and choose "relink subVI" to fix this issue)
1 Hint: There are a number of ways to generate a random bit sequence in LabVIEW. For
instance, you could do it using the random number generator provided in the Numeric palette,
or you could just use the Generate Bits.vi module located in the Digital palette (see Modulation
Toolkit palette).
i
i
i
book2 2011/10/28 14:05 page 8 #20
INPUTS
OUTPUTS
estimated
bit
sequence
array of U8
key bit
sequence
array of U8
bit-error
rate
DBL
(double
precision)
The simulator will allow you to run multiple iterations and collect statistics
from these runs. In this case, you will only be concerned with the bit-error
rate (BER) statistics (i.e., the average BER).
Plot a curve of the average bit-error rate versus 1/N0 over a number of
trials, where N0 is the noise power (realize N0 is given in dB in the simulator).
It is sufficient to vary noise power from 10 dB to 0 dB in 2 dB steps. Use
BPSK modulation and choose an input length of 200 bits. Note that in order
to observe a nonzero error for low noise powers you may need to run in excess
of 104 iterations.
linear
HINT: (X/Y ) in dB is equal to 10 log X
Ylinear , where XdB
= 10 log(Xlinear ) and YdB = 10log(Ylinear ). The ( )linear is a linear scale
value, not dB.
Pre-Lab Turn In
Submit your implementations of source.vi and error detect.vi. Turn in your
plots of average bit-error rate (BER) versus 1/N0 .
A typical example of a bit-error-rate plot is shown in Figure 4. You may
use LabVIEW, Excel, or any other graphing utility to generate these plots
(i.e., you only need to use LabVIEW to generate the data, not necessarily to
generate the plots).
2 The Hamming distance of two bit sequences is equal to the number of positions in which
the sequences differ.
i
i
i
book2 2011/10/28 14:05 page 9 #21
Figure 4: BER plot for BPSK and QPSK modulation in AWGN channel.
Lab Experiment
Lab Report
After most labs you will write a lab report. You will only turn in one lab
report per lab. This means that if a lab has multiple parts (e.g., Parts 1 and 2
of Lab 1), you will only be required to turn in one lab report. The contents of
this report will be explicitly stated in the lab draft. Note: This means that you
will not be submitting a lab report for this part of Lab 1. Upon completion
of Part 2 of Lab 1, you will be required to generate a lab report.
i
i
i
book2 2011/10/28 14:05 page 10 #22
Summary
In this part of the introductory lab you will learn about the NI RF hardware
to be used in the Wireless Communications Lab. You will acquaint yourself
with the relevant documentation and references available to you with regard
to the RF hardware. You will build some simple example VIs from the NI
documentation and use some of the existing LabVIEW tools (e.g., RF Signal
Analyzer Demo Panel). In the final part of this lab you will explore some of
the VIs that you will use in future labs to control the RF hardware. This part
of Lab 1 introduces NI RF hardware as a tool for digital communication, and
gets you familiar with the help/documentation available for the hardware you
will be working with throughout the course.
In this lab, for the pre-lab, you are required to turn in only the questions
given in Section 2. There are no pre-lab VIs for this lab. As a part of the
lab session, you will construct two VIs by following the instructions given in
the NI documentation. The questions given in Section 3 need to be answered
during the lab only. Please do not submit the answers to these questions with
your pre-lab. At the end of this lab, you will submit a lab report, the details
of which are given at the end of this document.
RF Hardware in Wireless
Communications Lab
In this course you will use software recofigurable RF hardware from National
Instruments to build a digital communication system. This hardware can be
easily configured using LabVIEW. The RF Hardware used in the lab is the
National Instruments USRP (Universal Software Radio Peripheral). Figure 1
shows a USRP connected to a PC (running LabVIEW). This PC controls the
USRP through the gigabit ethernet cable connecting the two together. In this
section you will learn more about these modules.
10
i
i
i
i
book2 2011/10/28 14:05 page 11 #23
11
1.1
NI USRP (Transmit)
1.2
NI USRP (Receive)
The NI USRP is also capable of receiving, and does so in the following manner. The received signal is mixed with a desired carrier frequency in order
to down-convert it to a complex IQ baseband signal sampled at 100 MSamples/second. The digital signal is then downsampled to a rate specified by
the user and passed to the host PC for processing.
When the ADC of the NI USRP samples at the full digitizer rate
(100 MSamp/sec), it can acquire a bandwidth of 20 MHz. Sampling at
such a high rate with high resolution (14 bits) produces a large amount of
data. However, to acquire a signal with smaller bandwidth (a narrowband
signal), it is sufficient to sample at a rate twice that of the signal bandwidth1 .
1 This sampling rate is known as the Nyquist rate of the system. It is the minimum sampling
rate required to reproduce a bandlimited signal from discrete samples.
i
i
i
book2 2011/10/28 14:05 page 12 #24
12
Pre-Lab
Review the documentation for the USRP (HelpNI-USRP Help). You will
find that the help files found under DevicesNI USRP-292x Specifications
and Devices NI USRP-2920 contain the most comprehensive information
about the USRP. For a deeper understanding of the specifications, please refer
to the following documents:
Bandwidth, Sample Rate and Nyquist Theorem [8]
Understanding RF & Microwave Specifications - Part I [14]
Understanding RF & Microwave Specifications - Part II [15]
Answer the following questions about the USRP after reading through the
help files.
1. What is the range of allowable carrier/center frequency supported by
the NI-USRP?
2. What is the maximum allowable bandwidth supported by the NI-USRP?
3. What is the maximum sampling rate of the NI-USRP?
4. Why do you think the DDC is implemented? What is its main benefit?
Answer the following general concept questions using [8], [14] and [15].
1. In your own words, describe what the bandwidth of an instrument is.
i
i
i
book2 2011/10/28 14:05 page 13 #25
13
Pre-Lab Turn In
Submit your answers for all of the above pre-lab questions. As a reminder,
this is all that you need to turn in for the pre-lab. There are no pre-lab VIs to
be submitted for this lab.
Lab Experiment
3.1
For the first task in this lab you will build a basic sine generation VI described below. After you have completed building this example VI, verify
that the block diagram of your VI resembles Figure 2, and that the front panel
resembles Figure 3.
Use the following procedure to begin using the NI USRP to generate a
signal:
1. Select StartProgramsNational InstrumentsLabVIEW
2010LabVIEW to launch LabVIEW. The LabVIEW dialog appears.
2. Click New, choose Blank VI, and click OK to create a blank VI.
3. Display the block diagram by clicking it or selecting WindowShow
Block Diagram.
4. Navigate to the NI USRP VIs on the FunctionsInstrument I/O
Instrument DriversNI-USRPTX palette. With LabVIEW running, click here to find the NI USRP TX LabVIEW palette.
5. Create the block diagram shown in Figure 2 by placing the four core
VIs on the block diagram in the order they appear in the NI USRP RX
functions palette.
6. Hover the cursor over the device name terminal on the niUSRP Open
TX Session VI and right-click. Select CreateControl to create a
front panel field where you specify the NI USRP device name.
7. Hover the mouse tool over the IQ rate, carrier frequency, and gain
terminals of the niUSRP Configure Signal VI.
i
i
i
book2 2011/10/28 14:05 page 14 #26
14
i
i
i
book2 2011/10/28 14:05 page 15 #27
15
8. Right-click each terminal and select CreateControl from the shortcut menu to create frequency, IQ rate, and gain controls.
9. Display the front panel by clicking it or selecting WindowShow
Front Panel. Fields are displayed in which you can specify a frequency, IQ rate, and gain.
Continuous waveform generation is controlled by means of a STOP button.
A STOP button is typically used within a While Loop. This example places a
While Loop around the Write TX Data VI so that signal generation continues
until you click STOP.
Build a While Loop and STOP button by completing the following steps:
1. Display the block diagram by clicking it or selecting WindowShow
Block Diagram.
2. Select the While Loop on the All FunctionsStructures palette. With
LabVIEW running, click here to find the While Loop on the Structures
palette.
3. Enclose the niUSRP Write TX Data (Poly) VI in the While Loop.
4. Hover the mouse tool over the Loop Condition terminal of the While
Loop.
5. Right-click the Loop Condition terminal and select Create Control
from the shortcut menu to create a STOP button on the VI front panel.
i
i
i
book2 2011/10/28 14:05 page 16 #28
16
Now we need to produce a waveform to be transmitted. We will be transmitting a sinusoid at a carrier frequency that is specified by the carrier frequency control. This means that the baseband signal we will be passing to
the NI USRP is simply a constant signal. To generate this signal, complete
the following steps:
1. Using the quick-drop functionality described in Lab 1, Part 1, place the
Initialize Array function down on the block diagram.
2. Right-click the element input of the Initialize Array function and select CreateConstant. Double-click on the constant that was created
and change it to 1.
3. Right-click on the dimension size input and select CreateControl.
4. Wire the output of the Initialize Array function block to the data input
of the niUSRP Write Tx Data (poly) VI.
5. Finally, wire the STOP button that was created for the While Loop to
the end of data? input of the niUSRP Write Tx Data (poly) VI and
select CDB from that VIs drop down menu.
Remember that in order to operate your sine generation VI, you must
properly configure the USRP IP Address for the USRP (an input to niUSRP
Initialize.vi). You can find the IP addresses for all of the USRP devices
connected to your PC by using the NI-USRP Configuration Utility. Once
that is properly configured, set the rest of the parameters as follows and run
the VI:
carrier frequency = 2.4 GHz
IQ rate (samples/s) = 400k
gain (dB) = 20
waveform size = 10000
active antenna = TX1
You will now test your VI using the niUSRP EX Spectral Monitoring
(Interactive) VI, which can be found in the Functions palette. This spectrum
analyzer tool will allow you to observe the frequency domain response of your
basic sine wave transmitted over a wireless link. The following directions
describe the basic operation of the Spectral Monitoring VI.
i
i
i
book2 2011/10/28 14:05 page 17 #29
17
1. First, open the Spectral Monitoring VI. This can be accessed from
Functions PaletteInstrument I/OInstrument Drivers
NI-USRPExamplesniUSRP EX Spectral Monitoring (Interactive).vi.
2. Verify that the USRP IP Address match the values specified in the
NI-USRP Configuration Utility.
3. After opening the example VI, you will want to modify the hardware
settings on the front panel. Use the parameters listed below for this
experiment.
Center Frequency = 2.4 GHz
IQ Sampling Rate [s/sec] = 400k
Acq Duration [sec] = 50m
Questions
Answer the following questions regarding the NI USRP.
1. What is the IP Address for your NI USRP?
2. Describe what happens to the spectral response of the transmitted signal
when you place an obstruction between the antenna of transmitter and
that of the receiver (i.e., blocking the line of sight component of the
waveform).
Turn In
Demonstrate to the instructor that your basic sine generation VI is working
properly. You will need to start the Spectral Monitoring VI and show that
your basic sine generation VI produces a carrier signal at 2.4 GHz.
Submit your answers to the above questions in your lab report. More
details about the requirements for the lab report are discussed near the end of
this document.
3.2
In the second part of this lab experiment you will build a Continuous IQ
AcquisitionVI and it should look like the Continuous IQAcquisitionVI shown
in Figure 4. Add all of the appropriate controls and indicators necessary to
control the sub-VIs in your code.
i
i
i
book2 2011/10/28 14:05 page 18 #30
18
i
i
i
book2 2011/10/28 14:05 page 19 #31
19
To test your acquisition VI, you will graph the real and complex parts of
the signal acquired by niUSRP Fetch Rx Data (poly).vi. To do this:
1. Place two waveform graphs on the front panel of your VI. These can be
accessed from the All Controls tool palette (All ControlsGraph
Waveform Graph.vi).
2. Retrieve the real and imaginary waveform components from the IQ
Waveform output of niUSRP Fetch Rx Data (poly).vi. Use Get Complex
IQ Component.vi to retrieve these components from IQ Waveform. This
VI can be accessed from the All Functions tool palette on the block diagram (All FunctionsModulationAnalogUtilitiesGet Complex IQ Component.vi).
3. On the block diagram, connect the terminal for each waveform graph
to its corresponding waveform for the real and imaginary parts of the
acquired signal (inside of the While-Loop structure).
You will use the basic sine generation VI created in the previous section
to test your acquisition VI. In order to do so, you must first set up the parameters for the receiving USRP. Set the input parameters for niUSRP Configure
Signal.vi listed below. Notice the carrier signal generated by your basic sine
generation VI will be offset from the center frequency of your acquisition VI,
effectively creating a 100 kHz single-sideband (SSB) modulated waveform
at baseband.
Carrier Frequency = {2.4001 GHz @ transmitter} and {2.4 GHz @
receiver}
IQ rate = 800k
gain = 20 dB
number of samples = 10000
active antenna = RX1
You should now be ready to continuously acquire a signal. After setting
the parameters described above, run both VIs and observe the in-phase and
quadrature-phase waveforms (i.e., real and imaginary parts respectively) of
the acquired signal.
Questions
Answer the following question about the NI USRP.
1. What are the three elements in the data cluster output from niUSRP
Fetch Rx Data (poly).vi? Give the name and data type of each element.
i
i
i
book2 2011/10/28 14:05 page 20 #32
20
Turn In
Demonstrate to the instructor that your acquisition VI is working properly. It
must correctly display both I and Q phases of the acquired signal.
Submit your answers to the questions in your lab report.
3.3
Looking Ahead
For the rest of this course, VIs for RF hardware configuration and operation
will be provided to you. This will allow you to focus on the details of the
digital communications algorithms you will be implementing. Even though
you will be provided with the VIs necessary for controlling the RF hardware,
you will be expected to understand what these VIs do and how they work.
You will be using the VIs listed below in lab to configure and operate the
RF hardware. Explore the front panels and block diagrams of these VIs.
TXRF init.vi - initializes a USRP transmit session with the appropriate
RF parameters.
TXRF send.vi - executes a transmit operation (i.e., sends a complex
waveform), and closes the USRP session.
RXRF init.vi - initializes an USRP receive session with the appropriate
RF parameters.
RXRF recv.vi - acquires a complex waveform, and closes the USRP
session.
Questions
Answer the following questions about the VIs you will be using in lab. Hint:
The help files for VIs can be accessed from the block diagram. Right-click on
the VI you wish to find out more about and select Help.
1. In RXRF config.vi the IQ rate parameter is used by niUSRP Configure
Signal.vi. Can the USRP support any arbitrary IQ rate? If not, what will
the USRP do when an unsupported bandwidth parameter is requested?
Turn In
Submit all of your answers in your lab report.
i
i
i
book2 2011/10/28 14:05 page 21 #33
21
i
i
i
book2 2011/10/28 14:05 page 22 #34
Summary
In Lab 2, you will build a baseband digital modem that can use binary phaseshift keying (BPSK) or quadrature phase-shift keying (QPSK) modulation.
The complexity of the transmitter and the receiver will grow in subsequent
labs as more kinds of receiver impairments are considered. The main concepts in this lab include constellation mapping, oversampling, pulse shaping,
matched filtering, maximum-likelihood detection, and probability of error
calculation.
The system considered in this lab is illustrated in Figure 1. This modem
transmits symbols and applies a detection algorithm assuming only an additive white Gaussian noise (AWGN) channel. The transmitter maps bits to
elements of a symbol constellation. The sequence of symbols is upsampled
then filtered in discrete-time by a transmit pulse shape. The filtered sequence
Transmitter
bits
Symbol
Mapping
s[n]
gTX [n]
D/C
x(t)
x(t )
Tx
v(t)
AWGN Channel
Ex
z(t) =x(t)+v(t)
Receiver
z (t )
C/D
g RX [n]
M
M
Detection
y[n]
Inverse
Symbol Map
bits
Tz
Figure 1: The system under consideration in this lab. The transmitter uses digital
pulse-shaping and upsampling to create the transmit waveform. The baseband signal
encounters additive white Gaussian noise during transmission. The receiver uses
digital pulse-shaping and downsampling, followed by detection, to find a good guess
of the transmitted symbols.
22
i
i
i
i
book2 2011/10/28 14:05 page 23 #35
23
Background
1.1
Modulation
i
i
i
book2 2011/10/28 14:05 page 24 #36
24
The entries of the constellation are different (possibly complex) values. The
size of the constellation, or cardinality, is denoted |C| = M where M is
the number of symbols in the constellation. For practical implementation
M = 2b where b is the number of bits per symbol so that a group of b input
bits can be mapped to one symbol.
This lab considers two of the most common modulations found in commercial wireless systems.
Binary Phase Shift Keying (BPSK) has
C = {+1, 1}.
This is arguably the simplest constellation in use. The bit labeling is
provided in Table 1. BPSK is a real constellation since it does not
contain an imaginary component.
Quadrature phase shift keying (QPSK) is a complex generalization of
BPSK with
C = {1 + j, 1 + j, 1 j, 1 j, }.
Essentially QPSK uses BPSK for the real and BPSK for the imaginary component. QPSK is also known as 4-QAM. The bit labeling is
provided in Table 1.
For implementation and analysis, it is convenient to normalize the constellation to have unit energy. This means scaling the constellation such that
M1
1
|sm |2 = 1.
M
m=0
Ex
s[n]gtx (t nT ).
(1)
n=
The scaling factor Ex is used to model the effect of adding energy or power
to x(t). The scaling factor will be added typically in the RF by controlling
the gain of the transmit power amplifier. The pulse-shape is given by the
function gtx (t). To preserve energy, the pulse-shaping function is assumed
i
i
i
book2 2011/10/28 14:05 page 25 #37
25
Im
(00)
(01)
Re
(10)
(11)
4-QAM
Symbol
1
1
(a)
Input Bits
00
10
11
01
Symbol
1+j
1 + j
1 j
1j
(b)
Table 1: Symbol Constellation Mappings for (a) BPSK and (b) QPSK
i
i
i
book2 2011/10/28 14:05 page 26 #38
26
signal will be xp (t) = Re{x(t)} cos(2fc t) Im{x(t)} sin(2fc t). Upconversion is performed in the analog hardware. The signal xp (t) will be
launched from the transmit antennas into the propagation environment.
For practical implementation, the pulse-shaping is performed in discretetime. One way to implement the pulse-shaping is illustrated in Figure 1.
The idea is to use a discrete-to-continuous converter operating with a sample
period of Tx = T /L where L > 0 is an integer that denotes the oversampling
factor. The symbol sequence is upsampled by L and then filtered by the
oversampled pulse-shaping filter defined by gtx [n] := gtx (nTx ).
1.2
i
i
i
book2 2011/10/28 14:05 page 27 #39
27
(3)
where fy|s () is the conditional distribution of y[n] given s[n] and is known
as the likelihood function. For additive white Gaussian noise, the conditional
probability has a simple form. This allows the detection problem in Eq. (3)
to be simplified to
s [n] = arg min ln fy|s (y[n]|s[n] = s) = arg min |y[n] Ex s|2 . (4)
sC
sC
Pre-Lab
To prepare for this part of the lab you will be required to build the modulation
and decoding blocks of Figure 1. Tables 2 and 3 describe the details of the
VIs you must implement. Plug your code into transmitter.vi and receiver.vi
and run Simulator.vi (see the VI hierarchy in Figure 3) to verify functionality
and correctness. Do not use the Modulation Toolkit (MT) VIs to implement
these two VIs (i.e., do not just create a wrapper around an MT VI).
Note: From this point forward, please uniquely name your VIs so that
they do not exactly match those of the VIs in the simulator (i.e., instead of
modulate.vi, use yourname modulate.vi).
Note that both modulate.vi and decode.vi do not have an input to specify
modulation type. Modulation type is a parameter that can be found bundled
in the Modulation Parameters cluster, which has already been inserted into
the template VIs for you.
i
i
i
book2 2011/10/28 14:05 page 28 #40
28
INPUTS
OUTPUTS
modulation
type
array of U8
(unsigned
bytes)
string
Symbol
Energy
double
output
symbols
array of CDB
(complex
doubles)
OUTPUTS
input
symbols
array of CDB
(complex
doubles)
estimated
bit
sequence
array of U8
(unsigned
bytes)
You have been provided with templates for the VIs you need to create for
this lab that already have all the inputs and outputs wired for you. What
is required of you is to finish constructing the block diagram to provide the
functionality of the VIs.
Throughout the course, several of the VIs you will create will have a
modulation parameters cluster passed into and out of them. The modulation
parameters in contains many of the parameters needed by your VIs and will
be unbundled from them. This has already been done for you in the template
VIs if necessary. Some VIs will also have modulation parameters out, so that
the cluster can be passed on through to the VIs that follow. Please ensure that
these clusters remain wired the way they are in the template VIs, as changing
how they are wired will cause VIs further down the line to break.
i
i
i
book2 2011/10/28 14:05 page 29 #41
29
Error clusters will allow you to propagate error messages through your
code, which will help in debugging your LabVIEW code. If a subVI in your
code requires an error cluster as an input, wire error in to the appropriate
subVI before passing it on to error out; otherwise, directly connect these two
terminals together.
After you have created your subVIs properly (i.e., wiring all inputs and
outputs and editing the icon appropriately), insert them into the simulator
provided to you for this lab. To do this, first open up transmitter.vi and
receiver.vi and replace the modulate and decode subVIs with your own (refer
to Figures 5 and 6 for where to find these subVIs in the block diagrams).
Then you can open up Simulator.vi and, using the default parameters, run
the simulator to verify that your VIs operate according to the specifications
provided in Tables 2 and 3.
Using the simulator and the code you have written, plot average bit-error
rate (BER) versus signal-to-noise ratio as in Part 1 of Lab 1, but make sure to
obtain data for both BPSK and QPSK modulation1 . Remember that if signal
power is held constant, then decreasing noise power, N0 , is equivalent to
increasing SNR [i.e., you can assume unit power, giving SNR = N0 (in dB)].
Also, to observe errors at high SNR (or low N0 ) you need to run significantly
more iterations in the simulator.
1 Please ensure that the y-axis is in a logarithmic scale.
i
i
i
book2 2011/10/28 14:05 page 30 #42
30
Pre-Lab Turn In
1. Submit your implementation of modulate.vi and decode.vi. Remember,
you will be penalized if you do not wire the error cluster inputs and
outputs in your code. Note: If you need to generate any additional
subVIs for this or any future labs, please submit these subVIs along
with your other pre-lab VIs.
2. Turn in a plot which compares the BER curves for BPSK and QPSK
modulation. You will need to collect average BER statistics using your
code for SNR values of 0 to 10 dB (in 2 dB increments). Remember to
use a logarithmic scale for BER and a dB scale for SNR in your plot2 .
You must use your LabVIEW code to generate the data for your plots.
3. Submit your answers to all of the questions in the pre-lab section.
Lab Experiment
In this lab you will run your implementation of modulate.vi and decode.vi
over a real wireless link. Remember to use your version of source.vi and
error detect.vi, which you have already built in Part 1 of Lab 1. Using your
ES
2 HINT: If X is a real number, then X
dB = 10 log X. Thus, SN RdB = 10 log( N ), where
ES is the average signal power (or symbol energy) and N0 is average noise power.
i
i
i
book2 2011/10/28 14:05 page 31 #43
31
code from Part 1 of Lab 1 in conjunction with the new blocks you have created,
you will complete the framework for the transmitter and receiver blocks in
lab. This framework will be provided in lab. The task of plugging your code
into this framework may seem trivial at this point, but as the course progresses
you will incrementally re-implement each block in the framework.
Figure 4 describes the hierarchy of files you will be using in lab. Rounded
rectangles in the block diagram represent files which you will be able to
alter. The files top tx.vi and top rx.vi are the top level of the transmitter and
receiver respectively. This level connects the digital communications blocks
of the transmitter and receiver (in transmitter.vi and receiver.vi) with the
VIs needed to control the NI RF hardware. You explored the RF hardware
and these control VIs in Lab 1, and will need to recall how to modify the
parameters/settings for the RF hardware using these VIs.
3.1
i
i
i
book2 2011/10/28 14:05 page 32 #44
32
Similarly, you will need to replace decode.vi and error detect.vi in receiver.vi with your code. The block diagram of receiver.vi is shown in Figure 6. Add error cluster appropriately.
3.2
Before you begin testing your code over a real wireless link, set the following
baseband parameters on the front panel of top tx.vi and top rx.vi:
Packet length = 100 bits
Modulation type = QPSK
Leave all other modulation parameters set to their default value. The
following RF parameters have already been set up in the HW parameters tab
of top tx.vi and top rx.vi for you:
Carrier frequency
TX Gain
RX Gain
Trigger Level
Capture Time
The wireless digital communication system used in lab generates a small
burst of data, transmits it over a wireless link, and decodes the received signal.
To run the system:
1. Start the top level of your transmitter (i.e., run top tx.vi).
2. Wait until the Transmitting indicator is lit.
3. Start the top level of your receiver (i.e., run top rx.vi).
i
i
i
book2 2011/10/28 14:05 page 33 #45
33
i
i
i
book2 2011/10/28 14:05 page 34 #46
34
Open the front panel of top rx.vi to see the constellation of the received
signal. Note that a queue has been used to pass the key bit sequence to the
receiver for error detection. Also notice, on the front panel of top tx.vi there
is a control for the channel model parameters used by transmitter.vi. These
parameters are used to apply a desired channel model to the transmitted signal.
The real wireless channel will convolve with this artificially imposed channel
model to create a kind of equivalent channel.
Answer the following questions about the digital communication system
in lab:
1. What is the name of the queue used to pass the generated bit sequence
from top tx.vi to top rx.vi (i.e., the bit sequence needed to perform error
detection)?
2. Describe what happens to the received constellation as you increase
noise power in the top level of the transmitter, (i.e., top tx.vi).
3. Based on your observation of the received signal constellation, explain
which modulation scheme (BPSK or QPSK) performs better (on average) in noisy channels, and why. Assume that both schemes are using
the same average symbol energy.
Lab Turn In
Demonstrate to the instructor that your code is working properly. You will
need to show the instructor that both BPSK and QPSK modulation work in
your system. Please answer the questions above. You will be required to
submit these answers in a future lab report (i.e., in Lab 2, Part 2).
i
i
i
book2 2011/10/28 14:05 page 35 #47
bits
Symbol
Mapping
s[n]
gTX [n]
D/C
x(t)
x(t )
Tx
v(t)
AWGN Channel
Ex
z(t) =x(t)+v(t)
Receiver
z (t )
C/D
g RX [n]
M
M
Detection
y[n]
Inverse
Symbol Map
bits
Tz
Figure 1: The system under consideration in this lab. The transmitter uses digital
pulse-shaping and upsampling to create the transmit waveform. The baseband signal
encounters additive white Gaussian noise at the receiver. The receiver uses digital
pulse-shaping and downsampling, followed by detection, to find a good guess of the
transmitted symbols. Symbol synchronization could be included as well but is not
illustrated in the figure.
i
i
i
book2 2011/10/28 14:05 page 36 #48
36
In this lab, you will have to turn in twoVIs (pulse shaping.vi and matched filtering.vi), and answer the questions given in Section 2, as part of the pre-lab
submission. The lab reports for Parts 1 and 2 of Lab 2 have to be submitted
as a single lab report at the end of this lab.
The objective of the course is to construct the digital signal processing blocks
necessary to operate a wireless digital communication link. A digital signal
(from the digital source, constructed in Part 1 of Lab 1) can not be transmitted
over a communication channel. The digital signal needs to be mapped to an
analog waveform that can easily be transmitted over the channel.
The model for transmission and reception considered in Lab 2 is illustrated
in Figure 1. The transmitter creates a complex pulse amplitude modulated
signal of the following form:
x(t)
Ex
s[n]gtx (t nT ).
(1)
n=
i
i
i
book2 2011/10/28 14:05 page 37 #49
37
gtx (t) since the pulse-shaping function is usually real. This means
that the receive filter is a matched filter. Effectively the filtering by grx (t)
becomes a correlation with gtx (t) thanks to the relationship between
convolution and correlation. The choice of a matched filter maximizes
the received signal-to-noise ratio and thus gives the maximum likelihood detector its best performance.
The composite filter g(t) = grx ( )gtx (t )dt is a Nyquist pulse
shape. This means that it satisfies g(nT ) = [n]. The Nyquist pulseshape property eliminates intersymbol interference, allowing the detector to take a very simple form as described in Part 1 of Lab 2.
Defining the bandwidth of the transmitted signal x(t) requires some mathematical subtleties. From the perspective of measuring the power spectrum
of a signal, the following definition of power spectrum for the transmitted
signal is sufficient:
(2)
Px (f ) Ex |Gtx (f )|2
where it is assumed that the transmit constellation is normalized to unit energy.
It is clear that |Gtx (f )|2 determines the bandwidth of x(t), where Gtx (f ) is
the frequencyresponse of the pulse-shape gtx (t). By normalizing the transmit
pulse shape, f Px (f )df = Ex where Ex is known as the symbol energy
and Ex /T as the power.
A simple choice for gtx (t) is the rectangular pulse-shape. Unfortunately,
such a pulse-shape would have poor spectral properties, since the Fourier
transform of a rectangular function is a sinc function. This means that a lot
of bandwidth would be required to transmit the signal.
Another choice for gtx (t) is the sinc function. A sinc pulse has ideal
)
spectral properties. For example, if gtx (t) = sin(t/T
then Gtx (f ) = T
t/T
for f [1/2T , 1/2T ] giving an absolute bandwidth of 1/2T . This is
the smallest bandwidth a complex pulse amplitude modulated signal could
have with symbol rate 1/T . Unfortunately the sinc pulse shaping filter has a
number of problems in practice. Ideal implementations of g(t) do not exist in
analog. Digital implementations require truncating the pulse shape, which is a
problem since it decays in time with 1/t. Further the sinc function is sensitive
i
i
i
book2 2011/10/28 14:05 page 38 #50
38
to sampling errors (not sampling at exactly the right point). For these reasons
it is of interest to consider pulse shapes that have excess bandwidth, which
means the double sided bandwidth of the pulse-shape is greater than 1/T .
1.1
The most common Nyquist pulse, besides the sinc pulse, is the raised cosine.
The raised cosine pulse-shape has Fourier spectrum
T,
T
1 + cos T
|f |
Grc (f ) =
2
0,
1
2T
0 |f | (1 )/2T
,
1
2T
|f | >
1+
2T
1+
2T
and transform
grc =
sin[(1)t/T ]
4 cos [(1 + ) t/T ] +
4t/T
.
1 (4t/T )2
T
Of particular interest note that gsqrc (t) is even, thus if gtx (t) = gsqrc (t) then
grx (t) = gtx (t) = gtx (t) and the transmit pulse shape and receive pulse
shape are identical. The square root raised cosine is its own matched filter!
i
i
i
book2 2011/10/28 14:05 page 39 #51
39
Figure 2: Spectral response of the raised cosine pulse shaping function g(t).
1.2
Recall that the Nyquist theorem states it is sufficient to sample a given signal at
a sampling frequency is at least twice the largest frequency in the signal, to be
able to reconstruct the signal effectively. Sampling at a rate higher than what
is required by the Nyquist theorem is known as oversampling. Oversampling
at the analog front ends of a digital communication system (DAC and ADC)
will make the design of all the filters much simpler. The increased bandwidth,
due to a larger sampling frequency, will relax the sharp cutoff requirements on
the filters needed to remove aliasing effects. Oversampling in digital systems
is also important for efficient synchronization.
The upsampling and downsampling processes are critical in order to reap
the benefits of oversampling. Upsampling a sequence {s[n]} by a factor L is
equivalent to inserting L 1 zeros between every sample of the sequence.
Downsampling a sequence {y[n]} by a factor M is equivalent to throwing
away M 1 out of every M symbols (i.e., ydownsamp [k] = y[kM]). Upsampling and downsampling are used to facilitate the digital implementation
of gtx (t) and grx (t).
i
i
i
book2 2011/10/28 14:05 page 40 #52
40
Simple explanations of transmit and receive pulse shaping using the concepts of upsampling and downsampling are provided in this lab. More efficient implementation computationally is possible using filter banks but that
is not required to complete the assignment.
Transmit Pulse Shaping
The challenge with implementing transmit pulse shaping is that the symbol
rate may be less than the sample rate required for pulse shapes with excess
bandwidth. For example, for a square root raised cosine pulse shape, the
Nyquist rate is (1 + )/T while the symbol rate is only 1/T .
Let Tx be some sampling period such that 1/Tx is greater than twice the
maximum frequency of gtx (t). For simplicity we take Tx = T /L. Other
choices of Tx would require a resampling operation. The continuous-time
complex baseband signal is
x(t) =
Ex
s[n]gtx (t nT ).
(3)
n=
Since x(t) is bandlimited by virtue of the bandlimited pulse shape gtx (t),
there exists a sequence {c[n]} such that
x(t) =
sin((t nTx )/Tx )
Ex
c[n]
,
(t nTx )/Tx
n=
=
=
m=
s[m]gtx (nTx mT )
s[m]gtx [n mL],
(4)
m=
where gtx [n] = gtx (nTx ). Using multi-rate signal processing identities, it
can be shown that Eq. (4) is the result of upsampling s[m] by L, then filtering
with gtx [n].
Receiver Pulse Shaping
It is easier to justify the digital implementation of receiver pulse shaping.
Let z(t) denote the complex baseband input to the continuous-to-discrete
converter. Assume that z(t) has already been bandlimited by the RF in the
i
i
i
book2 2011/10/28 14:05 page 41 #53
41
analog front end. Let Tz = T /M for some integer M such that 1/Tz is
greater than the Nyquist rate of the signal. This is known as oversampling.
Let z[n] := z(nTz ). Using results on filtering bandlimited signals, it can be
shown that
y[n] = grx ( )z(nT ) = Tz
z[m]grx ((nM m)Tz ) (5)
m=
(6)
m=
where grx [n] = Tz grx (nTz ). Using multi-rate signal processing identities, it
can be shown that Eq. (6) is the result of downsampling the filtered oversampled signal z[n] by grx [n].
1.3
Pre-Lab
To prepare for this part of the lab you will be required to build the pulse
shaping and matched filtering blocks of Figure 1. Tables 1 and 2 describe
the details of the VIs you must implement. You will plug your code into
receiver.vi and transmitter.vi and run the simulator provided to you in order
i
i
i
book2 2011/10/28 14:05 page 42 #54
42
array of CDB
(complex
doubles)
output
array of CDB
INPUTS
OUTPUTS
INPUTS
OUTPUTS
input
complex
waveform
IQ Waveform
cluster1
received sequence
output
complex
waveform
IQ Waveform
cluster
to verify functionality and correctness. Please name your VIs as per the
convention yourname VIname.vi.
You have been provided with templates for the VIs you need to create for
this lab that already have all the inputs and outputs wired for you. What
is required of you is to finish constructing the block diagram to provide the
functionality of the VIs.
Throughout the course, several of the VIs you will create will have a
modulation parameters cluster passed into and out of them. The modulation
parameters in contains many of the parameters needed by your VIs and will
be unbundled from them. This has already been done for you in the template
VIs if necessary. Some VIs will also have modulation parameters out, so that
the cluster can be passed on through to the VIs that follow. Please ensure that
these clusters remain wired the way they are in the template VIs, as changing
how they are wired will cause VIs further down the line to break.
Figure 3 shows the dependencies between the files that make up the simulator. The top level of this simulator, simulator.vi, connects top tx.vi to
1 IQ Waveform clusters contain three elements: t0, dt, and Y. Please recall from Part 2 of
Lab 1 what these elements are and what their data types are.
i
i
i
book2 2011/10/28 14:05 page 43 #55
43
top rx.vi and provides each with the appropriate inputs. The parts of the
simulator you will be modifying are located in transmitter.vi and receiver.vi
shown in Figures 4 and 5 respectively.
You will be putting your VIs into transmitter.vi and receiver.vi, replacing
the locked versions that are already there. After doing this, you will then
open up simulator.vi, that you will use to confirm your VIs operate correctly
before implementing them on the NI-USRP.
Notice that pulse shaping.vi and matched filtering.vi do not take any parameters as inputs. All of the pulse shaping and oversampling parameters you
need to use for these VIs can be accessed from the modulation parameters in
cluster. After building these VIs, replace the existing code in the simulator
with your code. Replace a subVI in the transmitter or receiver with your code
i
i
i
book2 2011/10/28 14:05 page 44 #56
44
i
i
i
book2 2011/10/28 14:05 page 45 #57
45
i
i
i
book2 2011/10/28 14:05 page 46 #58
46
Figure 6: Eye diagram for sinc pulse shape in the absence of noise.
Questions
Answer the following questions, and submit the answers as part of your prelab.
1. MT Generate Filter Coefficients.vi requires an input for the number
of pulse shaping samples per symbol. This tells the VI the oversample factor being used to design the filter. When using this VI in
pulse shaping.vi, where do you obtain this parameter from? Give any
relevant cluster names and/or variable names if appropriate.
2. According to [1], impairments visible in the eye diagram can occur
at many places along the communication path (i.e., from source to
sink). What are some of the places where impairments visible in the
eye diagram might occur (name at least three)?
3. When using inconsistent sampling rates at the transmitter and receiver,
it is important to remember that the symbol rate (1/Ts ) must remain
constant.
(a) In terms of the sampling rates at the transmitter and receiver
(1/TM and 1/TN respectively), what is the relation between the
oversample factor at the transmitter (M) and receiver (N )?
T
(b) What can you say about the type of number the ratio of M
TN
(i.e., the ratio of the sampling rate of the receiver to that of the
transmitter) must be?
Hint: Note that M and N must be positive integers.
i
i
i
book2 2011/10/28 14:05 page 47 #59
47
Pre-Lab Turn In
1. Submit your implementation of pulse shaping.vi and matched filtering.vi. Remember, you will be penalized if you do not wire the error
cluster inputs and outputs in your code.
Note: If you need to generate additional subVIs for this or any future
labs, please submit these subVIs along with your other pre-lab VIs.
2. Submit your answers to all of the questions in the pre-lab section.
Lab Experiment
In this lab you will run your implementation of pulse shaping.vi and matched
filtering.vi over a real wireless link. Using your code from the prior labs in
conjunction with the new blocks you have created, you will complete the
framework for the transmitter and receiver blocks in this lab. This framework
will be provided to you as in the Part 1 of Lab 2.
Figure 7 describes the hierarchy of files you will use in this lab. Rounded
rectangles in the block diagram represent files you will be able to alter. The
files top tx.vi and top rx.vi are the top level of the transmitter and receiver
respectively. This level connects the digital communications blocks of the
transmitter and receiver (in transmitter.vi and receiver.vi) with the VIs needed
to control the NI-USRP. You explored the USRP and these control VIs in
Lab 1, and will need to recall how to modify the parameters/settings for the
USRP using these RF hardware VIs.
i
i
i
book2 2011/10/28 14:05 page 48 #60
48
3.1
Before you begin testing your code over a real wireless link, set the following
baseband parameters on the front panels of top tx.vi and top rx.vi:
Packet length = 200 bits
Modulation type = QPSK
Pulse shaping filter = Root Raised Cosine
Filter parameter = 0.5
Filter length = 8
Also make sure that the following RF parameter is set up appropriately
(using the HW parameters accessible on the front panel of top rx.vi):
Capture time = 2 msec
Let us digress now to clarify the operation of top rx.vi, the top level of
the receiver. The receiver has two states: (1) listen and (2) receive. Figure 8
shows a finite state diagram of the operation of the receiver. The RXRF recv.vi
features a digital triggering subVI. When this feature is enabled, the digitizer
will continually listen to the received signal until the energy of the incoming
signal crosses a predefined trigger level. Once this trigger occurs, the NIUSRP captures a window of samples, which it then passes to receiver.vi.
After processing the captured signal, the receiver returns to the listening
state. The receiver will periodically timeout while in the listen state to update
RF configuration parameters.
Now you are ready to test your code over a real wireless link. The wireless
digital communication system used in the lab generates a small burst of data,
i
i
i
book2 2011/10/28 14:05 page 49 #61
49
transmits it over a wireless link, and decodes the received signal. To run the
system:
1. Start the top level of your transmitter (i.e., run top tx.vi).
2. Wait until the Transmitting indicator is lit.
3. Start the top level of your receiver (i.e., run top rx.vi).
4. Open the front panel of top rx.vi to see the constellation and eye diagram of the received signal.
Note that a queue has been used to pass the key bit sequence to the receiver
for error detection. Also notice on the front panel of top tx.vi there is a control
for the channel model parameters used by transmitter.vi. These parameters
are used to apply a desired channel model to the transmitted signal. The real
wireless channel will convolve with this artificially imposed channel model
to create a kind of equivalent channel.
After you have verified the correct operation of your code using the parameters above, vary the input parameters to the system and observe how these
changes affect the eye diagram of the received signal. Some of the parameters
you might vary include noise power, pulse shape, filter parameter, or channel
model (e.g., you may enter your own channel impulse response using the ISI
channel model).
3.2
Questions
i
i
i
book2 2011/10/28 14:05 page 50 #62
50
Lab Turn In
Demonstrate that your code is working properly. You will need to show that
your pulse shaping VIs can work with a variety of pulse shaping parameters.
Also answer the questions above. You will be required to submit these answers
in your lab report.
i
i
i
book2 2011/10/28 14:05 page 51 #63
Lab 3: Synchronization:
Symbol Timing Recovery in Narrowband
Channels
Summary
In this lab you will consider the problem of symbol timing recovery also
known as symbol synchronization. Timing recovery is one of several synchronization tasks; others will be considered in future labs.
The wireless communication channel is not well modeled by simple additive white Gaussian noise. A more realistic channel model also includes
attenuation, phase shifts, and propagation delays. Perhaps the simplest channel model is known as the frequency flat channel. The frequency flat channel
creates the received signal
z(t)
ej x(t d ) + v(t),
(1)
z (t )
C/D
Tz =
zk
g RX [n]
M
k
T
M
Symbol
Sync
Figure 1: Receiver with symbol synchronization after the digital matched filtering.
51
i
i
i
i
book2 2011/10/28 14:05 page 52 #64
52
Lab 3: Synchronization
cost function. For the best performance, both algorithms require that there is
a lot of oversampling (i.e., M is large).
You will build two VIs, one for each of the two algorithms. After verifying
the correctness of your design using a simulator, you will implement your
code in lab using the NI-USRP hardware to see how your code works over a
real wireless link. The goal of this lab is to understand the need for symbol
timing recovery and the performance of two common symbol timing recovery
algorithms.
In this lab, you will have to turn in two VIs (align MaxEnergy.vi and
align ELgate.vi) and submit the answers to the questions in Section 2, along
with the plot depicting timing error statistics, as part of the pre-lab submission.
Background
This section provides some background on the timing recovery problem and
reviews the two algorithms that will be implemented in this lab. Remember
that you will be implementing these synchronization methods using a purely
digital approach.
1.1
Now let g(t) be the convolution of gtx (t) and grx (t). With the model in Eq. (2)
after matched filtering and sampling, the received signal is
s[m]g((n m)T d ) + v[m].
y[n] = Ex ej
m
i
i
i
book2 2011/10/28 14:05 page 53 #65
53
Lab 3: Synchronization
Intersymbol interference is created when the Nyquist pulse shape is not sampled exactly at nT. You will need symbol synchronization or equalization to
mitigate the effect of sample timing error.
Second, suppose that d = dT for some integer d. This is the case where
symbol timing has been resolved but an unknown propagation delay, which
is a multiple of the symbol period, remains. Under this assumption
y[n] =
Ex ej
s[m]g((n m)T d ) + v[m]
=
=
Ex e
Ex ej s[n d] + v[m].
Essentially integer offsets create a mismatch between the indices of the transmitted and receive symbols. You will need frame synchronization to find the
beginning of the data.
Third, suppose that the time error has been removed from the channel;
equivalently d = 0. Then
y[n] = Ex ej s[n] + v[m].
Sampling and removing delay leaves distortion due to and , which are
unknown to the receiver. The amplitude and phase shift will be estimated and
equalized in Lab 4 (the focus of this lab is on the unknown delay d ).
Ex |g(0)|2 + v2 .
i
i
i
book2 2011/10/28 14:05 page 54 #66
54
Lab 3: Synchronization
1.3
Let
r[n] =
z[m]gtx [n m]
be the output of the matched receiver filter. The discrete-time output energy
can be calculated as
J [k] = E |r (nMT + k)|2 ,
where k is the sample offset between 0, 1, . . . , M 1 corresponding to an
estimate of = kT /M. The expectation can be replaced with a time average
over P symbols to create the function
Japprox [k] =
P 1
1
|r (pMT + k)|2 .
P
(3)
p=0
The direct maximum output energy solution is given by k = max Japprox [k].
Because the receiver is only performing symbol synchronization, it is sufficient to evaluate Japprox [k] for values k = 0, 1, . . . , M 1. The resulting
value of k would be implemented in the advance operation in Figure 1 given
1.4
An alternative approach, useful for adaptive implementations, involves differentiating the cost function and discretizing the result. The approach here
follows the description from [6]. Differentiating the expectation and assuming they can be interchanged
d
d
2
|y (nTs + )|
Jopt ( ) E
d
d
i
i
i
book2 2011/10/28 14:05 page 55 #67
Lab 3: Synchronization
55
P
1
2Re r [nP + k] r [nP + k + ] r [nP + k ] . (4)
n=0
Pre-Lab
Programming
In this pre-lab you will generate LabVIEW code to estimate the direct maximization of the output energy in discrete time and the earlylate gate algorithm. Tables 1 and 2 describe the details of the VIs you must implement.
Please name your VIs as per the convention yourname VIname.vi.
i
i
i
book2 2011/10/28 14:05 page 56 #68
56
Lab 3: Synchronization
INPUTS
OUTPUTS
input
complex
waveform
IQ Waveform
cluster
output
complex
waveform
IQ Waveform
cluster
offset
I32 (integer)
computed offset
INPUTS
OUTPUTS
input
complex
waveform
IQ Waveform
cluster
output
complex
waveform
IQ Waveform
cluster
offset
I32 (integer)
computed offset
You have been provided with templates for the VIs you need to create for
this lab that already have all the inputs and outputs wired for you. What
is required of you is to finish constructing the block diagram to provide the
functionality of the VIs.
Throughout the course, several of the VIs you will create will have a
modulation parameters cluster passed into and out of them. The modulation
parameters in contains many of the parameters needed by your VIs and will
be unbundled from them. This has already been done for you in the template
VIs if necessary. Some VIs will also have modulation parameters out, so that
the cluster can be passed on through to the VIs that follow. Please ensure that
these clusters remain wired the way they are in the template VIs, as changing
how they are wired will cause VIs further down the line to break.
i
i
i
book2 2011/10/28 14:05 page 57 #69
Lab 3: Synchronization
57
You will plug your code into the baseband simulator provided to you in
order to verify functionality and correctness. You will not be replacing one of
the main blocks inside receiver.vi as you have done in previous labs. Instead,
you will need to insert your code into symbol timing.vi, a subVI in the digital
communications library built for this course. Figure 2 describes the hierarchy
of the files needed for symbol timing recovery in this lab.
Figure 2 shows the block diagram of synchronize.vi, where you can find
symbol timing.vi. Notice there are a number of synchronization methods
available in this VI, however you will only be dealing with Timing Estimation (the option for performing symbol timing recovery independent of
frame synchronization or channel estimation).
After replacing align ELgate.vi and align MaxEnergy.vi in symbol timing.vi, you should test your code by adding a small delay to your channel.
Delay in the channel model can be modified using the channel model parameters control on the front panel of Simulator.vi. Note that delay in the channel
model is bounded in channel.vi (i.e., you will not be able to add an arbitrarily
large delay to the channel). You can use the front panel controls to modify
the symbol timing recovery method used in the simulator. After choosing the
STR method and modifying the delay, you should notice the estimated offset
generated by the receiver changes as you vary delay. This integer offset value
includes delay introduced by pulse shaping and matched filtering.
The simulator outputs the estimated delay of the channel (i.e., after correcting for any offset caused by filtering) as an error statistic. The VI simulator.vi
i
i
i
book2 2011/10/28 14:05 page 58 #70
Lab 3: Synchronization
58
i
i
i
book2 2011/10/28 14:05 page 59 #71
59
Lab 3: Synchronization
compares this estimated delay with the actual delay and computes the mean
square error static, which has been normalized by symbol period Ts
2
[N ] = E ( (N ) d )/Ts ,
(5)
where N is the oversample factor at the receiver, (N ) is the estimated delay
of the channel computed at the receiver1 , and d is the actual delay of the
channel.
Plot a graph of the timing error statistic (N ) versus oversample factor N ,
using the parameters below. Since your channel will have no noise, you will
only need to run a single iteration of the simulator to gather the timing error
statistic. Note when modifying oversample factor N , symbol period Ts must
remain constant (i.e., since Ts = N TN , you must also modify the sampling
rate at the receiver appropriately).
Delay d = 0.34Ts
Oversample factor N = 2, 4, 6, . . . , 20
Channel Model: h = 0.75ej /4 (i.e., narrowband channel)
Noise Power = dB
In summary:
After building align ELgate.vi and align MaxEnergy.vi, place these VIs
into your simulator (i.e., inside symbol timing.vi).
Modify the symbol timing recovery method and the delay introduced
by the channel from the front panel of Simulator.vi.
After verifying the functionality of your code, observe how these algorithms perform in the presence of a narrowband channel with AWGN.
In the presence of these impairments, observe how the packet length
affects the performance of the algorithms you have implemented.
Using delay d = 0.34Ts and the parameters listed above, plot the
timing error statistic (N), as defined in Eq. (5), for oversample factors
N = 2, 4, 6, . . . , 20 (i.e., even integers up to 20). Use a logarithmic
scale for timing error and a linear scale for N .
1 Estimated channel delay (N ) = kTs , where k is the integer offset estimated at the receiver
(after correcting for delay due to filtering), Ts is the symbol period, and N is the oversample
factor at the receiver
i
i
i
book2 2011/10/28 14:05 page 60 #72
60
Lab 3: Synchronization
Pre-Lab Turn In
1. Submit your implementation of align Elgate.vi and align MaxEnergy.vi.
Note: If you need to generate additional subVIs for this or any future
labs, please submit these subVIs along with your other pre-lab VIs.
2. Submit your answers to all of the questions in the pre-lab section along
with your plot of timing error (N ) versus oversample factor N .
Lab Experiment
In this lab you will run your implementations of align ELgate.vi and align
MaxEnergy.vi over a real wireless link. Using your code from the prior labs
in conjunction with the new blocks you have created, you will complete the
framework for the transmitter and receiver blocks in lab. This framework
will be provided to you as in previous labs.
Insert your code into this framework as you did in the pre-lab. In the
pre-lab you observed how timing error varies with the oversampling factor
N at the receiver. Now you will observe this relationship over a real wireless
link.
Set up the following parameters in your baseband system.
Packet length = 500 bits
Modulation type = QPSK
i
i
i
book2 2011/10/28 14:05 page 61 #73
Lab 3: Synchronization
61
Questions
Answer the following questions about the digital communication system:
1. What is the symbol rate of the system based on the parameters above?
2. As you did in the pre-lab, vary the oversample factor N at the receiver.
Observe the general shape of the received constellation for a number of
packets (i.e., to eliminate any variance that might be caused by errors
in frequency offset correction or channel estimation). Observe how the
constellation changes when N = 2, 4, 10, and 20.
Based on what youve observed and what you learned in the pre-lab,
describe how the relationship between sampling error and oversample
factor N manifests itself on the signal constellation of top rx.vi.
3. For each of the oversample factors in the previous question (i.e., N =
2, 4, 10, 20), specify what value you set the RX sample rate to on the
front panel of top rx.vi.
i
i
i
book2 2011/10/28 14:05 page 62 #74
62
Lab 3: Synchronization
Lab Turn In
Demonstrate to the instructor that your code is working properly. You will
be required to identify that a sampling error has occurred and qualitatively
support your claim based on the visualization tools available in top rx.vi. You
will then need to show the instructor how the performance of your system
changes as you vary oversample factor N at the receiver. Also answer all of
the questions above. You will be required to submit these answers in a lab
report.
i
i
i
book2 2011/10/28 14:05 page 63 #75
Background
(1)
which consists of two different delayed, attenuated, and phase shifted versions
of the signal x(t). The delays 0 and 1 are determined by the propagation
time of the paths, which would generally be different. If the difference 1 0
is significant (at least a fraction of a symbol period T ) then the received signal
will experience intersymbol interference. This can not be corrected using the
63
i
i
i
i
s[n]
Insert
Training
Tz = T/M
C/D
g RX [n]
M
M
Extract
Training
y[n]
Compute
Equalizer
gTX [n]
Tx
D/C
Ex
Detection
x(t )
Inverse
Symbol Map
bits
Figure 1: The system under consideration in this lab. The transmitter uses digital pulse-shaping and upsampling to create the transmit
waveform. A known training sequence is inserted into the transmitted signal. The baseband signal encounters a frequency selective channel
and additive white Gaussian noise at the receiver. The receiver uses digital pulse-shaping and downsampling, followed by linear equalization
and detection, to find a good guess of the transmitted symbols. The linear equalizer is computed using the known training sequence in the
received signal. An advance is applied after the equalization to correct for delays.
z (t )
v(t)
64
Receiver
x(t)
training symbols
Symbol
Mapping
bits
Transmitter
i
i
i
book2 2011/10/28 14:05 page 65 #77
65
h[0]s[n] +
m=0
s[m]h[n m] +v[n].
(3)
intersymbol interference
Unless h(t) is a Nyquist pulse-shape, the second term in Eq. (3) will not be
zero.
There are two main challenges associated with the received signal in
Eq. (3).
1. The channel coefficients {h[]} create intersymbol interference. The
solution we pursue in this lab is to augment the detection procedure
with a linear equalization step.
2. The channel coefficients {h[]} are unknown to the receiver. The solution we pursue in this lab is to estimate the unknown channel coefficients and use them to determine the linear equalizer, or to estimate
the coefficients of the linear equalizer directly.
The steps of estimation and equalization benefit from making some additional assumptions about the propagation channel. It is reasonable to assume
that the propagation channel is causal and FIR (finite impulse response). It
is causal because, naturally, the propagation channel can not predict the future. It is FIR because (i) there are no perfectly reflecting environments, and
(ii) the signal energy decays as a function of distance between the transmitter
and receiver. Essentially every time the signal reflects some of the energy
passes through the reflector thus it looses energy. Additionally as the signal
is propagating, it loses power as it spreads in the environment. Multipaths
that are weak will fall below the noise threshold. With the FIR assumption, it
i
i
i
book2 2011/10/28 14:05 page 66 #78
66
is common to assume that the composite channel h(t) is also FIR thus Eq. (3)
becomes
y[n]
L
s[m]h[n ] + v[n].
(4)
=0
r[n]
Lf
fnd []y[n ] s [n nd ],
(5)
=0
1.1
The main mathematical technique that will be used in this lab is known as
linear least squares, which will be used both for estimating the channel and
for computing the equalizer.
Let A denote a N M matrix. The number of rows is given by N and
the number of columns by M. If N = M we say that the matrix is square.
If N > M we call the matrix tall and if M > N we say that the matrix is
fat. We use the notation AT to denote the transpose of a matrix, A to denote
the Hermitian or conjugate transpose, and Ac to denote the conjugate of the
entries of A. Let bbe a N 1 dimension vector. The 2-norm of the vector
N
2
is given by a =
n=1 |bn | .
Consider a collection of vectors {xn }K
n=1 . We say that the vectors are linearly
independent if there does not exist a set of nonzero weights {n } such
that n n xn = 0. In CN and RN, at most N vectors can be linearly independent. We say that a square matrix A is invertible if the columns of A (or
equivalently the rows) are linearly independent. If A is invertible, then a matrix inverse A1 exists and satisfies the properties AA1 = A1 A = I. If A
is tall, we say that A is full rank if the columns of A are linearly independent.
Similarly, if A is a fat matrix, we say that it is full rank if the rows are linearly
independent.
i
i
i
book2 2011/10/28 14:05 page 67 #79
67
(6)
(7)
Using matrix calculus, it can be shown that the solution to this problem
assuming that A is full-rank is
xLS
(A A)1 A b.
(8)
=
=
(9)
(10)
Now you will use the least-squares solution for channel estimation and equalization.
1.2
Channel Estimation
There are several different criteria for designing an estimator including the
maximum likelihood criterion, minimum mean squared error, and least squares.
Of these, perhaps the least squares technique is the simplest thus we will discuss it here. The added advantage of the least squares estimator is that in
AWGN the least squares estimator is also the maximum likelihood estimator.
t
Suppose that {t[n]}N
n=0 is a known training sequence. This is a set of
symbols that is known a priori. Suppose that the known training symbols
i
i
i
book2 2011/10/28 14:05 page 68 #80
68
are inserted into the transmitted sequence such that s[n] = t[n] for n =
0, 1, . . . , Nt . To solve for the estimate of the channel using the LLSE solution
in Eq. (8), it is necessary to form a system of linear equations. Consider
y[n]
L
h[l]s[n l] + v[n],
l=0
{h[0],
h[1],
. . . , h[L]}
= arg
min
a[l]t[n l] .
y[n]
a[0],a[1],...,a[L]
n=L
l=0
The summation starts with n = L to ensure unknown data is not included. The
least squares estimator is simply a generalization of the narrowband estimator.
A straightforward way to solve this problem is to differentiate with respect
to a [m], build a set of linear equations, and solve. An alternative approach
is to build a suitable set of linear equations. This is a powerful approach to
solve a large class of least squares problems.
First write the observed data as a function of unknown in matrix form
t[L]
t[0]
a[0]
y[L]
..
..
y[L + 1]
a[1]
.
t[L + 1]
.
.
,
=
..
.
.
.
..
..
.
.
a[L]
y[Nt 1]
t[Nt 1] t[Nt 1 L]
y
i
i
i
book2 2011/10/28 14:05 page 69 #81
69
1.3
l] [n nd ].
f [l]h[n
(11)
l=0
Except in trivial channels Eq. (11) can not be satisfied exactly. The reason
is that an FIR filter requires an IIR filter. The parameter nd in Eq. (11) is
the equalizer delay and is generally a design parameter. Generally allowing
nd > 0 improves performance. The best equalizers consider several values
of nd and choose the best one.
A straightforward approach is the least-squares equalizer. The key idea
is to write a set of linear equations and solve for the filter coefficients that
ensure that the Eq. (11) minimizes the squared error. Writing Eq. (11) in
matrix form
f [0]
0
h[0]
0
h[1]
h[0]
0
f [1] ..
.
.
..
..
.
1
.
.
nd + 1
.
= ..
..
h[L]
.
.
.
..
h[L]
..
.
..
.
f [Lf ]
0
end
end .
fnd = H
H
f end 2 . The squared error
The squared error is measured as Jf [nd ] = H
can be minimized further by choosing nd such that Jf [nd ] is minimized. This
is known as optimizing the equalizer delay.
The equalizer order is Lf . The choice of Lf is a design decision that
depends on L. The parameter L is the extent of the multipath in the channel
i
i
i
book2 2011/10/28 14:05 page 70 #82
70
and is determined by the bandwidth of the signal as well as the maximum delay
spread derived from propagation channel measurements. The equalizer is an
FIR inverse of an FIR filter. As a consequence the results will improve if Lf
is large. The complexity required per symbol, however, also grows with Lf .
Thus there is a tradeoff between choosing large Lf to have better equalizer
performance and smaller Lf to have more efficient receiver implementation.
1.4
Using the channel estimation and equalization methods from the previous
sections requires solving two least squares estimation problems. This can be
computationally expensive. Designing the equalizer estimate directly from
the received sequence can be more efficient as this method only requires
formulating a single least-squares estimation problem. The least-squares
equalizer requires solving two least-squares problems. The first is to estimate the channel coefficients using a least squares approach; the second is
to estimate the least-squares equalizer. An alternative approach is a direct
solution. This means that the equalizer is found directly from the observed
training data. Such an approach is somewhat more robust to noise.
Consider the received signal after linear equalization with delay nd
s [n nd ] =
Lf
(12)
l=0
Lf
fnd [l]y[n + nd l]
l=0
for n = 0, 1, . . . , Nt .
Now build a linear equation
y[nd Lf ]
y[nd ]
t[0]
fnd [0]
..
..
t[1]
fnd [1]
.
y[nd + 1]
.
.
..
..
.
.
.
.
.
.
.
.
t[Nt 1]
fn [Lf ]
y[nd + Nt 1] s[nd + Nt Lf ] d
t
Ynd
fnd
(13)
i
i
i
book2 2011/10/28 14:05 page 71 #83
71
Solving under the assumption that Y is full rank, which is reasonable in the
presence of noise, the least squares solution is
fnd
Ynd Ynd
Ynd t.
(14)
Pre-Lab
You have learned about two equalizer estimation methods, indirect and direct. In this lab you will be implementing the direct least-squares equalizer
described in the last section. To do this you will need to build a number of
Table 1: Description of LLSE.vi
LLSE.vi - for linear system Ax = b, as in Eq. (6),
compute linear least squares estimate of parameter x
A
INPUTS
b
x.estimate
OUTPUTS
least
squared
error
error
code
2-D array of
CDB
(complex
doubles)
1-D array of
CDB
1-D array of
CDB
DBL (double)
I32 (integer)
m x n matrix
length m vector
linear least squares estimate of
parameter x, as defined by
Eq. (8)
squared error of estimate,
Ax b2
error code generated by
Inverse Matrix.vi
i
i
i
book2 2011/10/28 14:05 page 72 #84
72
INPUTS
column
OUTPUTS
Toeplitz
array
1-D array of
CDB
(complex
doubles)
1-D array of
CDB
2-D array of
CDB
auxiliary subVIs (i.e., LLSE.vi and toeplitz.vi described in Tables 1 and 2).
You will then use these VIs in your implementation of the direct least-squares
equalizer in direct equalizer.vi. After building all of your VIs, you will revise
the equalizer.vi called by receiver.vi and use the simulator provided to you
and verify your code as you have done in the previous labs.
You can use the error code output of LLSE.vi to find out if there were any
errors in computing the LLSE solution. For example, error code can be used
to indicate an error when the matrix (A A) is singular.
You have been provided with templates for the VIs you need to create for
this lab that already have all the inputs and outputs wired for you. What
is required of you is to finish constructing the block diagram to provide the
functionality of the VIs.
Throughout the course, several of the VIs you will create will have a
modulation parameters cluster passed into and out of them. The modulation
parameters in contains many of the parameters needed by your VIs and will
be unbundled from them. This has already been done for you in the template
VIs if necessary. Some VIs will also have modulation parameters out, so that
the cluster can be passed on through to the VIs that follow. Please ensure that
these clusters remain wired the way they are in the template VIs, as changing
how they are wired will cause VIs further down the line to break.
After building these VIs, it is important that you verify their functionality
before proceeding as you will need to use them in your implementation of
direct equalizer.vi. To verify the functionality of LLSE.vi, do the following:
Let A be a 3x5 matrix of all zeros except for its major diagonal, which
i
i
i
book2 2011/10/28 14:05 page 73 #85
73
A=
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
Let b be any vector of length 5, such that the last two positions of b
are zero (i.e., b = [b1 b2 b3 0 0]T contains three nonzero values in its
first three positions).
Verify that LLSE.vi computes x.estimate to be the first three elements
of b.
Also verify that your VI returns an error when A is not full rank. To test
this, replace the last column of A with zeros and repeat the above test (i.e.,
checking to see that an error has occurred). Next, verify your implementation
of toeplitz.vi is working by visual inspection of Toeplitz array. This matrix
should have constant negative-sloping diagonals.
To receive full credit you must correctly implement both LLSE.vi and
toeplitz.vi. However, if you are unable to do so, you may use the equivalent VIs from digital comm.llb to implement direct least-squares equalizer
estimation.
Next, you will build direct equalizer.vi, which will be inserted inside
equalizer.vi as shown in Figure 2. This block diagram shows how equalizer.vi
implements the delay optimization for both direct and indirect equalizer estimation.
To build direct equalizer.vi, implement the direct least-squares estimation
solution in Eq. (14). You should use your implementations of toeplitz.vi
and LLSE.vi to formulate and solve the LLSE problem of Eq. (14) in direct equalizer.vi. These subVIs should simplify your code significantly. Be
careful when generating the matrices of Eq. (14) as small errors in the formulation can lead to critical problems.
Table 3 describes the details of direct equalizer.vi. Notice the VI takes an
explicit equalizer delay input. Do not confuse this value with the equalizer
delay parameter in the modulation parameters in cluster. Use the equalizer
delay input to form the received signal matrix of Eq. (13) (i.e., do not use the
delay parameter from the modulation parameters in cluster).
To build the training vector t of Eq. (14) use Training Sequence, a 1-D array
of CDB, from the modulation parameters in cluster. You will only use the
first half of Training Sequence to generate t, since the training sequence from
the modulation parameters in cluster is composed of two repeated sequences
(i.e., first half of Training Sequence is the same as the second half). This
i
i
i
book2 2011/10/28 14:05 page 74 #86
74
i
i
i
book2 2011/10/28 14:05 page 75 #87
75
OUTPUTS
1-D array of
CDB
I32 (integer)
filter
estimate
mean
square
error
1-D array of
CDB
DBL
actual
equalizer
delay
I32 (integer)
equalizer
delay
means Nt , the length of t, will be one-half the size of the training sequence
array from the modulation parameters in cluster.
In summary:
Build LLSE.vi using the linear algebra tools available in the Linear
Algebra tool palette. Be aware that these polymorphic VIs operate in
a number of modes and may require you to specify the use of complex inputs. The Linear Algebra tool palette can be accessed from
MathematicsLinear Algebra.
Build toeplitz.vi using the array tools available in the Array palette.
Be sure to verify your code before using this VI in direct equalizer.vi
as small errors in formulation can lead to critical problems.
After building direct equalizer.vi using the previously mentioned VIs,
insert your code into equalizer.vi, which can be accessed from the block
diagram of receiver.vi
Questions
Answer the following questions, and submit the answers as part of your prelab.
1. In your implementation of toeplitz.vi you were required to build a
Toeplitz matrix given the initial row and column of the matrix. Notice
i
i
i
book2 2011/10/28 14:05 page 76 #88
76
Pre-Lab Turn In
1. Submit your implementation of LLSE.vi, toeplitz.vi, and direct equalizer.vi. Remember, you will be penalized if you do not wire the error
cluster inputs and outputs in your implementation of direct equalizer.vi.
Note: If you need to generate additional subVIs for this or any future
labs, please submit these subVIs along with your other pre-lab VIs.
2. Submit your answers to all of the questions in the pre-lab section.
i
i
i
book2 2011/10/28 14:05 page 77 #89
77
Lab Experiment
In this lab you will run your implementation of direct equalizer.vi over a
real wireless link. Using your code from the prior labs in conjunction with
the new blocks you have created, you will complete the framework for the
transmitter and receiver blocks in lab. This framework will be provided to
you as in previous labs.
Insert your code into this framework as you did in the pre-lab. In the prelab you observed the BER performance of the direct least-squares equalizer
over a multipath channel. Now you will observe how a multipath channel
impacts the constellation of the received signal. You will also learn about the
power-delay profile of a multipath channel.
3.1
Narrowband Channel
In this part of the lab experiment you will observe how the channel of a
real wireless link impacts the received QAM constellation. To begin, setup
the following parameters in your system using the appropriate controls in
top rx.vi and top tx.vi:
Packet length = 500 bits
TX sample rate = 20 MSamp/sec
TX oversample factor = 200
i
i
i
book2 2011/10/28 14:05 page 78 #90
78
Use the default values for any parameters not listed above. Next, in order
to observe the impact of the wireless channel on your received QAM constellation you will need to rewire part of the block diagram in receiver.vi.
As shown in Figure 4, rewire the wire labeled recovered symbols so it is
connected to the output of synchronize.vi and not strip control.vi. This will
allow you to observe the received constellation prior to equalization. Notice
that since this modification bypasses strip control.vi it will plot the entire
received sequence (i.e., including training data and any additional symbols
or zeros at the end of the array).
Questions
After setting up the appropriate parameters and modifying receiver.vi as previously described, run your system and observe how the narrowband channel
alters your received constellation.
1. What is the symbol rate of your system?
2. What is the passband bandwidth of your system?
3. Based on your observations, describe the impairments imparted to the
received constellation. You may need to auto-scale the axes of your
constellation in receiver.vi in order to observe the effects of the narrowband wireless channel.
Submit your answers to these questions as part of your lab report.
P [n] = E{|h[n]| }). In this part of the lab experiment you will study the
power-delay profile of a wideband system.
i
i
i
book2 2011/10/28 14:05 page 79 #91
79
i
i
i
book2 2011/10/28 14:05 page 80 #92
80
Use the default values for any parameters not listed above. You will now
start the transmitter of your system (i.e., top tx.vi). Place your antennas at an
elevated height so they will be free of obstructions and able to capture a large
portion of the multipath energy in your wireless environment. Begin receiving
for at least 5 of the
packets using top rx.vi. Record the estimated channel h[n]
transmitted packets. Discard any measurements in which the bit-error rate of
the received packet exceeds 0.10; typically BER exceeds 101 when errors
in frame detection occur. You should also disable frequency offset correction
from the front panel of top rx.vi, as this can lead to additional unwanted
errors. Also, be sure to rewire the wire labeled recovered symbols so it is
connected to the output of strip control.vi and not synchronize.vi (in contrast
to the previous section).
Questions
Answer the following questions about this part of the lab experiment.
1. What is the symbol rate of your system?
2. What is the passband bandwidth of your system?
3. Based on the data you have collected in this part of the experiment,
make a plot of the power-delay profile of the wideband wireless link
in lab. Discard any outlying observations that might have been caused
by errors in frame detection or noise. Average the power-delay profile
over the remaining observations.
Submit your answers to these questions along with your plot of powerdelay profile as part of your lab report.
i
i
i
book2 2011/10/28 14:05 page 81 #93
3.3
81
Lab Turn In
Demonstrate that your code is working properly. Show that your code works
for a variety of equalizer lengths (Lf + 1 = 1 and Lf + 1 = 6).
i
i
i
book2 2011/10/28 14:05 page 82 #94
Summary
The algorithms for channel estimation and equalization discussed in Lab 4
were formulated under the assumption that the location of the training data
was known, which we call the start of the frame. In practice, due to propagation and signal processing delays, the location of the beginning of the
frame is unknown. This makes it difficult to apply the channel estimation
and equalization algorithms from Lab 4. Up to this point it has also been assumed that the carrier frequency of the transmitter and receiver were locked
together. Even small differences, however, lead to a distortion known as carrier frequency offset. In this lab you will implement a particular method for
frequency offset correction, called the Moose algorithm, and a method for
frame detection based on correlation.
The frequency offset correction and frame detection algorithms you will
implement in this lab will be embedded within the synchronization block of
the receiver. After building the VIs needed to implement these algorithms,
you will verify the functionality and correctness of your code in a simulator.
Then, you will implement your code in lab using RF Hardware to see how
your code works over a real wireless link.
Note that after this lab you will have considered symbol timing synchronization, frame detection, and channel estimation/equalization all as independent problems. In actuality, any number of these problems could be solved
jointly (e.g., jointly solve for the symbol timing offset and channel estimate
which minimizes mean-squared error). The task of joint optimization will
not be explored in this lab, but you should be aware that the receiver you have
been implementing in lab is not necessarily the optimal one. In particular,
it is common that frame synchronization is performed jointly with carrier
frequency offset estimation.
For the pre-lab submission, you have to turn in the two VIs described in
Section 2 (Moose.vi and sliding correlator.vi). Further, you have to submit
the answers to the questions in Section 2.
Background
i
i
i
g RX [n]
M
M
y[n]
Frame
Synch
Frequency
Synch
Equalize
Detection
Inverse
Symbol Map
bits
Figure 1: The receiver considered in this lab. The new synchronization functionality is introduced after downsampling and before the
equalization. The first step is determining the location of the training sequence, known as frame synchronization. The second step is
estimation and correction of the carrier frequency offset, known as carrier frequency synchronization. The linear equalizer block includes the
channel estimation and equalization functions from Lab 4.
Tz = T/M
C/D
z (t )
Receiver
i
i
83
i
book2 2011/10/28 14:05 page 84 #96
84
(1)
i=1
i
i
i
book2 2011/10/28 14:05 page 85 #97
85
Barker Sequence
[+, ]
[ +]
[ + , + ++]
[ + ]
[ + + +]
[ + + + + + +]
[ + + + + ]
In the lab we will use a training sequence that consists of four length 11
Barker sequences prepended to the data segment of the packet. This means
that you may treat the training sequence as a concatenation of two length 22
training sub-sequences (i.e., the complete training sequence is 44 symbols,
and the first and second half are the same).
1.2
Frame Synchronization
i
i
i
book2 2011/10/28 14:05 page 86 #98
86
(3)
= %
t [k]hs[n d] +
t [k]v[n]% .
%
%
R[n]
k=0
k=0
Because the noise is zero mean, the second term should be approximately
zero if the training sequence is large enough. This leads to
R[n]
%N 1
%N 1
%2
%2
t
t
%
%
%
%
%
%
%
2%
k=0
Assuming that the data is different than the training sequence, the correlation
peak should occur at the location of the training data, assuming that the
training data is contained in the window of observation samples.
Now suppose that the channel is frequency selective and
y[n] =
L
h[]s[n d] + v[n] = h[]
s[n d] + v[n],
=0
where we use
to denote convolution. In this case, the received correlation
R[n] neglecting noise is
%
%2
R[n] %h[]
t [n]
s[n d]% .
(5)
The effect of the channel is to smear the correlation peak. Correlation based
frame detection still works, but it becomes less accurate as the peak may shift
due to the channel. In practice the peak value of R[n] may be shifted by an
offset d = maxn R[n] for some > 0 typically < L/4. Equalization
takes care of the residual offset.
1.3
Passband communication signals are used in wireless communication systems. A passband signal has energy that is nonzero for a frequency band concentrated about some carrier frequency fc . At the transmitter the baseband
signal is upconverted to a passband signal while at the receiver a passband
signal is downcoverted to a baseband signal. In most systems the carrier
frequency used for upconversion at the transmitter does not match the car-
i
i
i
book2 2011/10/28 14:05 page 87 #99
87
RF Downconversion
RF Upconversion
propagation
channel
ej 2 n
L
h[l]s[n l] + v[n],
l=0
= ej 2 n y[n].
(6)
i
i
i
book2 2011/10/28 14:05 page 88 #100
88
j 2 n
L
h[l]s[n l] + v[n]
l=0
y[n + Nt ]
j 2 (n+Nt )
L
h[l]s[n + Nt l] + v[n + Nt ].
l=0
ej 2 Nt ej 2 n
L
h[l]t[n l] + v[n + Nt ]
l=0
ej 2 Nt y[n].
(7)
To see the significance of this result, remember that the channel coefficients
{h[l]}L
l=0 are unknown!
One way to solve the frequency offset estimation problem is to formulate
and solve a least-squares problem. Because appears in the exponent, we
solve a modified least squares problem. Consider the squared error
J (a) =
N
t 1
y[l + Nt ] ay[l]2 .
l=L
Using the concept of liner least squares from Lab 4, the coefficient a is
Nt 1
y[l + Nt ]y [l]
a = l=L
.
Nt 1
2
l=L |y[l]|
Since only the phase of a is of interest, there is no need to compute the
denominator. A simple estimate of the frequency offset is then
Nt 1
phase l=L
y[l + Nt ]y [l]
=
(8)
2 Nt
or
Nt 1
phase l=L
y[l + Nt ]y [l]
,
(9)
fe =
2 T Nt
i
i
i
book2 2011/10/28 14:05 page 89 #101
89
1
2Nt
or
1
.
2T Nt
Choosing larger Nt improves the estimate since it results in more noise averaging but reduces the range of offsets that can be corrected. A way of solving
this problem is to use multiple repetitions of a short training sequence, but
this will not be exploited in this lab. An enhanced carrier frequency offset
correction range can be obtained by using properties of the training sequence.
|fe |
1.4
y[n + d + Nt ]y [n + d]
d = arg max &
.
&
N
N
t 1
t 1
2
2
|y[n + d]|
|y[n + d + Nt ]|
n=L
n=L
(10)
n=L
i
i
i
book2 2011/10/28 14:05 page 90 #102
90
INPUTS
1-D array of
CDB
(complex
doubles)
DBL (double)
channel
estimate
length
I32 (integer)
Lh + 1
output
1-D array of
CDB
frequency
offset
DBL
as
described by Eq. (6)
frequency offset estimate
foffset = /T
symbol
rate
OUTPUTS
Pre-Lab
In this lab you will implement the correlation based frame detector and the
Moose algorithm. You will first build Moose.vi, that will implement the
Moose algorithm. You will then build sliding correlator.vi, which will implement the frame detection algorithm. This VI will also use Moose.vi to
estimate/correct for the frequency offset. These VIs are described in Tables 2
and 3. After building your VIs, you will insert your code into frame detect.vi
in the simulator provided to you and verify your code using the simulator.
Please name your VIs in the same manner as your previous submissions (i.e.,
follow the yourname VIname.vi format).
After building these VIs, insert your code into the simulator provided to
you. As shown in Figure 4, you will insert sliding correlator.vi into the
appropriate case structure in the block diagram of frame detect.vi.
You can find frame detect.vi in the block diagram of synchronize.vi. The
hierarchy of these files is shown in Figure 5. After inserting your code appropriately, if you find that the simulator does not compile check to make sure
that you have used the same connector topology described by moose.vi in the
digital communication library.
You have been provided with templates for the VIs you need to create for
this lab that already have all the inputs and outputs wired for you. What
i
i
i
book2 2011/10/28 14:05 page 91 #103
91
i
i
i
book2 2011/10/28 14:05 page 92 #104
92
INPUTS
OUTPUTS
input
complex
waveform
IQ waveform
cluster
correct
frequency
offset?
Boolean
output
1-D array of
CDB
frame
offset
I32
frequency
offset
DBL
i
i
i
book2 2011/10/28 14:05 page 93 #105
93
parameters in contains many of the parameters needed by your VIs and will
be unbundled from them. This has already been done for you in the template
VIs if necessary. Some VIs will also have modulation parameters out, so that
the cluster can be passed on through to the VIs that follow. Please ensure that
these clusters remain wired the way they are in the template VIs, as changing
how they are wired will cause VIs further down the line to break.
After building these VIs and inserting them into the simulator as you have
done in previous labs, it is important that you verify their functionality. First,
verify that your correlation based detector is working by doing the following:
1. Set the Correct Frequency Offset control to FALSE on the front panel
of the simulator. Setting this constant to FALSE tells frame detect.vi
not to correct for the frequency offset estimated by Moose.vi.
2. Set the following parameters in your simulator.
TX oversample factor = RX oversample factor = 10
TX sample rate = RX sample rate = 10 MHz
Packet length (bits) = 500
Synchronization Method = Timing Estimation
ISI Channel = {h[0] = 0.35ej /4 }
Use the default value for any parameters not specified above.
3. Set the delay of the channel to 10Ts , where Ts is the symbol period of
the system.
After running the top level of your simulator, verify that your receiver
has estimated the correct delay in the channel. You can find the measured
delay in the Measured channel impairments cluster on the front panel of the
simulator. Additionally, you should verify that you have no bit errors. After
you have verified that your correlation based frame detection algorithm has
been implemented properly, you can now check that your implementation of
the Moose algorithm is working properly by doing the following:
1. Set the Correct Frequency Offset control to TRUE on the front panel
of the simulator Setting this constant to TRUE tells frame detect.vi to
correct for the frequency offset estimated by Moose.vi.
2. Use the same parameters to test your implementation of Moose.vi.
3. Set the delay of the channel to 10Ts , where Ts is the symbol period of
the system.
i
i
i
book2 2011/10/28 14:05 page 94 #106
94
Verify that the estimated frequency offset displayed in the Measured channel impairments cluster reflects the correct frequency offset. Also, you should
have no bit errors. Finally, set the Correct Frequency Offset control back to
FALSE. Verify that your code estimates the frequency offset, but does not
correct for it when this Boolean control is set to FALSE.
In summary:
After building Moose.vi and sliding correlator.vi, insert your code into
the simulator (i.e., inside frame detect.vi).
Note: You will use the unbundled parameter Training Sequence from
the modulation parameters in cluster for the training sequence in this
lab.
Verify that your implementation of the correlation based frame detector
and the Moose algorithm are working properly.
Questions
Answer the following questions, and submit the answers as part of your prelab.
1. Set up your simulator according to the steps used for verifying your
correlation based frame detector. In particular, make sure that the
control Correct Frequency Offset is set to FALSE. Set the noise power
of your channel to 5 dB. Also, use AWGN channel for this question
instead of ISI. Describe what happens to the error rate of your system
when the estimate for the delay in the channel is off by more than one
symbol time (i.e., when d = d).
Note: You may need to modify your VIs to observe this effect, or you may
guess the impact from the structure of the frame detection equations.
2. Set up your simulator according to the steps used for verifying your
implementation of the Moose algorithm. Set the Correct Frequency
Offset control to FALSE. Describe what happens to the received constellation if you do not correct for the 201 Hz frequency offset.
3. Based on the system parameters described in the pre-lab, what are
the range of frequency offsets that you can estimate/correct using the
Moose algorithm? Since the Moose algorithm cannot estimate/correct
for arbitrary frequency offsets it is often considered to perform what is
known as fine frequency synchronization.
i
i
i
book2 2011/10/28 14:05 page 95 #107
95
Pre-Lab Turn In
1. Submit your implementation of Moose.vi and sliding correlator.vi. Remember, you will be penalized if you do not wire the error cluster inputs
and outputs in sliding correlator.vi and Moose.vi.
Note: If you need to generate additional subVIs for this or any future
labs, please submit these subVIs along with your other pre-lab VIs.
2. Submit your answers to all of the questions in the pre-lab section.
Lab Experiment
In this lab you will run your implementation of sliding correlator.vi over a
real wireless link. Using your code from the prior labs in conjunction with
the new blocks you have created, you will complete the framework for the
transmitter and receiver blocks in lab as in previous labs. Insert your code
into this framework as you did in the pre-lab. Next, set up the following
parameters in your system.
TX sample rate = 4 MSamp/sec
TX oversample factor = 20
RX sample rate = 4 MSamp/sec
RX oversample factor = 20
Channel estimate length = 2
Equalizer length = 4
Capture time = 2 msec
Leave any unspecified parameters set to their default values. Also make
sure that the Correct Frequency Offset control on top rx is set to TRUE. You
will now perform two experiments to explore frequency offsets and frame
detection over a real wireless link. Before you begin, estimate the order of
magnitude of the frequency offset between the transmitter and receiver of
your system. Take note of this value as you may be asked about it later.
3.1
i
i
i
book2 2011/10/28 14:05 page 96 #108
96
i
i
i
book2 2011/10/28 14:05 page 97 #109
3.2
97
In Section 3.1, you saw how the correlation based detector can break under large frequency offsets. You will now explore another frame detection
algorithm which is more robust to frequency offsets. As discussed in class, a
self referenced frame synchronization method can be derived from the leastsquares expression of the Moose algorithm. This frame detection performs
the calculation in Eq. (10). This frame detection method has already been
implemented in digital comm3.2b.llb. Change the frame detection method
of your system by modifying the appropriate parameter on the front panel
of top rx.vi. Observe how the Self Reference Frame Synchronization method
performs under the large frequency offset computed in the last section.
Consider a simple flat fading channel model with frequency offset foffset =
/T (T is the symbol period of the system) such that the received sequence
is given by
y[n] = ej 2 n t[n D],
(11)
where t[n] is the transmitted training sequence, is a complex scalar, and D
is the delay introduced by the channel. Include the answer to the following
question in your lab report:
Question: Using the simple channel model of Eq. (11), explain why the self
referenced frame detector of Eq. (10) works better than the correlation
based detector under large frequency offsets. You may also need to
consider the mathematical description of the correlation based detector
given in Eq. (2). Hint: Notice that the training sequence is periodic
(i.e., t[n + W ] = t[n] for all n {0, 1, . . . , W 1}). Also you should
notice that the output of the frame detection algorithm should be D for
this particular channel model.
3.3
Lab Turn In
i
i
i
book2 2011/10/28 14:05 page 98 #110
98
i
i
i
book2 2011/10/28 14:05 page 99 #111
Summary
In this lab you will implement the key features of the orthogonal frequency
division multiplexing (OFDM) multicarrier modulation technique. OFDM is
a transmission technique with a special structure that permits low complexity linear equalization at the receiver. Several commercial wireless systems
have adopted OFDM modulation including wireless LAN standards like IEEE
802.11g, IEEE 802.11a, and IEEE 802.11n; broadband wireless access including IEEE 802.16 (WiFi); mobile broadband wireless known as IEEE
802.20; digital video broadcasting DVB (used in Europe); as well as several
releases of the 3GPP cellular standards. The OFDM system considered in
this lab is illustrated in Figure 1.
Although the design of an OFDM system has several important differences from the single carrier system considered in previous labs, it must still
perform many of the same functions (e.g., channel estimation, equalization,
and frequency offset estimation). In this lab you will still perform all functions related to synchronization and channel estimation in the time domain
using the same training sequence discussed in Lab 5. The framing structure
considered in this lab is illustrated in Figure 2.
For the pre-lab submission, you have to turn in the three VIs described in
Section 2 (OFDM modulate.vi, OFDM demodulate.vi, and FEQ.vi). Further,
you have to submit the answers to questions in Section 2.
1
1.1
Background
OFDM Modulation
Figure 1 shows a block diagram of the basic OFDM modulator you will be
implementing in this lab. OFDM is a type of digital modulation where information is modulated into discrete-time sinusoids. With OFDM, the symbols
after the constellation mapping are considered to start in the frequency domain. OFDM operates on groups of symbols, the resulting group of symbols
being called an OFDM symbol. To begin the explanation, we assume K = 0
and that there are N frequency-domain symbols in one OFDM symbol. The
number of subcarriers is given by N , typically a power of 2. The transmitter
operates as follows. Given {s[n]}N1
n=0 and cyclic prefix of length Lc , the
99
i
i
i
i
Symbol
Mapping
Tz = T/M
C/D
Insert
Training
g RX [n]
s[n]
M
M
...
Extract
Training
y[n]
Serial
to
Parallel
1:N-K
...
Estimate
Channel
Serial
to
Parallel
( N+L c ):1
Insert
K Null
Tones
...
FFT
N
FFT
discard
IFFT
N
Add
CP
...
Remove
K Null
Tones
Parallel
to
Serial
(N+L c ):1
Parallel
to
Serial
N-K:1
Detection
gTX [n]
Inverse
Symbol Map
Tx
D/C
Ex
bits
x(t )
Figure 1: The OFDM system considered in this lab. The transmitter sends groups of N K symbols where N is the number of subcarriers and
K the number of null subcarriers. Null symbols are inserted into groups of N K transmit symbols, which are transformed from frequency to
time domain, then prepended with a cyclic prefix of length Lc at the transmitter. The receiver processes blocks of length N + Lc , discarding
the first Lc samples of each block. Single tap equalization is performed in the frequency domain. The operations of carrier frequency
synchronization and frame synchronization are omitted for simplicity.
z (t )
OFDM Receiver
bits
100
...
...
OFDM Transmitter
i
i
i
book2 2011/10/28 14:05 page 101 #113
train
CP1 OFDM 1
preamble
CP2 OFDM 2
101
...
OFDM payload
Figure 2: The framing structure considered in this lab. The preamble consists of two
repeated training sequences from Lab 5 (a total of four Barker codes). The preamble
is sent using the usual complex pulse amplitude modulation. Subsequent data is sent
using OFDM modulation, which is a block-based modulation technique.
L
h[]w[n ] + v[n].
=0
i
i
i
book2 2011/10/28 14:05 page 102 #114
102
L
l=0
=
=
=
L
N1
m(n+Lc Lc l)
1
N
h[l]
s[m]ej 2
N
1
N
1
N
l=0
m=0
L
N1
h[l]
l=0
N1
'
m=0
s[m]ej 2
m=0
L
h[l]ej 2
mn
N
ej 2 N
ml
(
ml
N
s[m]ej 2
mn
N
l=0
The receiver then takes the DFT (or FFT) of these samples to produce
(after some simplification)
Y [k]
=
=
DF T [y[n]]
H [k]s[k] + V [k],
(1)
where
H [k] =
L
h[l]ej 2 N ,
kl
l=0
which is just the DFT of the zero padded channel. The frequency domain interpretation of OFDM comes from Eq. (1). Essentially information is sent on
discrete-time sinusoids, or carriers. The information on the k th discrete-time
sinusoid experiences the channel response determined by H [k]. Equalization simply requires dividing Y [k] by H [k]. We refer to this as the frequency
domain equalizer (FEQ).
The following parameters are useful when discussing OFDM.
T is sample period.
T (N + Lc ) is the OFDM symbol period.
The guard interval, or cyclic prefix duration, is Lc T .
i
i
i
book2 2011/10/28 14:05 page 103 #115
103
BW
N
1
NT
The length of the cyclic prefix Lc should be the same as or exceed the
order of the channel response Lh . Recall that the length of a channel of
order Lh is Lh + 1. This will ensure that there is no intersymbol interference
between adjacent OFDM symbols (i.e., the CP guards against ISI). The
guard interval is a form of overhead. This reduces the effective data rate that
is transmitted (i.e., for an OFDM system with OFDM sample rate Rs and M
bits/symbol, the effective data rate Rd < Rs ).
The guard interval serves to separate different OFDM symbols thus the
name. In practice the guard interval is determined by the maximum delay
spread. As the bandwidth increases, Lc must increase to compensate. The
subcarrier spacing refers to the spacing between adjacent subcarriers as measured on a spectrum analyzer. The larger the N , the smaller the subcarrier
spacing. The subcarrier spacing determines the sensitivity to Doppler and
residual carrier frequency offset.
The subcarrier spacing is inversely proportional to the number of subcarriers N . This means that as N increases you will get higher spectral efficiency,
but at the cost of increased sensitivity to frequency offsets.
It is common for not all subcarriers to be used in an OFDM system. Some
subcarriers are usually nulled or zeroed out in the frequency domain
(i.e., the null tones). The zero frequency or DC is commonly nulled due to
RF distortion at DC. Also, guard bands (i.e., frequencies at the edges of the
frequency response corresponding to those around s[N/2]) are commonly
nulled to prevent interference with signals in adjacent frequency bands. In
the lab we assume that K subcarriers are zeroed with the zero locations being
specified separately.
Pre-Lab
In this lab you will implement the OFDM modulator and demodulator as
described in the background section. You are required to build two VIs:
OFDM modulate.vi and OFDM demodulate.vi. These VIs will implement
the appropriate transmit and receive operations from Figure 1.
Before discussing the details of these VIs, you will learn about a set of
helper VIs which have been provided to you in OFDM comm1.0.llb, a new
digital communications library for processing related to OFDM. The VIs
described in Table 1 are located in OFDM comm1.0.llb and may be helpful
in your implementations of OFDM modulation and demodulation.
i
i
i
book2 2011/10/28 14:05 page 104 #116
104
Name of VI
S2P.vi
P2S.vi
Description
converts serial input stream (1-D array) to parallel blocks structure (2-D array in which each
row represents M consecutive elements from the
input stream)
converts parallel input stream (2-D array) to a
serial output stream (1-D array which contains
successive rows of input concatenated together)
insert columns of zeros into 2-D input array at
specified locations
prepends last C columns of 2-D input array to
start of array
remove specified columns from 2-D input array
remove first Lc columns from 2-D input array
computes frequency domain equalizer based on
channel estimate and equalizes parallel input
stream
To efficiently process parallel inputs, these VIs use a parallel block structure represented in a 2-D array. In this structure, each row of the 2-D array
corresponds to a single block of data. Thus, the number of rows corresponds
to the number of blocks that are being processed.
Note: For-Loops in LabVIEW provide an auto-indexing feature which can
be used to extract the i th element of a 1-D array. Auto-indexing can also be
used on a 2-D array to extract the i th row of the 2-D array.
Tables 2 and 3 describe the VIs that you must construct. Many of the
OFDM related parameters you will need to use (such N , Lc , and null tones)
Table 2: Description of OFDM modulate.vi
OFDM modulate.vi - implements the OFDM modulator described in Section 1.1
INPUTS
OUTPUTS
input
symbols
1-D array of
CDB
(complex
doubles)
output
samples
1-D array of
CDB
i
i
i
book2 2011/10/28 14:05 page 105 #117
105
1-D array of
CDB
channel
estimate
1-D array of
CDB
number
of data
symbols
I32
equalize
channel?
Boolean
demodulated
symbols
FD
channel
estimate
1-D array of
CDB
1-D array of
CDB
INPUTS
OUTPUTS
can be found unbundled from the OFDM parameters in cluster. After building
your VIs, insert your code into OFDM transmitter.vi and OFDM receiver.vi
as shown in Figure 3 and 4 respectively.
You have been provided with templates for the VIs you need to create for
this lab that already have all the inputs and outputs wired for you. What
is required of you is to finish constructing the block diagram to provide the
functionality of the VIs.
Throughout the course, several of the VIs you will create will have a
modulation parameters cluster passed into and out of them. The modulation
parameters in contains many of the parameters needed by your VIs and will
be unbundled from them. This has already been done for you in the template
VIs if necessary. Some VIs will also have modulation parameters out, so that
the cluster can be passed on through to the VIs that follow. Please ensure
1 Figure 1 implies that the output of the OFDM demodulator produces multiples of N symbols.
You should truncate the array to the appropriate size (as dictated by number of data symbols).
i
i
i
book2 2011/10/28 14:05 page 106 #118
106
i
i
i
book2 2011/10/28 14:05 page 107 #119
107
i
i
i
book2 2011/10/28 14:05 page 108 #120
108
that these clusters remain wired the way they are in the template VIs, as
changing how they are wired will cause VIs further down the line to break.
In addition, you will now have access to the OFDM parameters cluster for
OFDM-specific parameters you will need for you VIs. These are accessed in
the same way that parameters from the modulation parameters cluster are.
After inserting your code into the simulator provided to you, verify that
your code is working properly by observing that the transmitted and received
constellations reflect the appropriate PSK modulation scheme you have chosen.
Pre-Lab Turn In
1. Submit your implementation of OFDM modulate.vi and OFDM demodulate.vi. Remember, you will be penalized if you do not wire error
cluster inputs and outputs. Note: If you need to generate additional
subVIs for this or any future labs, please submit these subVIs along
with your other pre-lab VIs.
2. EXTRA CREDIT (20pts) - implement FEQ.vi (i.e., your own version
of OFDM FEQ.vi). Table 4 describes the details of this VI. Submit
your implementation of FEQ.vi with your other VIs. Remember to
wire error clusters.
Table 4: Description of FEQ.vi
FEQ.vi - performs frequency domain equalization as described in Section 1.3
input
2-D array of
CDB
channel
estimate
1-D array of
CDB
equalized
output
2-D array of
CDB
FD
channel
estimate
1-D array of
CDB
INPUTS
OUTPUTS
i
i
i
book2 2011/10/28 14:05 page 109 #121
109
Lab Experiment
A single carrier system operating with symbol rate 1/T would transmit one
symbol every symbol period T . Thus in time N T , the single carrier system would transmit N symbols; maintaining orthogonality (or separation)
between symbols through time division multiplexing (or TDM). As you have
learned in previous labs, a frequency selective channel can undo this orthogonality, making some form of equalization necessary.
Multicarrier systems use a cyclic prefix to enable digital frequency domain
equalization. An interpretation is that OFDM divides a frequency selective
channel into N flat fading subchannels. Thus OFDM can be seen as N
parallel flat fading channels, (each of bandwidth 1/N T ), multiplexed in the
frequency domain. Hence, a simple zero-forcing equalizer can be applied to
each subchannel in order to equalize channel impairments. In this lab you
will examine the frequency selectivity of wireless channels and explore when
it might be advantageous to use OFDM to forgo the complexities of linear
equalization.
Along with the advantage of low complexity equalization, OFDM systems
also provide a framework which allows for many advanced digital communication techniques such as adaptive modulation and power control. Additionally, the frequency domain interpretation of OFDM (i.e., as a set of N parallel
flat fading subchannels) allows for many clever techniques with regard to error control coding by taking advantage of frequency diversity (topics that are
outside of the scope of this course). All of these advantages do not come for
free. There are a number of tradeoffs associated with single and multicarrier
systems. In this lab you will explore one particular tradeoff, the sensitivity
of OFDM systems to frequency offsets.
In this lab you will run your implementation of OFDM modulate.vi and
OFDM demodulate.vi over a real wireless link. As in previous labs, you will
complete the framework for the transmitter and receiver blocks in lab using
your code from this and previous labs. Insert your code into this framework
as you did in the pre-lab. You will then perform two experiments to explore
the previously mentioned topics: 1) the frequency selectivity of wireless
channels and 2) the sensitivity of OFDM systems to frequency offsets.
3.1
Figure 5 depicts the dependencies between files in the new OFDM framework
you will be using in lab. Note that this new framework still leverages many of
the blocks in the original digital communications library (digital comm.llb),
but also includes some of the elements from the new OFDM digital communications library (OFDM comm1.0.llb).
i
i
i
book2 2011/10/28 14:05 page 110 #122
110
Once you have inserted your code for OFDM modulate.vi and OFDM demodulate.vi into OFDM transmitter.vi and OFDM receiver.vi respectively,
you will need to set up the parameters listed below. These parameters are
located on the front panels of top tx.vi and top rx.vi. Leave any unspecified
parameters set to their default value.
Packet length = 500 bits
Modulation type = QPSK
Channel estimate length = 4
FFT size (N ) = 64
Length of CP (Lc ) = 8
Null tones = {0, 31, 32, 33}
3.2
In this first experiment you will observe the frequency response of narrowband
and wideband channels. Set up the following parameters for a narrowband
system.
TX sample rate = 4 MSamp/sec
i
i
i
book2 2011/10/28 14:05 page 111 #123
111
TX oversample factor = 20
RX sample rate = 4 MSamp/sec
RX oversample factor = 20
Capture time = 2.4 msec
After transmitting a packet successfully, observe the frequency response
of the narrowband channel, using the Channel Response graph located on
the front panel of OFDM receiver.vi. Also examine the instantaneous powerdelay profile using the appropriate graph on the front panel of the same VI.
Take note of the effective length of the channel response (i.e., the number of
nonzero taps in the channel).
Next, you will observe the frequency response of a wideband channel.
To set up a wideband system, set the following parameters in your OFDM
system.
TX sample rate = 20 MSamp/sec
TX oversample factor = 4
RX sample rate = 10 MSamp/sec
RX oversample factor = 2
Capture time = 100 sec
For this part of the experiment it is critical that you place your antennas at an elevated height so that all reflected paths in the lab environment reach the antennas. After transmitting a packet successfully observe the frequency response
and power-delay profile of the wideband channel in OFDM receiver.vi. Also,
take note of the effective length of the channel response.
Questions
Answer the following questions regarding the frequency selectivity of wireless channels.
1. According to the parameters above, what is the respective OFDM symbol rate in the narrowband and wideband systems you have set up (i.e.,
the reciprocal of the OFDM symbol period as previously defined)?
2. What are the effective lengths of the narrowband and wideband channels respectively?
3. Describe the frequency responses of each channel. In particular, are
the frequency responses of these channels frequency selective or flat?
i
i
i
book2 2011/10/28 14:05 page 112 #124
112
Lh
h[l]x[n l],
(2)
l=0
where h[n] = 0, n
/ (0, 1, . . . , Lh ).
Show that in an OFDM system, when Lh = 0 the frequency
response of the channel is necessarily flat fading. In other words,
show that the frequency response of all subchannels is the same
(i.e., H [n] = H [m], n, m, where H [k] = DF T {h[l]}).
Show that when Lh > 0 the frequency response of the channel
is frequency selective (i.e., show that Lh > 0 H [n] = H [m]
for at least one different n and m).
Submit your answers to these questions as part of your lab report.
3.3
In this experiment you will observe how the performance of an OFDM system degrades in the presence of a frequency offset. Set up the following
parameters in your system.
TX sample rate = 20 MSamp/sec
TX oversample factor = 20
RX sample rate = 4 MSamp/sec
RX oversample factor = 4
Capture time = 500 sec
Frequency offset (Hz) = 200 Hz
To observe how a frequency offset impacts your system, you will need to
disable the frequency offset correction algorithm implemented in the synchronization block. To do this, simply set Correct Frequency Offset on the
front panel of top ofdm rx.vi to FALSE. Now you will consider two OFDM
systems which use different values for N . First, consider a system which
uses N = 64 subcarriers. Set up the following OFDM parameters.
FFT size (N ) = 64
Length of CP (Lc ) = 8
i
i
i
book2 2011/10/28 14:05 page 113 #125
113
i
i
i
book2 2011/10/28 14:05 page 114 #126
114
3.4
Lab Turn In
Show the instructor that you have replaced the OFDM modulator and demodulator in lab with your own code. Demonstrate to the instructor that your
code is working properly. Also show the instructor that your OFDM system
breaks down when you have frequency offsets greater than the subcarrier
spacing that are not corrected for (i.e., when foffset > c ). Answer all of the
questions above and submit your answers in your lab report.
i
i
i
book2 2011/10/28 14:05 page 115 #127
Summary
In Lab 6 you implemented key features of the orthogonal frequency division multiplexing (OFDM) multicarrier modulation technique. In particular
you implemented the encoding from frequency domain to time domain at
the transmitter, and the low complexity frequency domain equalization at
the receiver. Systems that employ OFDM modulation, like those that employ
single carrier modulation, also require frame synchronization and carrier synchronization, not to mention channel estimation. In Lab 6, frame and carrier
synchronization was performed using the single carrier modulated training
sequence from previous labs. In this lab you will perform frame and frequency synchronization using an OFDM modulated training sequence, using
the short training sequence, as defined by the IEEE 802.11a standard, to perform synchronization. The OFDM system considered in this lab is illustrated
in Figure 1.
The emphasis of this lab is using an OFDM modulated training signal
to perform carrier and frequency synchronization. First you will review the
IEEE 802.11a preamble including short and long training sequences. Then
you will learn about the Schmidl and Cox Algorithm (SCA), which leverages
the periodic structure of the OFDM training sequence to perform frame and
frequency synchronization.
For the pre-lab submission, you have to turn in theVI described in Section 2
(SchmidlCox.vi). Further, you have to submit the answers to questions in
Section 2.
1
1.1
Background
Impairments in Frequency Selective Channel
In this section we review the baseband model for delay and frequency offset in
the presence of a multipath channel. Referring to Figure 1, if the carrier offset
is small and sufficient sampling is employed, then the discrete-time signal at
the receiver after matched filtering and downsampling can be written as
y[n]
j 2 n
L
h[l]w[n l D] + v[n],
l=0
115
i
i
i
i
Symbol
Mapping
z (t )
Insert
Training
g RX [n ]
s[n]
M
M
y[n]
...
Joint Freq
& Frame Sync
Serial
to
Parallel
1:N-K
...
Extract
Training
Insert
K Null
Tones
...
Add
CP
Estimate
Channel
Serial
to
Parallel
( N+L c ):1
IFFT
N
Parallel
to
Serial
(N+L c ):1
FFT
N
FFT
discard
...
Remove
K Null
Tones
Parallel
to
Serial
N-K:1
gTX [n]
Detection
Tx
Ex
Inverse
Symbol Map
D/C
x(t )
bits
Figure 1: The OFDM system considered in this lab including joint carrier frequency offset estimation and frame synchronization.
Tz = T/M
C/D
OFDM Receiver
bits
116
...
...
OFDM Transmitter
i
i
i
book2 2011/10/28 14:05 page 117 #129
117
1.2
In this lab you will use a carefully constructed training sequence to perform
frequency offset synchronization and frame synchronization. Figure 2 shows
the IEEE 802.11a training structure described in the Physical Layer Specification [4]. The training sequence is composed of a short and long
training sequence. The short training sequence is composed of 10 identical
subsequences and has a total length of Nt = 160. The long training sequence
is composed of two identical subsequences with an extra long cyclic prefix.
In this lab you will use the short training sequence. The frame structure will
be the same as the Lab 6 with the time domain training replaced by the short
training sequence.
The short training sequence is created from two OFDM symbols in a
very special way. We describe how it is performed mathematically here.
Consider the symbols {s[n]}N1
n=0 that will be used to generate the coefficients
for one OFDM symbol. Suppose that s[n] is generated by upsampling the
N/L
symbols {s [n]}n=0 where L is an integer. First consider the IDFT with zero
cyclic prefix. Then
N1
2 mn
1
s[m]ej N .
N
w[n]
(1)
m=0
Remembering that s[Ln] = s [n] and that s[n] = 0 for values of n that are
not an integer multiple of L, it follows that
w[n]
N/L1
2 Lmn
1
s[Lm]ej N
N
m=0
1
N
N/L1
s [m]e
mn
j 2
N/L
m=0
i
i
i
book2 2011/10/28 14:05 page 118 #130
118
i
i
i
book2 2011/10/28 14:05 page 119 #131
119
w[n + kN/L] =
m=0
1
N
N/L1
s [m]e
2 mkN/L
mn
j 2
N/L j
N/L
m=0
N/L1
1
j 2 mn
s [m]e N/L
N
w[n].
m=0
N1
m(nLc )
1
s[m]ej 2 N n = 0, ..., N + Lc 1.
N
(2)
m=0
N/L1
c)
1
j 2 m(nL
N/L
s [m]e
N
m=0
=
=
1
N
1
N
L
c 1
s [m]ej 2
m(nLc )
Lc
m=0
L
c 1
mn
s [m]ej 2 Lc ,
m=0
i
i
i
book2 2011/10/28 14:05 page 120 #132
120
N1
y [n + d]y[n + d + W ],
(3)
n=0
where W is half the size of the periodic training sequence and N is the
number of subcarriers.
2. The second step is to compute the average received signal power
P [d]
N1
|y[n + d + W ]|2 .
(4)
n=0
%
%
% R[d] %2
% .
3. From P [d] and R[d], compute M[d] = %%
P [d] %
4. Approximate delay parameter D by solving for d = argmax M[d]
d
P [D]
.
R[D]
(5)
i
i
i
book2 2011/10/28 14:05 page 121 #133
121
6. Correct for the frame offset and frequency offset as in the Moose algorithm.
The algorithm described above is an abbreviated version of the full SCA
discussed in [16]. The full version of this algorithm includes a method for
coarse frequency offset estimation/correction1 , which will not be discussed
in this lab.
Pre-Lab
Questions
Answer the following questions before implementing the Schmidl and Cox
algorithm.
1. In SCA, the delay estimate d is computed through an exhaustive search
over the set of valid delay values (i.e., the search window). Suppose
that the length of the captured sequence is C samples. In terms of C, N ,
Lc , and Nof dm (the number of OFDM symbols in the OFDM payload,
which is described in Lab 6), what is the set of valid delay values you
should search through to find d ?
2. For the IEEE 802.11a short training sequence being used in lab, what
is the range of frequency offsets that can be estimated/corrected using
SCA (or equivalently, the Moose algorithm)? You may assume an
OFDM sample rate of 1/T = 1MH z.
3. Given that the IEEE 802.11a short training sequence contains 10 periods of a length 16 sequence (as described above), propose a frequency
offset scheme that allows you to correct for a greater range of frequencies than computed in the last question. You may assume that the
frame detection problem has been solved, and that an aligned sequence
is available.
Programming
In this lab you will be implementing the Schmidl and Cox algorithm for
frame and frequency synchronization. You may use your previously constructed implementation of the Moose algorithm (or the one available in the
digital communications library provided to you) for frequency offset estimation/correction. This means that you will only need to implement the steps
1 Coarse frequency offset is the same as a modulo offset [i.e., an integer multiple of
1/(2 W T )].
i
i
i
book2 2011/10/28 14:05 page 122 #134
122
of SCA that pertain to frame detection (as described in Section 1.3). You
will build the VI SchmidlCox.vi, described below. After building this VI you
will insert it into OFDM frame detect.vi shown in Figure 4. You can find
OFDM frame detect.vi in the block diagram of OFDM synchronize.vi. The
hierarchy of these files is shown in Figure 3.
As stated in Table 1 and mentioned above, you do not need to reimplement
the Moose algorithm for frequency offset estimation/correction. Reuse your
previous implementation of this algorithm or the one provided to you in the
digital communication library.
You have been provided with templates for the VIs you need to create for
this lab that already have all the inputs and outputs wired for you. What
is required of you is to finish constructing the block diagram to provide the
functionality of the VIs.
Throughout the course, several of the VIs you will create will have a
modulation parameters cluster passed into and out of them. The modulation
parameters in contains many of the parameters needed by your VIs and will
be unbundled from them. This has already been done for you in the template
VIs if necessary. Some VIs will also have modulation parameters out, so that
the cluster can be passed on through to the VIs that follow. Please ensure
that these clusters remain wired the way they are in the template VIs, as
changing how they are wired will cause VIs further down the line to break.
In addition, you will now have access to the OFDM parameters cluster for
OFDM-specific parameters you will need for you VIs. These are accessed in
the same way that parameters from the modulation parameters cluster are.
i
i
i
book2 2011/10/28 14:05 page 123 #135
123
i
i
i
book2 2011/10/28 14:05 page 124 #136
124
INPUTS
OUTPUTS
input
complex
waveform
correct
frequency
offset
IQ waveform
cluster
output
1-D array of
CDB
frame offset
I32
frequency
offset
DBL
Boolean
After inserting your code into the simulator, verify that it correctly finds
the start of the frame and corrects for frequency offset. You should test that
your code works for nontrivial delay and frequency offset up to fM .
Note: The suboptimal Schmidl and Cox algorithm presented here does not
work in the presence of noise or multipath; do not attempt to optimize the
algorithm to compensate for this shortcoming.
You will need to submit a plot (or screen capture of a plot2 ) of M[d] the
frame correlation metric. Generate the plot using dB of noise power
and a delay of 80 sec. Please leave all other parameters set to their default
value.
Pre-Lab Turn In
1. Submit your implementation of SchmidlCox.vi. Make sure you use the
parameters Training Sequence FFT Size and Training Sequence Length
of CP from the OFDM parameters in cluster in your implementation,
as these are parameters corresponding to the training sequence and not
the OFDM payload.
2You can plot a 1-D array of DBL in LabVIEW, simply by placing a waveform graph on the
front panel of your VI and connecting its terminal to the appropriate array on the block diagram
of your VI.
i
i
i
book2 2011/10/28 14:05 page 125 #137
125
Remember, you will be penalized if you do not wire error cluster inputs
and outputs.
Note: If you need to generate additional subVIs for this or any future
labs, please submit these subVIs along with your other pre-lab VIs.
2. Submit your answers to all of the questions in the pre-lab section.
3. Submit your plot of M[d]; generated using the parameters listed below.
Noise power = dB
Delay = 80 sec
Lab Experiment
In the pre-lab you implemented the Schmidl and Cox algorithm and observed
its performance in channels with delay and frequency offset. In this lab experiment you will learn about how noise impacts SCA and an optimization
to SCA which increases the robustness of this frame and frequency synchronization method for OFDM systems.
3.1
As discussed in Section 1.3, SCA attempts to maximize the correlation between the first and second halves of the training sequence. Note that the
training sequence is composed of two identical OFDM symbols [including
their respective cyclic prefixes (i.e., Nt = 2(N + Lc ))]. Because of the cyclic
prefix (or CP), the objective function3 M[d] is the same for all delay values
d (D + Lh , . . . , D + Lc ) in the absence of noise, where D is the actual
delay of the channel. This phenomenon can be graphically interpreted as a
plateau of length Lc Lh , i.e., on which M[d] is maximized.
When noise is added to the system, the entire objective function is perturbed as shown in Figure 5. The once flat plateau of M[d] has now been
distorted. Thus, finding the argument which maximizes M[d] may give only
a rough, often erroneous, approximation of the delay (or frame offset).
Notice that qualitatively speaking the perturbed objective function M[d]
still retains an approximate plateau. Intuitively, this suggests that a better
approximation of delay might be found by finding the start of the plateau.
In the following sections, you will learn more about frame detection errors
and a formal definition of the intuitive method alluded to.
3 The term objective function refers to the function being optimized in a given optimization
problem.
i
i
i
book2 2011/10/28 14:05 page 126 #138
126
Figure 5: Objective function M[d] from SCA. Noise power No = 20 dB and delay
D = 80.
3.2
In Lab 6 that dealt with frame and frequency synchronization you learned how
a frame detection error can lead to severe bit error rates (i.e., a frame offset
estimation error of one can lead to a BER of 0.5). To understand why this
is not necessarily the case in OFDM systems, consider the impact of cyclic
shifts on the DFT of a periodic discrete sequence. Let x[n] be a periodic
sequence with period N and X[k] be the discrete Fourier transform of x[n].
If z[n] = x[(n S) modulo N ] (i.e., x[n] after a cyclic shift of S), then
Z[k]
N1
z[n]e
j 2
kn
N
(6)
n=0
X[k]e
j 2
kS
N ,
(7)
describes the DFT of the shifted sequence z[n]. This implies that a cyclic
th
shift of S imparts a kS
N phase offset to the k subcarrier. Therefore, in an
OFDM system, any frame detection error which leads to a cyclic shift of
the OFDM samples (i.e., after removing the cyclic prefix) will only impart a
constant phase offset to each subcarrier. This phase offset can be accounted
for by a properly formulated channel estimation algorithm.
Consider a frame detection error = d D, where D is the actual delay of
the resulting sequence
the channel. After correcting for the estimated offset d,
may not be aligned to the boundary of an OFDM symbol period. This means
that the start of the first OFDM symbol (i.e., the N samples not including the
CP) is located at Lc + .
i
i
i
book2 2011/10/28 14:05 page 127 #139
127
3.3
The Schmidl and Cox algorithm, as described in Section 1.3, does not perform well in channels with even a moderate amount of noise. This poor
performance stems from the fact that SCA typically overestimates the delay
of the channel. You can use your simulator to verify this behavior.
i
i
i
book2 2011/10/28 14:05 page 128 #140
128
i
i
i
book2 2011/10/28 14:05 page 129 #141
3.4
129
Lab Turn In
Demonstrate to the instructor that your code is working properly. Show the
instructor that your implementation of optimized SCA still breaks when
the algorithm overestimates the delay of the channel. Answer the questions
below.
Additional Questions
In this lab you learned about optimized SCA and how it operates over a real
wireless link. Answer the following questions about your experience in lab.
1. Compare and contrast the following synchronization methods you have
learned about in lab: (1) the self-referenced frame detection method
for a single carrier training sequence5 and (2) optimized SCA for an
OFDM training sequence6 .
2. Using the standard Moose algorithm, with no optimizations or modifications and the entire IEEE 802.11a short training sequence [i.e., where
(Nt = 160) (W = 80)], what is the range of correctable offsets for
IEEE 802.11a systems? Is this the best that you could do?
Hint: You may need to look at the IEEE 802.11a standard to find out
the OFDM sample rate or equivalently the system bandwidth.
5 Here single carrier training sequence refers to the sequence derived from the length 11
Barker code.
6 OFDM training sequence in this context refers to the IEEE 802.11a short training sequence
used in lab.
i
i
i
book2 2011/10/28 14:05 page 130 #142
1
1.1
Background
Structured Channel Codes
Coding theory is a field which encompasses both source and channel coding.
It is largely based on results from finite field algebra. The main idea behind
channel coding is that adding structured redundancy to the source bits for a
transmitted sequence can improve the resilience of transmission to channel
distortion. In other words, a properly designed channel code can improve
the bit-error rate (BER) performance of a system (i.e., reducing the transmit
power required to achieve a particular error performance). A rate (k/n)
code takes a length L bit sequence and generates nL
k bits. There are two
main classes of channel codes: (1) block codes and (2) convolutional codes.
Channel coding is sometimes referred to as forward error correction (FEC)
or error control coding, or just coding.
1 Through the use of guard intervals and an appropriately designed FEQ, OFDM systems can
forgo the complicated equalizer design needed by wideband single carrier systems.
130
i
i
i
Figure 1: A typical digital communication system model. The channel coding is applied before the demodulation and the channel decoding
is applied after the demodulation. In more sophisticated systems, the modulation and coding are jointly designed and decoded.
131
i
book2 2011/10/28 14:05 page 132 #144
132
Channel Code
Hamming Code
ReedSolomon
Code Type
Block
Block
Punctured Codes
Turbo Codes
Low Density Parity Check
(LDPC)
Convolutional
Convolutional
Block
Technology/Standard
In block coding, the encoder first segments the source sequence into blocks
of k bits. Thus each block represents any one of 2k distinct messages. This
block is in turn mapped to a length n bit sequence called a codeword. Each
codeword contains r = n k redundant bits. This kind of code is called
an (n, k) block code and can be used to detect and possibly correct errors.
The resilience of block codes to channel distortion largely depends on the
structure of the r redundant bits.
Convolutional codes are a class of channel codes which employ convolutional encoders. The encoded sequence is a convolution of the algebraic polynomial describing the source bit sequence with a polynomial which describes
the encoder. Equivalently, the i th codeword generated by a convolutional encoder is a weighted sum of the previous input messages to the encoder. This
is similar to the convolution used in linear time-invariant systems and shares
many of the same properties.
Convolutional codes generally have very efficient implementations which
employ shift registers (to retain state or memory) and exclusive-or (XOR)
gates. Block codes, which generally require more logic to implement, are
much easier to analyze. There are a number of tradeoffs between both classes
of codes, but neither class of codes fundamentally provides better error protection than the other. Table 1 lists a variety of new and old channel codes.
1.2
Repetition Codes
Repetition codes are a very simple type of block code. In the remainder of
this section you will
learn
about the encoder, decoder, and probability of error
analysis for a rate n1 repetition code.
Encoder
A rate n1 repetition code converts each message bit into a length n codeword.
More precisely, let I(x) be a mapping from the space of message bits to length
i
i
i
book2 2011/10/28 14:05 page 133 #145
133
I(x) =
(0, 0, . . . , 0),
(1, 1, . . . , 1),
x = 0,
x = 1.
(1)
Thus a rate 13 repetition code has the following input-output relationship
0
1
(0, 0, 0),
(1, 1, 1).
Decoder
(2)
k=n/2
Pre-Lab
In this lab
you will be implementing the encoder and majority decoder for
a rate 13 repetition code. Tables 2 and 3 describe the two VIs that you
are required to build. You will insert your code into the baseband simulator
provided to you in order to verify functionality and correctness.
i
i
i
book2 2011/10/28 14:05 page 134 #146
134
INPUTS
OUTPUTS
information bit
sequence
1-D array of
U8
enable
channel
coding
Boolean
encoded
bit
sequence
1-D array of
U8
INPUTS
OUTPUTS
estimated
bit
sequence
1-D array of
U8
enable
channel
coding
Boolean
decoded
bit
sequence
1-D array of
U8
You will have to insert the repeat encoder.vi and repeat decoder.vi into the
block diagram for OFDM transmitter.vi and OFDM receiver.vi respectively.
Once you have verified that your code is working correctly, you will then
need to set up the following parameters in order to complete the remainder of the pre-lab. These parameters may be located on the front panel of
simulator.vi.
Correct frequency offset? = FALSE
Equalize channel? = FALSE
Synchronization method = Fixed Offset
Channel model = AWGN
i
i
i
book2 2011/10/28 14:05 page 135 #147
135
Leave all unspecified parameters set to their default values. Using this prescribed setup, you will compare the performance of a coded and uncoded
OFDM system over an AWGN channel. You will be required to plot BER as
a function of SNR for both the coded and uncoded systems.
Questions
Answer the following questions about channel coding.
1. According to the union bound for probability of error in QPSK systems,
what SNR is required to maintain a symbol error rate of 103 in an
uncoded OFDM system operating in an AWGN channel?
2. Consider an OFDM system with the following parameters:
(N K) subchannels carry QPSK modulated data,
a length Lc guard interval (or cyclic prefix) is used,
a rate nk channel code is used,
and 1/T is the OFDM sample rate.
In terms of these parameters, what is the effective data rate of this
coded OFDM (COFDM) system? You may ignore the overhead cost
of training in your answer.
3. On the same plot, graph BER as a function of SNR for the coded and
uncoded OFDM systems in an AWGN channel. Vary SNR from 0
to 10 dB in increments of 2 dB (i.e., vary noise power No from 0 down
to 10 dB). Collect average BER statistics using the simulator with
your code for repetition coding.
You must use your LabVIEW code to generate the data for your plots.
Use a logarithmic scale for BER and a linear scale for SNR in your
plot.
4. From the plot you created in the last question, what is the approximate
difference between the SNR required to obtain an error rate of 103 in
the coded and uncoded systems?
Pre-Lab Turn In
1. Submit your implementations of repeat encoder.vi and repeat decoder.vi electronically. Remember to include error cluster inputs and outputs.
Note: If you need to generate additional subVIs for this lab, please
electronically submit these subVIs along with your other pre-lab VIs.
i
i
i
book2 2011/10/28 14:05 page 136 #148
136
Lab Experiment
In this lab, you will evaluate the bit-error rate performance of a coded OFDM
system and show that it is better than that of an uncoded system. The gap
in the SNR required to achieve a particular bit-error probability between
the coded and uncoded OFDM systems is defined as the coding gain of the
channel code.
1
In this lab you will empirically approximate the coding gain
of the rate 3 repetition code over a real wireless link.
3.1
Coding Gain
(3)
G() =
.
1
Pe,c Pe,uc ()
The gap function G() describes the gap between the coded and uncoded
error curves. More precisely, it describes the ratio between the SNR required
to sustain Pe,uc () error rate in the uncoded and coded systems. Thus, coding
gain can be formally defined as
C = lim G(),
or in a decibel scale
CdB = lim
.
1
(Pe,uc ()) ) .
10 log() 10 log(Pe,c
(4)
(5)
Coding gain approaches a constant at high enough SNR. This means that
the gap between the coded and uncoded error curves remains approximately
constant at reasonably high SNR. Intuitively, coding gain can be interpreted
as the amount of additional transmit power required to achieve a particular Pe
in an uncoded system (versus a coded system).
i
i
i
book2 2011/10/28 14:05 page 137 #149
3.2
137
i
i
i
book2 2011/10/28 14:05 page 138 #150
138
2. Estimate the additional pre-wireless channel SNR required by the uncoded system to maintain a similar error rate. To do this, disable the
channel coding feature on the front panels of top tx.vi and top rx.vi.
Also set the Packet length parameter to 3000. You will need to transmit
multiple packets to verify that your estimated transmit power reliably
produces the desired error rate.
3. Based on the SNRs you have estimated in the previous two problems,
what is the coding gain (in dB) of the resulting system?
Hint: X dBm Y dBm = (X Y) dB.
3.3
Lab Turn In
i
i
i
book2 2011/10/28 14:05 page 139 #151
Appendix A
Reference for Common LabVIEW VIs
Appendix A enumerates some of the common VIs you will have to use in
this lab and how to access them (i.e., the path to get to them from the All
Functions tool palette). Note you can also use LabVIEW QuickDrop to
search for VIs by name by clicking <CTRL> + <SPACE> when you are
on a LabVIEW diagram window. For additional information about each VI,
place the VI in a LabVIEW block diagram, right-click on the VI, and select
Help. This will bring you to a detailed description of the VIs behavior as well
as its inputs and outputs.
Insert Into Array.vi
ProgrammingArray
Interleave 1D Arrays.vi
ProgrammingArray
ProgrammingArray
Unbundle By Name.vi
ProgrammingTiming
MathematicsNumeric
Complex To Polar.vi
ProgrammingNumericComplex
Complex To Re/Im.vi
ProgrammingNumericComplex
Case Structure.vi
ProgrammingStructures
Local Variable.vi
ProgrammingStructures
Convolution.vi
FFT.vi
Signal ProcessingTransforms
Inverse FFT.vi
Signal ProcessingTransforms
Mean.vi
A x B.vi
MathematicsLinear Algebra
Inverse Matrix.vi
MathematicsLinear Algebra
Generate Bits.vi
ModulationDigital
Fractional Resample.vi
ModulationAnalogUtilities
ModulationDigitalUtilities
ModulationDigitalUtilities
139
i
i
i
i
book2 2011/10/28 14:05 page 140 #152
i
i
i
book2 2011/10/28 14:05 page 141 #153
Bibliography
[1] Breed, G., Analyzing Signals Using the Eye Diagram, High Frequency
Electronics, pp. 5053, November 2005.
[2] Heath Jr., R. W., EE 371C / EE 381V: Wireless Communications Lab,
http://www.profheath.org/teaching/ee-371c-ee-381v-wireless-communications-lab/, accessed September 2011.
[3] Heath Jr., R. W., Introduction to Wireless Digital Communication: A
Signal Processing Perspective, course notes for EE 371C taught at The
University of Texas at Austin.
[4] IEEE-SA Standards Board, IEEE Std 802.11a-1999 (R2003)Part 11:
Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY)
Specification. High Speed Physical Layer in the 5 GHz Band, June 12,
2003, from http://standards.ieee.org/
[5] National Instruments, LabVIEW Fundamentals, August 2005, retrieved
December 14, 2005 from http://www.ni.com/pdf/manuals/374029a.pdf.
[6] Johnson, Richard C. and Sethares, William A., Telecommunications
Breakdown: Concepts of Communication Transmitted via SoftwareDefined Radio, Prentice Hall, 2003
[7] Moose, P., A technique for orthogonal frequency division multiplexing
frequency offset correction, IEEE Trans. Commun., vol. 42, no. 10, pp.
29082914, October 1994.
[8] National Instruments, Bandwidth, Sample Rate, and Nyquist Theorem,
retrieved September 13, 2011, from http://zone.ni.com/devzone/cda/
tut/p/id/2709.
[9] National Instruments, Getting Started with NI LabVIEW Student Training, June 2010, retrieved September 13, 2011, from http://zone.ni.com/
devzone/cda/tut/p/id/7466.
141
i
i
i
i
book2 2011/10/28 14:05 page 142 #154
142
Bibliography
[10] National Instruments, How Can I Learn LabVIEW?, retrieved September 13, 2011, from http://www.ni.com/gettingstarted/labviewbasics.
[11] National Instruments LabVIEW 101, retrieved September 13, 2011,
from http://www.ni.com/lv101.
[12] National Instruments, LabVIEW Fundamentals, August 2007, retrieved
September 23, 2011, from http://www.ni.com/pdf/manuals/374029c.pdf.
[13] National Instruments NI USRP information, retrieved September 13,
2011 from http://www.ni.com/usrp.
[14] National Instruments, Understanding RF & Microwave Specifications
Part I, retrieved September 13, 2011, from http://zone.ni.com/devzone/
cda/tut/p/id/4446.
[15] National Instruments, Understanding RF & Microwave Specifications
Part II, retrieved September 13, 2011, from http://zone.ni.com/devzone/
cda/tut/p/id/4448.
[16] Schmidl, T. M. and Cox, D., Robust frequency and timing synchronization for OFDM, IEEE Trans. Commun., vol. 45, no. 12, pp. 16131621,
1997.
[17] Wikipedia Software-defined radio, retrieved September 13, 2011, from
http://en.wikipedia.org/wiki/Software radio.
i
i
375775A-01.pdf
9/12/11
2:53 PM
ISBN 9781934891186
90000 >
*375775A-01*
375775A-01
03014
9 781934 891186