abstract - .:: · pdf fileauthor : background, ofdm simulation, equalization this thesis was...
TRANSCRIPT
Abstract
The concept of OFDM is not new but receiver designs are constantly im-proved. With new advances in DSP technologies, OFDM has become popularfor the reasons of efficient bandwidth usage and ease of synthesis with newDSP technology. However, it is sensitive to synchronisation error and has arelatively large peak to average power ratio. This thesis will provide an overall look into OFDM systems and its developments. It will also look into thechallenges OFDM faces and concentrate on three main aspects of an OFDMreceiver design, the channel estimation, equalization and synchronisation.
i
ii CHAPTER 0. ABSTRACT
Acknowledgements
We would like to thank Dr Choi for providing our team with guidance andsharing his wisdom in learning with us. Many thanks to Stephen with hisgreat help in LaTeX and signal processing concepts. Thanks also to Alfredand Buu for support in the thesis labs which were at times stressful andfrustrating but making it all the more worthwhile in the end.
iii
iv CHAPTER 0. ACKNOWLEDGEMENTS
Forward
James Shen
Author : Background, OFDM Simulation, Equalization
This thesis was difficult to do, particularly from scratch. My goal was toget a thorough understanding of the fundamentals of OFDM and it’s under-lying intricacies.
It is hard to come by materials which explain concepts without needinga high degree of prior knowledge. I have waged through much material onlyto have them become much clearer towards the end of this thesis. In such, Ihave tried to layout this thesis from first priciples.
I believe the basic principals are most important. One cannot design agood OFDM system without having a great deal of understanding and afeeling for the how it all works. It is most important to ask yourself qualityquestions to get quality answers. I enjoyed this thesis and have learnt much,more than just the maths too.
Mathew Liu
Du Le
v
vi CHAPTER 0. FORWARD
Contents
Abstract i
Acknowledgements iii
Forward v
1 Introduction 1
2 Background 32.1 DFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 Convolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3 Zero Padding . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.4 Nyquist and Shannon . . . . . . . . . . . . . . . . . . . . . . . 62.5 Nyquist Condition for Zero ISI . . . . . . . . . . . . . . . . . . 82.6 Random Processes . . . . . . . . . . . . . . . . . . . . . . . . 10
2.6.1 Time Averages . . . . . . . . . . . . . . . . . . . . . . 112.7 Linear Prediction . . . . . . . . . . . . . . . . . . . . . . . . . 122.8 Wiener Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . 132.9 Multipath Channels . . . . . . . . . . . . . . . . . . . . . . . . 14
2.9.1 Power Delay profile . . . . . . . . . . . . . . . . . . . . 152.9.2 RMS Delay Spread . . . . . . . . . . . . . . . . . . . . 152.9.3 Coherence Bandwidth . . . . . . . . . . . . . . . . . . 152.9.4 Coherence Time . . . . . . . . . . . . . . . . . . . . . . 162.9.5 Doppler Spectrum . . . . . . . . . . . . . . . . . . . . 162.9.6 Fading in Multipath . . . . . . . . . . . . . . . . . . . 16
3 OFDM basics 193.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.2 Advantages / Disadvantages . . . . . . . . . . . . . . . . . . . 203.3 Multicarrier vs Single carrier . . . . . . . . . . . . . . . . . . . 203.4 Orthogonality . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
vii
viii CONTENTS
3.4.1 OFDM sub-carriers . . . . . . . . . . . . . . . . . . . . 213.4.2 OFDM Spectrum . . . . . . . . . . . . . . . . . . . . . 22
3.5 Cyclic Prefix / Guard Interval . . . . . . . . . . . . . . . . . . 233.5.1 Inter symbol Interference . . . . . . . . . . . . . . . . . 243.5.2 Inter carrier Interference . . . . . . . . . . . . . . . . . 24
3.6 IDFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.7 OFDM Transmitter Block . . . . . . . . . . . . . . . . . . . . 253.8 OFDM Receiver Block . . . . . . . . . . . . . . . . . . . . . . 25
4 OFDM Simulation Model 274.0.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 274.0.2 The Simulation . . . . . . . . . . . . . . . . . . . . . . 284.0.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . 36
5 Channel Estimation 415.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415.2 System Environment . . . . . . . . . . . . . . . . . . . . . . . 42
5.2.1 Wireless . . . . . . . . . . . . . . . . . . . . . . . . . . 425.2.2 Multipath Fading . . . . . . . . . . . . . . . . . . . . . 425.2.3 Fading Effects due to Multi-path Fading . . . . . . . . 425.2.4 White noise . . . . . . . . . . . . . . . . . . . . . . . . 43
5.3 Channel Model . . . . . . . . . . . . . . . . . . . . . . . . . . 435.3.1 Rayleigh Distribution . . . . . . . . . . . . . . . . . . . 455.3.2 Power Delay Profile . . . . . . . . . . . . . . . . . . . . 465.3.3 AWGN . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.3.4 Channel Synchronisation . . . . . . . . . . . . . . . . . 475.3.5 Assumptions on channel . . . . . . . . . . . . . . . . . 48
5.4 Pilot Based Channel Estimation . . . . . . . . . . . . . . . . . 485.5 Least Squares Estimator . . . . . . . . . . . . . . . . . . . . . 485.6 Linear Minimum Mean Square Error Estimator . . . . . . . . 495.7 Wiener Optimum Filters . . . . . . . . . . . . . . . . . . . . . 515.8 Optimal Rank Reduction using Singular Value Decompositions 51
5.8.1 Singular Value Decompositions . . . . . . . . . . . . . 525.9 Simulation Results and Comparisons . . . . . . . . . . . . . . 525.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6 Equalization 556.1 Introduction to Equalization . . . . . . . . . . . . . . . . . . . 556.2 Linear Equalization . . . . . . . . . . . . . . . . . . . . . . . . 566.3 Zero-Forcing Equalizer . . . . . . . . . . . . . . . . . . . . . . 57
6.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 57
CONTENTS ix
6.3.2 Implementation and Results . . . . . . . . . . . . . . . 596.4 LMMSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 636.4.2 Implementation and Results . . . . . . . . . . . . . . . 65
6.5 Adaptive Equalization . . . . . . . . . . . . . . . . . . . . . . 666.6 Method of Steepest Descent . . . . . . . . . . . . . . . . . . . 666.7 LMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
6.7.1 Adaptation Algorithm . . . . . . . . . . . . . . . . . . 686.7.2 Implementation and Results . . . . . . . . . . . . . . . 69
6.8 RLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736.8.1 Least Squares . . . . . . . . . . . . . . . . . . . . . . . 736.8.2 Adaptation Algorithm . . . . . . . . . . . . . . . . . . 746.8.3 Implementation and Results . . . . . . . . . . . . . . . 76
6.9 Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776.10 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
7 Synchronisation 81
8 Further Research 83
9 Conclusion 85
Appendix A 91
Appendix B 97
Appendix C 103
Appendix D 109
Appendix E 115
Appendix F 119
Appendix G 123
Appendix G 127
x CONTENTS
List of Figures
2.1 DFT axes mapping. . . . . . . . . . . . . . . . . . . . . . . . . 52.2 Zero padding in the time domain. . . . . . . . . . . . . . . . . 72.3 Inter-symbol interference in eye patterns. . . . . . . . . . . . . 82.4 Scatter graph depiction. (a) Transmitted Symbols, (b) Re-
ceived Symbols. . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1 Harmonics which are summed to create sub-carriers. . . . . . . 223.2 OFDM symbol spectrum. . . . . . . . . . . . . . . . . . . . . . 23
4.1 OFDM simulation block diagram. . . . . . . . . . . . . . . . . 294.2 Signal at (B). . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.3 Signal at (E). . . . . . . . . . . . . . . . . . . . . . . . . . . . 324.4 Signal at (F). . . . . . . . . . . . . . . . . . . . . . . . . . . . 334.5 Signal at (G). . . . . . . . . . . . . . . . . . . . . . . . . . . . 344.6 Signal at (G)/(H). . . . . . . . . . . . . . . . . . . . . . . . . 364.7 Signal at (G)/(H). . . . . . . . . . . . . . . . . . . . . . . . . 374.8 Signal at (J). . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.9 Signal at (N). . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.1 Parallel Gaussian channels. . . . . . . . . . . . . . . . . . . . . 435.2 Resampling a non-sample-spaced channel extends the channel
length. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.3 An example of block based pilot information. . . . . . . . . . . 495.4 Block diagram of the rank-p channel estimator. . . . . . . . . 53
6.1 Linear transversal filter. . . . . . . . . . . . . . . . . . . . . . 566.2 Zero-forcing equalizer block diagram. . . . . . . . . . . . . . . 586.3 OFDM Zero-forcing equalizer block diagram. . . . . . . . . . . 606.4 OFDM Zero-forcing equalizer block diagram for simulation. . . 606.5 Diagram of 3 types of symbol sequences. . . . . . . . . . . . . 616.6 Error of Zero-forcing equalizer over 10 OFDM symbols. . . . . 626.7 OFDM Zero-forcing equalizer BER vs SNR (dB). . . . . . . . 63
xi
xii LIST OF FIGURES
6.8 LMS equalizer block diagram. . . . . . . . . . . . . . . . . . . 696.9 LMS equalizer tracking over first symbol. . . . . . . . . . . . . 706.10 Error sequence over the first OFDM symbol. . . . . . . . . . . 716.11 Error sequence of LMS tracking over 10 OFDM symbols. . . . 726.12 RMS equalizer block diagram. . . . . . . . . . . . . . . . . . . 776.13 RLS tracking over first OFDM symbol. . . . . . . . . . . . . . 786.14 Error sequence of RLS tracking over first OFDM symbol. . . . 796.15 LMS vs RLS in tracking 5 OFMD symbols. . . . . . . . . . . . 80
Chapter 1
Introduction
Where did it begin?In 1966 Robert W. Chang published a paper on the synthesis of ban-
dlimited orthogonal signals for multichannel data transmission [7]. It de-scribes a method in which signal can be simultaneously transmitted througha bandlimited channel without ICI (Interchannel Interference) and ISI (Inter-symbol Interference). The idea of dividing the spectrum into several channelsallowed transmission at a low enough data rate to counter the effect of timedispersion in the channel. As the subchannels are orthogonal they can over-lap providing a much more efficient use of the available spectrum.
In 1971, S.B. Weinstein and P.M. Ebert introduced the DFT (DiscreteFourier Transform) to perform the baseband modulation and demodulation[9]. This replaced the traditional bank of oscillators and multipliers neededto create and modulate onto each subcarrier.
In 1980, A.Peled and A. Ruiz introduced the cyclic prefix [8].This takesthe last part of the symbol and attaches it to the front. When this extensionis longer than the channel impulse response, the channel matrix is seen ascirulant and orthogonality of the subcarriers is maintained over the timedispersive channel.
OFDM is currently used in European Digital Audio Broadcasting (DAB).OFDM is used in DSL (Digital Subscriber Line) where it is know as DMT(Discrete Multitone). It is used in the European standard Hyperlan/2 andin IEEE 802.11a.
This thesis will explore concepts and designs which have already beenestablished and look into some newer technologies. However, we will concen-trate on what really makes an OFDM system work, for which a certain degreeof knowledge and understanding of signal processing and digital communi-cations is necessary. From here, we will launch into important backgroundinformation which did take a somewhat long time to understand. I hope you
1
2 CHAPTER 1. INTRODUCTION
will find the explanation clear and insightful!
Chapter 2
Background
This chapter explains the main concepts needed to understand an OFDMsystem. The principles behind OFDM are quite simple but it is importantto thoroughly understand these. It is the basics we have spent most time tounderstand. The following background sections are not frequently referencedas they are mostly basic open knowledge which we attempt to insightfullyexplain.
2.1 DFT
The DFT is no doubt one of the most important components of the OFDMsystem. It replaces the need for the large carrier banks of traditional multi-carrier systems. Refer to Chapter 3.
One cannot hope to understand any further concepts without a thoroughunderstanding of the foundations, particulary in the DFT. I will attempt toexplain the DFT in an intuitive and insightful way.
Music notes are made up of sinusoids of harmonics of a fundamental fre-quency. In wireless communications, carriers are sinusoids. The motivationof the DFT is to project a signal onto a basis that is made up of such har-monics. This provides great insight into why the DFT matrix looks like itdoes. Further more, sinusoids of different harmonics are orthogonal to eachother. This is a very important characteristic for the basis of the DFT. Thisorthogonal criterion is as follows
∫ T
0
sin(2πkt
T) sin(
2πlt
T) dt =
{T2
(k = l and k, l 6= 0)
0 (k 6= l and k, l 6= 0)(2.1)
It is not usually conventional, but let us first take a look at the DFT ma-trix. The DFT matrix is made up complex exponentials and is common and
3
4 CHAPTER 2. BACKGROUND
conveniently defined as
WN =
1 1 1 · · · 11 e−j2π/N e−j2π/N · · · e−j2π(N−1)/N
1 e−j4π/N e−j8π/N · · · e−j2π2(N−1)/N
......
.... . .
...1 e−j2π(N−1)/N e−j2π(N−1)/N · · · e−j2π(N−1)(N−1)/N
(2.2)
where N is the size of the DFT. Noting that
W kN = (ej2π/N)k = ej2πk/N (2.3)
where k is the frequency index and that {W kN}k=0,1,...,N−1 are the N complex
roots of unity. So now let us define
wk[n] = W nkN = ej 2πnk
N (2.4)
This allows us to express the DFT as
X[k] = 〈x,wk〉 (2.5)
and the inverse as
x =1
N
N−1∑
k=0
X[k]wk (2.6)
This formulation provides great insight into the DFT operation! We can seethat the vectors wk form the basis of the set of the N input sequence x. Asmentioned before, the basis is orthogonal as 〈wi,wj〉 = 0 for i 6= j.
We can even define orthonormal basis sets but we will not do that at thisstage.
So in all, the DFT is conventionally expressed as
X[k] =N−1∑n=0
x[n]e−j 2πnkN , 0 ≤ k < N (2.7)
x[n] =1
N
N−1∑
k=0
X[k]ej 2πnkN , 0 ≤ n < N (2.8)
Since DFT has only finite support, 0 ≤ n < N , it is a sampling of the trueFourier Transform x(ω) of the input sequence x(t).
Let us now finish off by describing how the samples in the time domainmap to the samples in the frequency domain. See Figure 2.1 As you cansee above that the highest positive frequency is the Nyquist frequency at
2.2. CONVOLUTION 5
⇐⇒x[k]
N − 10
0t
k k
X[k]
+f −f
N − 1N/20
0f
f = N/2T
DFT
T
f = −2/T
f = −1/T
Figure 2.1: DFT axes mapping.
sample number N/2. Note that in Matlab, when mapping the frequencyaxis, if you put an array [f1 f2] defined as f1 = 1/T:1/T:N/(2*T); f2
= -N/(2*T):1/T:-1/T; what you will actually see in the graph is a correctmapping but Matlab will just simply reorder the axes from negative to posi-tive. The point is, as long as you map the axes correctly, you will avoid muchtrouble.
2.2 Convolution
The concept of convolution is important because the property of circularconvolution will come into play. We all know that a property of the Fouriertransform is that multiplication in the frequency domain has the effect ofconvolution in the time domain. Meaning
y = h(ω)x(ω) ⇐⇒ y[n] = (h ? x)[n] (2.9)
where convolution is defined as
(h ? x)[n] =∞∑−∞
x[i]h[n− i] (2.10)
Convolution of two discrete sequences of length M and N results in a se-quence of length M + N − 1.
The DFT has a similar but different property. Multiplication in timeresults in a circular convolution in the frequency domain and produces asequence of length N for a DFT defined by 0 ≤ n < N . This is a property
6 CHAPTER 2. BACKGROUND
important in the use of the Cyclic Prefix that will be described in greaterdetail in Section 3.5. So we have
y = h(ω)x(ω) ⇐⇒ y[n] = (h⊗ x)[n] (2.11)
where convolution is defined as
(h⊗ x)[n] =N−1∑
k=0
x[k]h[(n− k)modN ] (2.12)
As you can see, what basically happens is that the summation is wrappedaround by the mod function. When we start summing at indexes greaterthan N , we just go back to the start. This makes perfect sense as otherwisethere would be a loss of information if we were to chop off convolutions in atN with which the DFT supports.
2.3 Zero Padding
Zero padding has interesting properties which are used in our system. Theimportance of zero padding in relation to the DFT is that the DFT is discreteand finitely supportive. Thus we need at times, we may need to increase sam-pling rates for better resolutions of signals. Sampling rates can be changedby a rational factor Mu
Md. This can be done by first interpolating at Mu and
then decimating at Md. It could be done in the reverse but that would leadto a loss of too much information.
Zero padding can be used in achieve the same effect when a higher reso-lution is needed in the frequency domain. Zero padding in the time domaingives what is called spectral interpolation. In the time domain, zero paddingat the end of a signal results in the increase in spectral samples which aresamples of the true Fourier transform. This provides higher resolution. Anexample is shown in Figure 2.2
Zero padding in the frequency domain has two distinct differences. Firstly,we zero pad after the Nyquist frequency at N/2 samples. This is because itis the highest positive frequency and we can maintain spectral symmetry indoing so. Secondly, we obtain a time domain sequence which has a reducedamplitude. This easily be fix by a multiplication of a constant gain of Mu.
2.4 Nyquist and Shannon
Here’s a bit of history to lead us into the next section. Nyquist set out tofind the optimum pulse shape bandlimited to W Hz which maximized the
2.4. NYQUIST AND SHANNON 7
0 5 10 15 20 25 30 350
0.5
132 point Hanning window
ampl
itude
0 5 10 15 20 25 30 350
10
2032 point FFT
ampl
itude
dB
0 20 40 60 80 100 120 1400
0.5
1132 point Hanning window
ampl
itude
0 20 40 60 80 100 120 1400
10
20
132 point FFT
ampl
itude
dB
Figure 2.2: Zero padding in the time domain.
bit rate over a bandlimited telegraph channel without ISI (Inter ChannelInteference).
His findings led him to what is now called the Nyquist rate, that is themaximum pulse rate 2W pulses/s. This pulse rate was found to be achievedby sinc interpolation, that is using a pulse (sin2πWt)/2πWt. This is alsohow we may obtain f(t) from x[n], where f(t) is the true Fourier transformof x[n]. This is called the Nyquist Cycle.
Shannon derived limits for digital communications systems and estab-lished foundations in information transmission. He incorporated transmis-sion power, bandwidth and noise into what is called the channel capacity.An ideal band-limited channel with white Gaussian noise and bandwitdh Whas a caapcity C given by
C = Wlog2(1 +P
WNo
) bits/s (2.13)
8 CHAPTER 2. BACKGROUND
Here, P is the average transmitted power and No is the PSD (Power SpectralDensity) of the white noise.
2.5 Nyquist Condition for Zero ISI
The amount of inter-symbol interference can be viewed through what iscommonly called eye patterns, shown in 2.3. Two dimensional digitaleye patterns are commonly known as scatter graphs, shown in Figure 2.4.They compare the constellation of the original transmitted symbols to thatof the received ones.
Sampling time
Noise marginPeak distortion
Timing error sensitivity
Figure 2.3: Inter-symbol interference in eye patterns.
Let’s now have a look at an expression for inter-symbol interference[3,p.554]. I first hesitated to put this in because the maths is not very insightfulbut the formulas in its form will be seen again. When we receive a signal itcan be expressed as
y(t) =∞∑
n=∞xng(t− nT ) + v(t) (2.14)
where g(t) represents the overall channel filter, xn the input sequence andv(t) a noise sequence.
If y(t) is samples now at t = kT + τ0, k = 0, 1, ..., then we have
y(kT + τ0) ≡∞∑
n=0
xng(kT − nT + τ0) + v(kT + τ0) (2.15)
2.5. NYQUIST CONDITION FOR ZERO ISI 9
(b)(a)
Figure 2.4: Scatter graph depiction. (a) Transmitted Symbols, (b) ReceivedSymbols.
which can be written simply as,
yk ≡∞∑
n=0
xngk−n + vk, k = 0, 1, ... (2.16)
here τ0 is the delay through the channel. We can now re-write this as
yk = g0
(xk +
1
g0
∞∑
n=0, n 6=k
xngk−n
)+ vk, k = 0, 1, ... (2.17)
For the sake of convenience, we now set g0 = 1 and we get
yk = xk +∞∑
n=0, n 6=k
xngk−n + vk, k = 0, 1, ... (2.18)
And finally, this is the form we want to arrive at because the first term xk
represents the desired symbol and more importantly the second term
∞∑
n=0, n 6=k
xngk−n (2.19)
represents the ISI. vk is the additive noise at the sampling instant k.The condition for no inter-symbol interference is
p(t = nT ) ≡ xn =
{1 (n=0)
0 (n = ±1,±2, ..)(2.20)
for a pulse shape p(t) and a sampling period of T . There are long mathe-matical proofs that provide further insight. But the principal is really quitesimple and intuitive.
10 CHAPTER 2. BACKGROUND
Picture sampling a signal at period T . To change this discrete signal intoan analog signal, we can introduce a convolution with a pulse shape. Thispulse shape obviously needs to have nulls at all other sampling points otherthan the current sampling point for which we are shaping. Otherwise we willbe interfering with other symbols.
This condition is know as the Nyquist pulse− shaping criterion or theNyquist condition for zero ISI. What has been shown is
p(t)∞∑
k=−∞δ(t− kT ) =
∞∑
k=−∞p(kT )δ(t− kT ) = δ(t) (2.21)
This just demonstrates the recovery of the samples as explained earlier. Itbasically follows the previous criteria. From here, we can do a Fourier trans-form to obtain
∞∑m=−∞
P (f − m
T) = T (2.22)
So it follows that the smallest theoretical bandwidth to obtain 0 ISI is W =1/2T . This would obtained by using the ideal bandlimited sinc-pulse. In thefrequency domain, it is always symmetrical with respect to 1/2T .
2.6 Random Processes
This section has been included because our signals, channel and interferencesneed to be characterized in some statistical sense and standard notation. Solet’s define some of the terms to get us familiar with the underlying statisticsbehind our OFDM system.
Firstly, what is a stochastic process? A stochastic process is a randomprocess that generates a random variable at any given instant of time. Arandom variable is only but a single realization of all the possible samples orsample functions. The entire set of all possible sample functions is termedthe ensemble. This is in general often assumed to be infinite in size and allwe can do is to estimate this for which there are statistical averages to do so.
We will always denote random variables in capitals. Now let’s take asequence of random variables Xt, t = n, n+1, ...,m from a stochastic processX(t). If we take another sequence of an arbitrary time shift k and if the jointPDFs Xt and Xt+k are identical, then we say that original stochastic processis stationary.
What is a PDF? Well, the Probability Distribution Function can becharacterized by a funciont F (x) of the random variable X where we consider
2.6. RANDOM PROCESSES 11
X ≤ x where x ε <. Then we can write
F (x) = P (X ≤ x), −∞ < x < ∞ (2.23)
2.6.1 Time Averages
Now that we have said that these ensembles are generally infinitely large, howcan estimate them? Let’s first take a look at some definitions that requireaveraging over the infinite length ensemble and then refine it to its estimates.
We shall restrict our attention to WSS random processes. Wide-SenseStationary (WSS) is just the property of having stationary mean and autocor-relation functions. You most probably will come across the term mean ergodic,so let’s quickly define this. If for realizations x[n] of a random process X[n],the time average mx is always be found to be equal to the ensemble averageµX , then the random process is said to be mean-ergodic. The time averageof a specific realization can be defined as
mx = limN→∞
1
2N + 1
N∑n=−N
x[n] (2.24)
Now the autocorrelation for realizations x[n] of process X[n], can be definedas
rxx[m] = limN→∞
1
2N + 1
N∑n=−N
x[n]x[n−m] (2.25)
This is the correlation ergodic random process which will always result in thesame sequence for the underlying random process. Note here that rxx[n] iscalculated from a single realization whereas RXX [m] is a statistical propertyof the underlying random process.
Now we are able to look at what is called Biased and Unbiased estimatesof RXX [m]. For a sequence x[n] for 0 ≤ n < N , the unbiased estimate is asfollows
runbiasedxx [m] =
1
N − |m|N−1−m+max(0,m)∑
n=max(0,m)
x[n]x[n−m], |m| < N (2.26)
This is said to be unbiased because the average is taken over all outcomesx[n].
Another estimate can be formed and that is of the biased estimate
rbiasedxx [m] =
1
N
N−1−m+max(0,m)∑
n=max(0,m)
x[n]x[n−m], |m| < N (2.27)
12 CHAPTER 2. BACKGROUND
2.7 Linear Prediction
I believe this section is worth talking about since it leads directly into Wienerfilters and all other filters we will deal with. We will see the famous normalequations which is really just a solution to a second order problem of min-imising mean square errors. Hence, this solution and its many forms arebasically seen everywhere!
The aim of linear prediction is to predict a future sample of a randomprocess. How is this possible? We try to find a set of coefficients a1, a2, ..., aN
of past values which will minimize the prediction error e[n]. Let’s write someequations
x[n] =
p∑i=1
aixn−i (2.28)
here x[n] is the prediction of the actual value of x[n]. The prediction errorsequence e[n] is commonly known as the innovations sequence as it hasfundementally new information.
e[n] = x[n]− x[n] (2.29)
What we now want to do is to minimize expected squared prediction er-ror. We will use X[n] since we want to find coefficients that work for theunderlying random process X[n].
E[(X[n]− X[n])2] = E
(X[n]−
N∑i=1
aiX[n− i]
)2 (2.30)
Now what is called the normal equations is found by differentiating withrespect to ap for each p. The derivative set to zero gives
0 =∂
∂ap
E
(X[n]−
N∑i=1
aiX[n− i]
)2
= 2E
[X[n− p]
(X[n]−
N∑i=1
aiX[n− i]
)]
= 2E[X[n− p]X[n]]− 2N∑
i=1
E[aiX[n− p]X[n− i]]
= 2RXX [p]− 2N∑
i=1
aiRXX [p− i], 1 ≤ p ≤ N (2.31)
2.8. WIENER FILTERING 13
If we write this out in matrix form, we can see that RXX has a particularstructure known as toeplitz for which robust algorithm for its inverse exist.
RXX [0] RXX [0] · · · RXX [N − 1]RXX [1] RXX [1] · · · RXX [N − 2]
......
. . ....
RXX [N − 1] RXX [N − 2] · · · RXX [0]
a1
a2...
aN
=
RXX [1]RXX [2]
...RXX [N ]
using the notation representaion
RXXa = r
for which we can solve for the coefficients
a = R−1XXr (2.32)
2.8 Wiener Filtering
We are actually not talking about sausages here but something just as in-teresting. In linear prediction, we assume we have access to the sequencey[n − i], 1 ≤ i < N where N is the filter order, for which we predict y[n].But in most real cases we do not have access to the original sequence. Itis usually corrupted by noise or interference when received. So what we donow is we predict y[n] from another sequence x[n] which comes from theprocess X[n]. For this to work, the random processes Y [n] and X[n] mustbe correlated in some way otherwise the prediction would be of no use.
Like Linear prediction, we will try to find the optimal coefficients a0, .., aN
to predict y[n].
y[n] =N∑
i=0
aixn−i (2.33)
Again, we try to minimize the expected power of the error e[n] = y[n]− y[n].That is we try to minimize
E[(Y [n]− X[n])2] = E
(Y [n]−
N∑i=0
aiX[n− i]
)2 (2.34)
At this point, we can differentiate or apply the orthogonality principle withwhich we can say that an optimal linear predictor will provide an innovationE[n] which is uncorrelated with the source random variables. Note that E[n]
14 CHAPTER 2. BACKGROUND
here should not be confused with an expectation of n. It is the randomprocess from which the realization e[n] is made.
0 = E[E[n]X[n− p]]
= E
[(Y [n]−
N∑i=0
aiX[n− i]
)X[n− p]
]
= RY X [p]−N∑
i=0
aiRXX [p− i], 0 ≤ p ≤ N (2.35)
In matrix from, the expression is as follows. This should look familiar
RXX [0] RXX [0] · · · RXX [N ]RXX [1] RXX [1] · · · RXX [N − 1]
......
. . ....
RXX [N ] RXX [N − 1] · · · RXX [0]
a1
a2...
aN
=
RXX [0]RXX [2]
...RXX [N ]
The coefficients a0, .., aN form an FIR filter. When we filter the source se-quence x[n], we will obtain y[n]. This is simply what is known as the N th
order Wiener filter!
2.9 Multipath Channels
The concept of multipath propagation is very simple, there is no need fora diagram. Whenever a signal is transmitted and there are obstacles andsurfaces for reflection, multiple reflected signals of the same source can ar-rive at the receiver at different times. Such “echoes” will no doubt effectother incoming signals. These echoes are directly influenced by the materialproperties of the surface it reflects or permeates. These can be relative todieletric constants, permeability, conductivity, thickness, etc. These echoescan contain useful information but we will not concern ourselves with thatfield of study in this thesis.
Multipath propagation in indoor environments are traditionally modeledusing ray tracing which just calculates all the reflections. If no measureare taken to counter the echoes, then these echoes will interfere with othersignals causing ISI. We will now describe multipath with some mathematicalterminology.
2.9. MULTIPATH CHANNELS 15
2.9.1 Power Delay profile
The PDP is defined as the square absolute value of the channel impulseresponse.
P (t) =N−1∑
k=0
a2kδ(t− τk) (2.36)
P (t) is the PDP as a function of t, k is the filter tap index and τ is thetime delay. The PDP represents the relative received power in excess delaywith respect to the first path. Power delay profiles are usually found byaveraging instantaneous PDP measurements. With indoor RF channels, thePDP of the channel is most usually an exponentially decaying function. Andof course the instantaneous frequency response of a channel can be calculatedfrom the PDP.
2.9.2 RMS Delay Spread
The RMS delay spread τrms, follows directly from PDP so let’s quickly definewhat it is
τrms =
√∫(t− τ)2P (t)dt∫
P (t)dtwhere τ =
∫tP (t)dt
P (t)dt(2.37)
The value τrms can be used as a rough indication of the maximum data ratethat can be reliably supported by the channel without equalization.
2.9.3 Coherence Bandwidth
The coherence bandwidth Bcoh gives a measure of the statistical averagebandwidth for which the channel characteristics are correlated.
Let us start by defining the autocorrelation of a channel frequency re-sponse from its statistical expectation. According to [1, p.21]
R(∆f) = E[H(f)H∗(f + ∆f)] =1
1 + j2πτrms∆f(2.38)
and
R(∆f) = E{|H(f)||H∗(f + ∆f)|} =1
1 + (2πτrms∆f)2(2.39)
Now Bc is defined as the value of ∆f for which RA(∆f) has decreased with3 dB
R(∆f)
R(0)=
1
2for which ∆f = Bc (2.40)
It is useful to note that for exponential delay spread channels, Bc = 1/(2πτrms).
16 CHAPTER 2. BACKGROUND
2.9.4 Coherence Time
The coherence time Tc is the time for which the correlation of the channelresponses decrease by 3 dB. The time correlation function is defined as
R(∆t) =
∫h(t)h∗(t + ∆t)dt (2.41)
As the time between two channel responses increase, the correlation generallydeclines.
2.9.5 Doppler Spectrum
The Doppler spectrum can be obtained from the Fourier transform of thetime correlation function.
Ph(f) =
∫R(∆t)e−j2πftd∆t (2.42)
The Doppler bandwidth is defined as the 3dB bandwidth of the Dopplerspectrum.
2.9.6 Fading in Multipath
The terminology we have so far defined allows us to conveniently characterizedifferent types of channels.
The first two are characterised in the frequency domain and the lattertwo are characterised in the time domain.
Let’s first look at Non-Frequency Selective (Flat) Fading. It basi-cally means what it’s name says. This channel type has linear phase whichmeans constant group delay. How this fading affects communication is de-termined by the relation between the bandwidth of the signal Bs and thecoherence bandwidth Bc.
Bs ¿ Bc (2.43)
This channel type is particularly evident on OFDM systems with narrowband subcarriers. Because each resides over a small bandwitdh, the cannelresponse can be considered constant and thus flat.
As opposed to the above, Frequency Selective Fading is usually re-ferred to as wideband channel because the bandwidth of the signal is widerthan bandwidth of the channel’s frequency response. In frequency selectivefading, the spectral component of the signal undergoes a non constant gain
2.9. MULTIPATH CHANNELS 17
and non linear phase distortion as such the signal spectra is not preserved.That is
Bs > Bc (2.44)
Let us now turn to analysing channels in the time domain. In Slow Fadingchannels, the impulse response changes slowly compared to that of the symbolperiod Ts. That is
Ts ¿ Tc (2.45)
Fast Fading on the other hand just means the opposite. That is
Ts > Tc (2.46)
This means that during a single symbol period, the impulse response of thechannel may have changed more than once.
18 CHAPTER 2. BACKGROUND
Chapter 3
OFDM basics
3.1 Introduction
OFDM is a modulation technique in that it modulates data onto equallyspaced sub-carriers. The information is modulated onto the sub-carrier byvarying the phase, amplitude, or both. Each sub-carrier then combined to-gether by using the inverse fast fourier transform to yield the time domainwaveform that is to be transmitted. To obtain a high spectral efficiency thefrequency response of each of the sub-carriers are overlapping and orthogonal.This orthogonality prevents interference between the sub-carriers (ICI) andis preserved even when the signal passes through a multipath channel by in-troducing a Cyclic Prefix, which prevents Inter-symbol Interference (ISI) onthe carriers. This makes OFDM especially suited to wireless communicationsapplications.
19
20 CHAPTER 3. OFDM BASICS
3.2 Advantages / Disadvantages
OFDM has the following advantages[5, p.23-24]:
• OFDM is an efficient way to deal with multipath; implementation com-plexity is significantly lower than single carrier with equalizer.
• In relatively slow time-varying channels, performance can be enhancedby the adaptability of the data rate according to the SNR ratio of thatsub-carrier.
• OFDM is robust against narrowband interference, because such inter-ference affects only a small number of sub-carriers.
• OFDM makes single-frequency networks possible, which is especiallyattractive for broadcasting applications.
On the other hand, OFDM has the following disadvantages compared tosingle-carrier modulation:
• OFDM is more sensitive to frequency offsets and phase noise.
• OFDM has a relatively large peak-to-average power ratio, which re-duces the power efficiency of the RF amplifier.
3.3 Multicarrier vs Single carrier
This table compares the advantages of single carrier and multi carrier modulation[2,p.204]:
Issue Single Multi EquivalentPerformance in Gaussian Noise xSensitive to impulse noise xSensitive to narrowband noise xSensitive to clipping xSensitive to timing jitter and phase noise xLatency xComputations per unit time xCost and power usage in analog sections xAdaptability of bit rate x
Table 3.1: Advantages of single and multi-carrier modulation.
3.4. ORTHOGONALITY 21
3.4 Orthogonality
Two periodic signals are orthogonal when the integral of their product overone period is equal to zero.
For the case of continuous time:∫ T
0
cos(2πnf0t)cos(2πmf0t)dt = 0, (m 6= n) (3.1)
For the case of discrete time:N−1∑
k=0
cos
(2πkn
N
)cos
(2πkm
N
)dt = 0, (m 6= n) (3.2)
To maintain orthogonality between sub-carriers, it is necessary to ensurethat the symbol time contains one or more multiple cycles of each sinusoidalcarrier waveform. In the case of OFDM, the sinusoids of our sub-carriers willsatisfy this requirement since each is a multiple of a fundamental frequency.Orthogonality is critical since it prevents inter-carrier interference (ICI). ICIoccurs when the integral of the carrier products are no longer zero overthe integration period, so signal components from one sub-carrier causesinterference to neighbouring sub-carriers. As such, OFDM is highly sensitiveto frequency dispersion caused by Doppler shifts, which results in loss oforthogonality between sub-carriers. (Wade Tut)
3.4.1 OFDM sub-carriers
Each sub-carrier in an OFDM system is a sinusoid with a frequency that isan integer multiple of a fundamental frequency f0. Each sub-carrier is likea Fourier series component of the composite signal, an OFDM symbol. InFigure 3.1, all the sub-carriers have the same amplitude and phase, but inpractice these will be modulated separately through the use of QuadratureAmplitude Modulation (QAM). The sub-carrier waveform can be expressedas the following equation:
s(t) = cos(2πfct + θk)
= ancos(2πnf0t) + bnsin(2πnf0t)
=√
a2n + b2
ncos(2πnf0t + φn), where φn = tan−1( bn
an) (3.3)
The sum of the sub-carriers is then the baseband OFDM signal:
sB(t) =N−1∑n=0
{ancos(2πnf0t)− bnsin(2πnf0t)} (3.4)
22 CHAPTER 3. OFDM BASICS
0 200 400 600 800 1000 12000
1
2Harmonics Summed To Create Parralel Data Signals.
0 200 400 600 800 1000 1200−1
0
1
0 200 400 600 800 1000 1200−1
0
1
0 200 400 600 800 1000 1200−1
0
1
0 200 400 600 800 1000 1200−1
0
1
0 200 400 600 800 1000 1200−1
0
1
Figure 3.1: Harmonics which are summed to create sub-carriers.
3.4.2 OFDM Spectrum
Our OFDM symbol is a sum of sinusoids of a fundamental frequency and itsharmonics in the time domain. The rectangular windowing of the transmittedOFDM symbol results in a sinc function at each sub-carrier frequency in thefrequency response. Thus, the frequency spectrum of an OFDM symbol isas shown below:
The Figure 3.2 is not the actual spectrum of OFDM. The spectrum ofeach sub-carrier has been superimposed to illustrate the orthogonality of thesub-carriers. Although overlapping, the sub-carriers do not interfere witheach other since each sub-carrier peak corresponds to a zero crossing for allother sub-carriers.
3.5. CYCLIC PREFIX / GUARD INTERVAL 23
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 10
1
2
3
4
5
6
7
8
9
10OFDM Symbol Spectrum
Figure 3.2: OFDM symbol spectrum.
3.5 Cyclic Prefix / Guard Interval
The Cyclic Prefix is a periodic extension of the last part of an OFDM symbolthat is added to the front of the symbol in the transmitter, and is removedat the receiver before demodulation. The Cyclic Prefix has two importantbenefits:
• The Cyclic Prefix acts as a guard space between successive OFDMsymbols and therefore prevents Inter-symbol Interference (ISI), as longas the length of the CP is longer than the impulse response of thechannel.
• The Cyclic Prefix ensures orthogonality between the sub-carriers bykeeping the OFDM symbol periodic over the extended symbol duration,and therefore avoiding Inter-carrier Interference (ICI).
Mathematically, the Cyclic Prefix / Guard Interval converts the linear con-volution with the channel impulse response into a cyclic convolution. This
24 CHAPTER 3. OFDM BASICS
results in a diagonalised channel, which is free of ISI and ICI interference.(see part ??)
The disadvantage of the Cyclic Prefix is that there is a reduction in theSignal to Noise Ratio due to a lower efficiency by duplicating the symbol.This SNR loss is given by:
SNRloss = −10log10
(1− Tcp
T
)(3.5)
where Tcp is the length of the Cyclic Prefix and T = Tcp + Ts is the length ofthe transmitted symbol.
To minimise the loss of SNR, the CP should not be made longer thannecessary to avoid ISI and ICI.
3.5.1 Inter symbol Interference
ISI is when energy from one symbol spills over to the next symbol. Thisis usually caused by time dispersion in multi-path when reflections of theprevious symbol interfere with the current symbol. In OFDM, because eachsub-carrier is transmitting at a lower data rate (longer symbol duration), thiswill negate the effects of time dispersion, which results in ISI.
3.5.2 Inter carrier Interference
3.6 IDFT
OFDM modulation is applied in the frequency domain. The complex QAMdata symbols are modulated onto orthogonal sub-carriers. But in order totransmit over a channel, we need a signal in the time domain. To do this,we apply the Inverse Discrete Fourier Transform (IDFT) in the transmitterto convert the signal from frequency domain to an OFDM symbol in thetime domain. Because the IDFT is a linear transformation, the DFT can beapplied at the receiver to convert the data back into the frequency domain.This section will provide an explanation of the IDFT / DFT and why it is akey component of an OFDM system.
To implement the multi-carrier system using a bank of parallel oscillatorsand modulators would not be very efficient in analog hardware. However, inthe digital domain, multicarrier-modulation can be done very efficiently withthe current DSP hardware and software.
To do this modulation we exploit the properties of the Discrete FourierTransform (DFT) and the Inverse DFT (IDFT). From Fourier, we know that
3.7. OFDM TRANSMITTER BLOCK 25
when the DFT of a sampled time signal is taken, the frequency domain resultsare the components of the signal with respect to the Fourier Basis which aremultiples of a fundamental frequency as a function of the sampling periodand the number of samples. The IDFT performs the opposite the DFT. Ittakes the signal defined by the frequency components and converts them toa time signal. (insert diagram, cosby)
In OFDM, we compose the signal in the frequency domain. Since theFourier Basis is orthogonal, we just take the IDFT of the N inputs whichare our frequency components to convert to a time domain equivalent fortransmission over the channel.
In practice, the Fast Fourier Transform (FFT) and IFFT are used insteadof the DFT and IDFT because of their lower hardware complexity. All furtherreferences will be to FFT and IFFT.
The number of sub-carriers is related to the IFFT size as follows: Numberof Sub-carriers ¡= IFFT size ? Number of Sub-carriers ¡= IFFT size / 2 ?
3.7 OFDM Transmitter Block
3.8 OFDM Receiver Block
26 CHAPTER 3. OFDM BASICS
Chapter 4
OFDM Simulation Model
There have been a few implementations of OFDM systems done in pasttheses. All of which do not really provide any insight into the system and howit works. All are done in baseband with simple IFFT and FFT modulationand simple Cyclic extensions and removal to obtain the original signal. Thismay be due to a lack of understanding in the basics of digital modulation.I say this because personally, I have spent many hours getting over hurdleswhich were rather basic. Some of these problems and their solution arealready documented in Chapter 2 and I will not reiterate on those. Beforewe look into the bandpass OFDM, a basic skeleton OFDM can be found inAppendix A. This model does not provide great insight into the workings ofOFDM but is used as a structure for our other simulations. From here onwe will look at an OFDM simulation model that provides greater insight intaking its symbols into the bandpass.
4.0.1 Introduction
My motivation was to use the parameters of the European standard Hyper-lan/2 and see how they affect an OFDM system. The Hiperlan/2 standardfor wireless LAN transmissions in the 5.2 GHz frequency band makes use ofOFDM modulation with a TDMA access scheme to efficiently exploit timedispersive channels with frequency selective fading. The use and advantagesof narrowband subcarrier multi-carrier transmissions have been explored inChapter 3.
Looking at OFDM formulas in text books and papers intrigued me tofind what these signals actually look like in bandpass transmission. This iswhat this simulation will show.
There was no real reason for choosing Hyperlan/2 over 802.11a, which isalso another standard for wireless LAN transmissions. Their parameters are
27
28 CHAPTER 4. OFDM SIMULATION MODEL
quite similar but they work on different frequencies, have different synchro-nisation protocol and others. The main purpose of the simulation is to seewhat these signals look like at various stages in the transmission process.
Important OFDM parameters for Hiperlan/2 [16] are summarized in Ta-ble 4.1. These parameters are incorporated into our OFDM model which canbe found in Appendix B.
Parameter ValueSampling rate F0 = 1/T 20 MHzCarrier central frequency fc 5.2 GHzFFT size N 64Useful symbol part duration TU 64T = 3.2µsCyclic prefix duration TCP 16T = 0.8µs (optional 8T = 0.4µs)Symbol interval TS = TU + TCP 80T = 4.0µs (optional 72T = 3.6µs)Number of data sub-carriers NSD 48Number of pilot sub-carriers NSP 4Total sub-carriers NST = NSD + NSP 52Sub-carrier spacing F = 1/TU 0.3125 MHzNominal bandwidth B = NST F 16.25 MHzData symbol constellations BPSK, QPSK, 16-QAM, 64-QAM
Table 4.1: OFDM parameters for Hyperlan/2.
So, here I will present my OFDM model based on Hyperlan/2 paramaters,modulating baseband QAM symbols onto a carrier at the 2.4GHz frequency.Hyperlan/2 actually runs at on 5.2GHz but that would mean I had to sampleat more than 10.4GHz which had taken considerable time and strained mycomputer. Let’s take a look at what I have done then!
4.0.2 The Simulation
To begin, we should look at a diagram of the implementation to get a generalidea of what is begin simulated.
Figure 4.1 shows the exact model of our simulation. Each part will beexplained carefully in all its intricacies. At this point I should also mentionthat two downconversion methods were implemented. Downconversion isdone to take a signal from the bandpass to the baseband. This can be donein many ways but the two implemented techniques are the LPF method andthe Hilbert. Both will be discussed later.
Please take note of the letters in Figure 4.1. Each letter corresponds tothe signal at that time. These will be used to make our model clearer as wediscuss signals and their Figures.
29
QAMP/S
fc
fc
LPFSampler
calcuationBER
G
P
H
A
IFFTTransmit
Filter
channeluknown
h(w)
binary input
P/S FFT S/P
GII
GIRQAM
demodulationand detector
outputbinary
JN M KLO
B C D E
F
I
modulation
Figure 4.1: OFDM simulation block diagram.
First on the diagram is the QAM modulation block. The code for thiscan be found in Appendix A. It just basically takes in an arbitrary numberof bits to encode a symbol, a bit stream of data and outputs a sequence ofQAM symbols. In all our simulations, we have used 4 bits per symbol. Thisconstellation pattern can be seen in Figure 4.2.
The QAM modulator performs a serial to parallel (S/P) conversion au-tomatically to feed the signal into the IFFT which is the next block. Thisoperation of feeding signals in parallel is because the FFT operates on sam-ples simultaneously. The principal of using the DFT was brought up in [9]and discussed previously in section 3.6.
I would also like to mention the use of adaptive loading in variable SNRenvironments. This is discussed in [11] and would be interesting for furtherresearch. This concerns the QAM modulator which in our case is staticas always encodes 4 bits per symbol no matter the channel quality on thesubcarrier. [11] also describes the power spectra of multi-carrier systemswhich we will look into later.
Assigning data onto the sub-carriers is also subject to much debate. Hy-perlan/2 only uses 48 data carrying carriers for an FFT of size 64. 4 sub-carriers are used for pilot tones and the remaining are left unused. In oursimulation, we use all 64 carriers to carry data.
The spacing between these sub-carriers is determined by the samplingfrequency. To understand this, please refer to Section 2.1. It is a basicprincipal of the DFT which is explained in detail.
30 CHAPTER 4. OFDM SIMULATION MODEL
−3 −2 −1 0 1 2 3−3
−2
−1
0
1
2
34 bit QAM constellation
Imag
inar
y
Real
Figure 4.2: Signal at (B).
Now the IFFT outputs a signal (C) which is then passed into the P/Sblock. This may seem trivial but it has many implications. At first I thoughtthat the signal (D) which is period in the frequency domain could be band-pass windowed at the carrier frequency to obtain a train of sinc functions inthe time domain. This signal would be a bandpass signal already particularlysince the sinc function satisfies the Nyquist zero ISI criterion and would be anatural pulse shape filter! This would also change our discrete time domainsignal to be analog. The problem with this is that the frequency samplesare complex and will introduce delays in the time domain. This is becausea phase shift in the frequency domain is equivalent to a delay in the timedomain. The periodically spaced frequency samples are most likely complexand contain a non zero angle.
Some OFDM systems propose that the signal (C)/(D) should be real [8].How does one generate real outputs from an IFFT? Well, it is a property ofthe DFT known as the conjugate symmetry. That is the IDFT of D[n] isreal if D[n] = D∗[N − n] for the sequence length N .
Anyhow, this does not really suit our purpose since we can send complexsignal over the I and Q channels. This will be discussed when we come to
31
upconverting.The signal (D) is now passed through to the GII (Gaurd Interval Inser-
tion) also commonly known as the Cyclic Prefix Insertion. The implicationsof this are important and is discussed in detail in Section 3.5. May papersrefer to [8] as the inventors of this method but their paper just seems tomerely state the use of it. Anyway, an OFDM symbol at (E) now has 80samples. This is because the original symbol has 64 samples and we add the16 cyclic extended samples to give 80.
Many OFDM systems window the signal (E). We do not do this becausewe have not incorporated a cyclic postfix and thus we would have attenuatedsome subcarriers near the Nyquist and DC frequency The OFDM cyclic prefixis discussed in detail in section 3.5. Cyclic postfixes are discussed in [5] andin other sources because of the effects of the OFDM window operation. Thecylic postfix just acts as a gaurd against the roll-off effects of windowingwithout a perfect LPF. Paper [9] and in the text [5, p.65] windowing of theOFDM is discussed in detail. The reason for windowing arises from the factthat an OFDM (D) is made from a series of IFFTs that are concatenatedto each other. Therefore, at each symbol boundary, there will be a signaldiscontinuity between the end of one symbol and the start of the next. Thiscan cause high frequency spectral noise which should be avoided. So that iswhy a window function with some type of smooth roll-off whould be applied.
Some proposed OFDM systems use window sizes which zero cross atthe FFT Nyquist frequency[17, p.109]. This leads to distortion in the sub-carriers near the Nyquist frequency due to attenuation by the filter roll-offs.The DC carriers may also be distorted and is commonly not used for datatransmissions.
Figure 4.3 shows the signal at (E). This signal may seem somewhat erraticbut it does have some underlying structure to it because it is basically theoutput of the FFT which is a sampled version of the sum weighted harmonics.
Now, signal (E) is passed to the transmit filter where we pulse shape itusing the raised cosine pulse. This is because this particular pulse shapesatisfies the Nyquist criteria for zero ISI as discussed in Section 2.5. It alsoconverts our digital signal into a somewhat analog form and also LPF ourspectrum. You may think that passing a signal through a LPF will removeinformation from the signal. Well, it is true that the signal is attenuated,but the important thing in pulse shaping is that the sampling points actuallyremain the same! This is the Nyquist zero ISI theorem once again.
We should note that before we pulse shape filter the signal, we need tointerpolate the signal so that there would be enough samples for upconvertingto the carrier frequency. We in fact need more samples than that determinedby the carrier frequency. To make all this clearer, the receiver needs to
32 CHAPTER 4. OFDM SIMULATION MODEL
0 0.5 1 1.5 2 2.5 3 3.5 4
x 10−6
0
0.2
0.4
0.6
0.8
1Cycl. Ext. Signal (Time)
Am
plitu
de
Time (s)
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1
x 107
0
2
4
6
8Specturm of Cycl. Ext. Signal (Freq)
Am
plitu
de
Frequncy (Hz)
Figure 4.3: Signal at (E).
sample the transmitted bandpass signal at twice the highest frequency, whichis indeed the carrier frequency. The simulation model samples at five timesthe carrier frequency. In order to do this, we need all those extra samplesand that’s why we need to interpolate. The interpolation factor is determinedfrom
Ts = 4e-6; % Symbol period is 4e-6 seconds.
fc = 2.4e9; % Carrier freq.
Rfs = 5*fc; % Simulation frequency.
RT = 1/Rfs; % The real-time sampling period
rt = RT:RT:Ts; % The time samples in real-time bandpass
and the interpolation factor itself is given by over=size(rt)/80-1=599
which can be seen in the code accordingly.Figure 4.4 shows the pulse shaping in action. We can see how the raised
cosine does not introduce ISI by attenuating the amplitude at the othersample times. The spectrum of the signal shows the bandwidth of the OFDMsymbol.
33
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
x 10−7
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7Signal after pulse shaping.
Am
plitu
de
Time (s)
−5 −4 −3 −2 −1 0 1 2 3 4 5
x 1011
0
1000
2000
3000
4000
Am
plitu
de
Frequncy (Hz)
Spectrum of OFDM Symbol
Figure 4.4: Signal at (F).
Interesting things happens when this signal is upconverted to the carrierfrequency.
We cannot transmit imaginary symbols, it has no meaning, so the signalG) is made real by taking the real components of the multiplication with acomplex carrier.
For a complex symbol a + jb, on multiplication with a complex carrierejfct and taking the real components gives
real[(a + jb)ejfct] = real [(a + jb)(cos(fct) + jsin(fct))]
= real [acos(fct) + ajsin(fct) + bjcos(fct)− bsin(fct)]
= acos(fct)− bsin(fct) (4.1)
This is our bandpass signal at G) which is real. We actually need to scalethis by a factor of two, the reason for this will be made clear when we cometo downconverting the signal. So how can we split it back into its real andimaginary parts for demodulation? This is the operation of the downcon-verter, to bring the signal back into baseband. This was done using an LPF
34 CHAPTER 4. OFDM SIMULATION MODEL
and a Hilbert filter. We will discuss this later. Now, we will have a look atwhat our bandpass signal looks like. Figure 4.5 shows the envelope structureof the time domain signal. The solid looking component is actually a car-rier sinusoid at the frequency of 2.4 GHz as indicated by the correspondingspectrum graph. The time domain graph does not span an entire OFDM forgraphing purposes, otherwise we would not see it properly.
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
x 10−7
−1.5
−1
−0.5
0
0.5
1
1.5
Am
plitu
de
Time (s)
Bandpass signal (time)
−6 −4 −2 0 2 4 6
x 109
0
1000
2000
3000
4000Spectrum of Bandpass Signal (Freq)
Am
plitu
de
Frequncy (Hz)
Figure 4.5: Signal at (G).
Block diagrams usually show the process of downconverting to be just thatof a multiplication with a complex carrier e−jfct. This is somewhat misleadingbecause when we are dealing with I and Q channels multiplying e−jfct by thesignal (G) in Equation (4.1) does not recover the original complex basebandsignal a + jb. Something more needs to be done and that’s where the LPFand the Hilbert transform comes in.
Let’s just multiply our signal (G) with the complex sinusoid and see whatwe get
35
(G)e−jfct = (acos(fct)− bsin(fct))(cos(fct)− jsin(fct))
= acos2(fct)− ajcos(fct)sin(fct)− bcos(fct)sin(fct) + bjsin(fct)
=a
2(cos(2fct) + 1)− aj
2sin(2fct)− b
2sin(fct) +
bj
2(1− cos(2fct))
(now applying LPF to filter out the double angles above)
=a
2+
bj
2(4.2)
So amazingly, we have recovered our complex baseband signal. In the fre-quency domain however, the use of the LPF is much more intuitive. Onmodulation with a carrier, we of course result in the duplication of the base-band signal spectrum at the carrier frequency. This is because the dual ofmultiplication is convolution in the frequency domain. After shifting thisspectrum back down on multiplication with e−jfct, we must remove the otherduplicate and thus the need for the LPF. We should also note here that therecovered signal power has descreased by half the signal amplitude. For thisreason, we introduce the gain of 2 in the transmitter as previously mentioned.
Let’s have a look at an LPF implementation of this in our simulation.The LPF is designed by the Parks-McClellan optimal equiripple FIR filterdesign. It is optimal in the sense with which it best approximates the desiredfrequency response for a given filter order. Figure 4.6 shows the LPF in redas it filters the relevant part of our signal. Note that in a noiseless channel,the signal (G) ≡ (H).
Downconversion can also be done with the Hilbert transformer. Thisbasically splits the signal with respect to phase on reception. Thus, all weneed to do is downconvert on multiplying by e−jfct with no need for a LPF.Figure 4.7 shows the Hilbert filter in action on the signal (G/(H)).
Just a small note, the time domain signal in Figure 4.7 may look differentin this graph, it is because the Hilbert filter is in another file and the inputsare randomly generated. The code for our OFDM system using a Hilberttransform on reception can be found in Appendix C.
After we perform either the LPF or use the Hilbert transform and down-conversion, we get the signal (J). Under noiseless conditions it is the same asthe pulse shaped signal found in Figure 4.4. This recovered signal is displayedin Figure 4.8.
What we now do is sample it periodically corresponding to the discretesignals in Figure 4.4. This is where OFDM synchronisation becomes such animportant and sensitive issue. But once sampled, we have already recoveredour baseband symbols! This is the signal at (K). All we do now is just do
36 CHAPTER 4. OFDM SIMULATION MODEL
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
x 10−7
0
0.2
0.4
0.6
0.8
1
1.2
1.4Received Baseband Signal (time)
Am
plitu
de
Time (s)
−6 −4 −2 0 2 4 6
x 109
0
0.2
0.4
0.6
0.8
1
1.2
1.4Spectrum of Baseband Signal (Freq)
Am
plitu
de
Frequncy (Hz)
Figure 4.6: Signal at (G)/(H).
the inverse of that in the transmitter and we get our QAM symbols back atthe receiver, that is signal (N). Figure ?? shows the recovered signal at (N)without the use constellation detection.
Figure ?? is a scatter diagram showing no noise. This is because the chan-nel was noiseless for the purposes of demonstrating the OFDM transmissionand reception technique.
4.0.3 Summary
We have taken an OFDM symbol from baseband to bandpass and back again.This model has provided us with realizations of the signals at each stage ofOFDM syntheses. We have been able to analyse the signals both in timeand frequency to see the implications of the parameters we have used. Wehope that future thesis students who research this area may gain considerableinsight from our model and be able to take it further.
37
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
x 10−7
0
0.5
1
1.5
2Received Baseband Signal (time)
Am
plitu
de
Time (s)
−6 −4 −2 0 2 4 6
x 109
0
0.2
0.4
0.6
0.8
1
1.2
1.4Spectrum of Baseband Signal (Freq)
Am
plitu
de
Frequncy (Hz)
Figure 4.7: Signal at (G)/(H).
38 CHAPTER 4. OFDM SIMULATION MODEL
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
x 10−7
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7Received Baseband LPF Signal (time)
Am
plitu
de
Time (s)
−6 −4 −2 0 2 4 6
x 109
0
1000
2000
3000
4000Spectrum of Baseband LPF Signal (Freq)
Am
plitu
de
Frequncy (Hz)
Figure 4.8: Signal at (J).
39
−3 −2 −1 0 1 2 3
−2.5
−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
2.5
Received Symbols
Imag
inar
y
Real
Figure 4.9: Signal at (N).
40 CHAPTER 4. OFDM SIMULATION MODEL
Chapter 5
Channel Estimation
5.1 Introduction
In a wireless environment, the channel is much more unpredictable than awire channel because of a combination of factors such as multi-path, fre-quency offset, timing offset, and noise. This results in random distortionsin amplitude and phase of the received signal as it passes through the chan-nel. These distortions change with time since the wireless channel responseis time varying. Channel estimation attempts to track the channel responseby periodically sending known pilot symbols, which enables it to characterisethe channel at that time. This pilot information is used as a reference forchannel estimation. The channel estimate can then be used by an equal-izer to correct the received constellation data so that they can be correctlydemodulated to binary data.
Modulation can be classified as differential or coherent. For differential,information is encoded in the difference between two consecutive symbols sono channel estimate is required. (ref: edfors on ce in ofdm systems) However,this limits the number of bits per symbol and results in a 3-dB loss in SNR.Coherent modulation allows the use of arbitrary signaling constellations, al-lowing for a much higher bit rate than differential modulation and betterefficiency. This chapter will give a description of our system environment,the channel model and present several channel estimation techniques thatare required for the case of coherent modulation.
41
42 CHAPTER 5. CHANNEL ESTIMATION
5.2 System Environment
5.2.1 Wireless
The system environment we will be considering in this thesis will be wirelessindoor and urban areas, where the path between transmitter and receiveris blocked by various objects and obstacles. For example, an indoor envi-ronment has walls and furniture, while the outdoor environment containsbuildings and trees. This can be characterized by wireless multi-path com-ponents as shown below:
5.2.2 Multipath Fading
Most indoor and urban areas do not have direct line of sight propagationbetween the transmitter and receiver. Multi-path occurs as a result of re-flections and diffractions by objects of the transmitted signal in a wirelessenvironment. These objects can be such things as buildings and trees. Thereflected signals arrive with random phase offsets as each reflection follows adifferent path to the receiver. The signal power of the waves also decreases asthe distance increases. The result is random signal fading as these reflectionsdestructively and constructively superimpose on each other. The degree offading will depend on the delay spread (or phase offset) and their relativesignal power.
5.2.3 Fading Effects due to Multi-path Fading
Time dispersion due to multi-path leads to either flat fading or frequencyselective fading: (ref: IEC.pdf, MRP.pdf)
• Flat fading occurs when the delay is less than the symbol period andaffects all frequencies equally. This type of fading changes the gain ofthe signal but not the spectrum. This is known as amplitude varyingchannels or narrowband channels, since the bandwidth of the appliedsignal is narrow compared to the channel bandwidth.
• Frequency selective fading occurs when the delay is larger than thesymbol period. In the frequency domain, certain frequencies will havegreater gain than others frequencies.
5.3. CHANNEL MODEL 43
5.2.4 White noise
In wireless environments, random changes in the physical environment re-sulting in thermal noise and unwanted interference from many other sourcescan cause the signal to be corrupted. Since it is not possible to take intoaccount all of these sources, we assume that they produce a single randomsignal with uniform distributions across all frequencies. This is known aswhite noise.
5.3 Channel Model
This section will show how the channel will become diagonalised from a cyclicconvolution due to the insertion of the Cyclic Prefix. If the Cyclic Prefix islonger than the impulse response of the channel, we can show that the OFDMchannel can be viewed as a set of parallel Gaussian channel (a complex gainfollowed by Additive White Gaussian noise) that is free of ISI and ICI.
hN−1
h0
y0
xN−1
x0
... ...
yN−1
nN−1
n0
Figure 5.1: Parallel Gaussian channels.
First, let our QAM signalling symbols be expressed as
x =
x0
x1...
xN−1
(5.1)
After we apply the IFFT to s, our OFDM symbol becomes
x = FHx =
X0
X1...
XN−1
(5.2)
44 CHAPTER 5. CHANNEL ESTIMATION
where the matrix F is the DFT matrix. For the channel impulse response
h =
h0
h1...
hm−1
(5.3)
where m is less than the length of the cyclic prefix.
To simplify our derivation, we will choose N = 4 sub-carriers and m = 2tap impulse response, but this proof will generally apply as long as m sat-isfies the above condition. So after passing through the multi-path channel,the received OFDM symbol can be expressed as a convolution, h ? x. Inmatrix form, this becomes
y =
Y0
Y1
Y2
Y3
=
h0 0 0 0h1 h0 0 00 h1 h0 00 0 h1 h0
X0
X1
X2
X3
(5.4)
If we insert the cyclic prefix before sending across the channel, this convolu-tion becomes
y =
YCP
Y0
Y1
Y2
Y3
=
h0 0 0 0 0h1 h0 0 0 00 h1 h0 0 00 0 h1 h0 00 0 0 h1 h0
X3
X0
X1
X2
X3
(5.5)
And after removing the cyclic prefix at the receiver, we can express this as
y =
Y0
Y1
Y2
Y3
=
h0 0 0 h1
h1 h0 0 00 h1 h0 00 0 h1 h0
X0
X1
X2
X3
⇐⇒ Y = HX’ = HcX (5.6)
This is equivalent to a circular convolution. The channel matrix Hc is now acirculant matrix and X’ is the cyclically extended symbol.
We can now use the property of circular convolution on finite lengthsequences,
y = h⊗ x ⇐⇒ Y[k] = H[k]X[k], k = (0, ..., N − 1) (5.7)
5.3. CHANNEL MODEL 45
This property means every circulant matrix Hc is diagonalised by the DFTmatrix F.
x = FY = FHcX = FHcFHx = Λx, Λ =
H[0] · · · 0...
. . ....
0 · · · H[N − 1]
(5.8)
So our multi-path fading channel can be written as:
y = Hcx + n (5.9)
where y is the received vector of signalling points, x is the transmitted sig-nalling points, Hc is the diagonalised channel attenuation vector, and n is avector of complex, zero mean, Gaussian noise with variance σ2
n.
The attenuation on each tone is given by
H[k] = G
(k
NTs
), k = 0, ..., N − 1 (5.10)
where G(.) is the frequency response of the channel during the current OFDMsymbol and Ts is the sampling period of the system.
The impulse response of the channel can be expressed as
g(τ) =M−1∑
k=0
αkδ(τ − τkTs) (5.11)
where αk are independent zero mean, complex Gaussian random variables,and τk is the delay of the kth impulse. The next few sections will talk aboutour considerations regarding some issues on the wireless channel and thejustifications for our channel model.
5.3.1 Rayleigh Distribution
The Rayleigh distribution is a statistical distribution that is used to modelamplitude variations of the impulse response in a wireless multi-path channel.A Rayleigh distribution assumes:
• There is no direct line of sight (LOS) component in the received signal.
• There are many indirect components from reflected and scattered sig-nals, each taking different paths to the receiver.
46 CHAPTER 5. CHANNEL ESTIMATION
Because these assumptions are valid for the wireless environment describedabove, we will use a Rayleigh distributed model for our channel response.
It can be shown amplitude of two quadrature Gaussian noise sources fol-lows a Rayleigh distribution. If we let s(t) be the signal transmitted througha Rayleigh channel, then r(t) can be expressed as:
r(t) = x(t)cos(2πfct)− y(t)sin(2πfct) (5.12)
where x(t) and y(t) are normalised random processes, with zero mean andand variance σ. Then the combination probability density function is
p(x, y) =1
2πσ2exp
(x2 + y2
2σ2
)(5.13)
We can express r(t) in polar form in terms of amplitude and phase of thereceived signal
r(t) = R(t)cos(2πfct + θ(t)) (5.14)
where R(t) and θ(t) are given by
R(T ) = R =√
x2 + y2
θ(t) = θ = tan−1(y
x
)(5.15)
By using the polar transformation, the probability density function now be-comes:
p(R, θ) =R
2πσ2exp
(−R2
2σ2
)(5.16)
Integrating p(R, θ) over θ from 0 to 2π, we obtain the probability densityfunction p(R):
p(R) =R
σ2exp
(−R2
2σ2
)(5.17)
which follows a Rayleigh distribution.
5.3.2 Power Delay Profile
The Power Delay Profile (PDP) describes the envelope of the impulse re-sponse as a function of the delay. The PDP of an urban and indoor envi-ronment is generally described by an exponential, since each delayed impulseusually has less power than the previous ones. Thus, our PDP is describedby the following equation
φ(τ) ∼ exp
( −τ
τrms
)(5.18)
5.3. CHANNEL MODEL 47
5.3.3 AWGN
When the signal passes through the channel, it is corrupted by white noise.This is modelled by the addition of white Gaussian noise (AWGN) as shownin diagram ??. AWGN is a random process with power spectral density asfollows:
φ(f) =1
2N0 [W/Hz] (5.19)
where N0 is a constant and often called the noise power density.
5.3.4 Channel Synchronisation
There are two types of channel synchronisation models - Sample spaced andNon sample spaced synchronisation.
• Sample spaced synchronisation assumes all delayed impulses of its chan-nel impulse response are at integer multiples of the sampling period T.
• In non sample spaced channels, the delayed impulses are not at periodsof the sampling period T, thus the most of the impulse power is spreadlocally among the closest sampling intervals at the receiver, and leadsto a larger impulse response at the receiver as shown in the diagram.
spacedSample spacedchannel
Channellength
t
P
Channellength
t
P
Non sample
channel
Figure 5.2: Resampling a non-sample-spaced channel extends the channellength.
For simplicity, we will only consider synchronised sample spaced channelsfor channel estimation in this thesis.
48 CHAPTER 5. CHANNEL ESTIMATION
5.3.5 Assumptions on channel
To simplify our simulated channel, the following are assumed to hold:
• The impulse response is shorter than the Cyclic Prefix. Therefore, thereis no ISI and ICI and the channel is therefore diagonal.
• The channel is a synchronised, sample spaced channel.
• Channel noise is additive, white and complex Gaussian.
• The fading on the channel is slow enough to be considered constantduring one OFDM frame.
5.4 Pilot Based Channel Estimation
The following estimators use on pilot data that is known to both transmitterand receiver as a reference in order to track the fading channel. The esti-mators use block based pilot symbols, meaning that pilot symbols are sentacross all sub-carriers periodically during channel estimation. This estimateis then valid for one OFDM frame before a new channel estimate will berequired.
5.5 Least Squares Estimator
The simplest channel estimator is to divide the received signal by the inputsignals, which should be known pilot symbols. This is known as the LeastSquares (LS) Estimator and can simply be expressed as:
HLS =y
x(5.20)
This is the most naive channel estimator as it works best when no noise ispresent in the channel. When there is no noise the channel can be estimatedperfectly. This estimator is equivalent to a zero-forcing estimator.
The main advantage is its simplicity and low complexity. It only requiresa single division per sub-carrier. The main disadvantage is that it has highmean-square error. This is due to its use of an oversimplified channel anddoes not make use of the frequency and time correlation of the slow fadingchannel.
5.6. LINEAR MINIMUM MEAN SQUARE ERROR ESTIMATOR 49
· · ·
Time (OFDM symbols)
Frequency
(subcarriers)
Figure 5.3: An example of block based pilot information.
An improvement to the LS estimator would involve making use of the chan-nel statistics. We can modify the LS estimator by tracking the average ofthe most recent estimated channel vectors.
5.6 Linear Minimum Mean Square Error Es-
timator
The Linear Minimum Mean Squares Error (LMMSE) Estimator minimisesthe mean square error (MSE) between the actual and estimated channel byusing the frequency correlation of the slow fading channel. This is achievedthrough a optimizing linear transformation applied to the LS estimator de-scribed in the previous section. From adaptive filter theory, the optimumsolution in terms of the MSE is given by the Wiener-Hopf equation:
h = RhhlsR−1
hlshlshls (5.21)
where X is a matrix conatining the transmitted signalling points on its diago-nal, σ2
n is the additive noise variance. The matrix Rhhlsis the cross correlation
between channel attenuation vector h and the LS estimate hls and Rhlshlsis
50 CHAPTER 5. CHANNEL ESTIMATION
the auto correlation matrix of the LS estimate hls, given by
Rhhls= E{hhH
ls}Rhlshls
= E{hlshHls} (5.22)
Since white noise is uncorrelated with the channel attenuation, the crosscorrelation between the channel h and noisy channel hls is the same as theautocorrelation of the channel h. Thus we can replace Rhhls
with Rhh. Alsothe autocorrelation of Rhlshls
is equavalent to Rhh plus the noise power σ2
and signal power. So the estimator can be expressed as:
hlmmse = Rhh
(Rhh + σ2
n(XXH)−1)−1
hls (5.23)
The above equation seems to pose a contradiction since we need the auto-correlation of our desired channel vector in order to estimate an optimumchannel vector. But we do not know what our desired channel vector sincewe do not know the channel. To overcome this problem, we replace theautocorrelation with its expected value. This can be done in two ways:
• By theoretically calculating the expected value based on assumed orknown channel statistics. This simplifies the complexity as the inverseonly needs to be calculated once, which will be explained further on.The values will need to be recalculated each time the statistics of thechannel changes.
• Through realization, the autocorrelation matrix can be averaged eachtime channel estimation occurs. This approach will converge slowerthan the above method since the expected value is calculated adaptivelybut is more flexible since it does not assume any fixed channel statistics.
For our OFDM channel estimation, we will use the first approach because ofits lower complexity and easier implementation.
The main disadvantage of this estimator is that it has a very high com-plexity. The evaluation of inverse R and XXH involves the inversion of amatrix of dimension N x N which makes this estimator computationally com-plex.
By using statistics that we know about the additive noise and the transmit-ted data, we can simplify the estimator. Since the binary data is completelyrandom, we can assume equal probability on all constellation points, and wecan replace XXH by its expected value
E{XXH} = E| 1
xk
|2I (5.24)
5.7. WIENER OPTIMUM FILTERS 51
Thus our simplified estimator can be expressed as
hlmmse = Rhh
(Rhh +
β
SNRI
)−1
hls (5.25)
where I is the Identity matrix, SNR is the average signal-to-noise ratio isdefined as E|xk|2/σ2
n. β is a signal constellation dependent constant. For thecase of 16-QAM
β = E|xk|2E|1/xk|2 = 17/9 (5.26)
Thus the inverse need only be calculated once every time channel estimationoccurs, or just once if set to theoretical values.
5.7 Wiener Optimum Filters
5.8 Optimal Rank Reduction using Singular
Value Decompositions
The complexity of the LMMSE estimator can be further reduced using a sin-gular value decomposition on the autocorrelation matrix Rhh, which is nearlyrank deficient due to its frequency correlation. Hence we can apply a rankreduction and use only the most significant parts of Rhh. This simplificationwill come at the expense of a small reduction in performance.
The optimal rank reduction of the LMMSE estimator, using singular valuedecomposition, is obtained by excluding the base vectors corresponding tothe smallest singular values. The channel autocorrelation Rhh can be decom-posed as follows:
Rhh = UΛUH (5.27)
where U is a matrix with orthonormal columns and Λ is a diagonal matrixcontaining the singular values λ0 ≥ λ1 ≥ ... ≥ λN−1 ≥ 0 on its diagonal.
By applying the Singular Value Decomposition as follows
RhhlsR−1/2hlshls
= Q1DQH2 (5.28)
where Q is a matrix with orthonormal columns and D is a diagonal matrixcontaining the singular values d0 ≥ d1 ≥ ... ≥ dN−1 ≥ 0 on its diagonal.Since Rhhls
= Rhh and Rhlshls= Rhh + β
SNRI, they all share the same singular
52 CHAPTER 5. CHANNEL ESTIMATION
values as Rhh, so we can simplify the expression as
RhhlsR−1/2hlshls
= UΛUH(U(Λ +β
SNRI)UH)−1/2
= UΛ(Λ +β
SNRI)−1/2UH
= Q1DQH2
=⇒ Q1 = Q@ = UandD = Λ(Λ +β
SNRI)−1/2 (5.29)
The best rank p estimator is then
hp = Q1
[Dp 00 0
]Q2R
−1/2hlshls
hls
= U
[Dp 00 0
](U(∆ +
β
SNRI)UH)−1/2hls
= U
[Dp 00 0
](∆ +
β
SNRI)−1/2UHhls
= U
[∆p 00 0
]UHhls (5.30)
By taking including only the first p singular values corresponding to themost significant values of Rhh, corresponding to the upper left corner of ??,the best rank p approximation of the estimator is
hp = U
[∆p 00 0
]UHhls (5.31)
where ∆p is the upper left corner of the matrix ∆.
∆ = Λ
(Λ +
β
SNRI
)−1
= diag
(λ0
λ0 + βSNR
, ...,λN−1
λN−1 + βSNR
)(5.32)
5.8.1 Singular Value Decompositions
5.9 Simulation Results and Comparisons
5.10 Conclusion
5.10. CONCLUSION 53
U
δ0
h0
x−1N−1
x−10
yN−1
hN−1
δp−1...
......
...
y0
0
0
... ...UH
Figure 5.4: Block diagram of the rank-p channel estimator.
54 CHAPTER 5. CHANNEL ESTIMATION
Chapter 6
Equalization
Equalizers. They are found in amplifiers, in car stereo systems and in yourcomputer’s music players. These are basically all subband gain controllers.They split your signal into separate frequency bands allowing the user tochange the gains in each spectrum. So does this have anything in OFDM?Well, an equalizer’s aim in a communications receiver is to basically put thetransmitted signal back together. We will explore different types of equaliz-ers, their advantages, disadvantages and further challenges.
6.1 Introduction to Equalization
There are several methods of equalization commonly used. These are
• Maximum Likelihood (ML) sequence detection - Optimal in the senseof error probability.
• Linear Equalization - filters with adjustable coefficients.
• Decision Feedback Equaization (DFE) - uses previously detected sym-bols to suppress ISI in the symbol presently being detected.
It is clear that equalization in OFDM can be very simple. This is one ofthe major advantages of using OFDM over single carrier systems. Channelequalization in OFDM actually can be done by just a simple division inthe frequency domain. This is because the channel as a filter is convolvedwith the input signal in the time domain on transmission. This operationis equivalent to multiplication in the frequency domain and thus undoingthe effects of the channel is just a division. This optimization follows theZero-Forcing criteria (ZF) which will be discussed in the following section.
55
56 CHAPTER 6. EQUALIZATION
Now, Equalizers like the zero-forcing and MMSE require channel esti-mation, refer Sections 6.3 and 6.4. This can introduce additional errors inequalization. To test if we can combat this, I have implemented adaptivecomplex RLS (Recursive Least Squares) and LMS (Least Mean Squares)equalizers. These algorithms can use the statistical averages of correlatedsignals to derive a representation of the channel and undo its effects accord-ingly.
The following sections contain somewhat long derivations of the LMS andRLS algorithms. To see what each step does (not just briefing over them)has taken considerable time. I thought it was only befitting to include thesesince so much time was spent in reading these and again in revision for thereport. I believe I have been able to explain them again in simpler terms.
So let’s get into it and see a this of the work have been doing.
6.2 Linear Equalization
The linear filter for equalization is most usually the transversal filter shownin Figure 6.1.
algorithm outnput
w0 w1 w2 w3
z−1 z−1 z−1
∑
inputunequalized
equalizedTap gain adjustment
Figure 6.1: Linear transversal filter.
For an input sequence v[n] and the output as an estimation of y[n], theestimate of the nth symbol for a 2N + 1 tap filter is
y[n] =N∑
i=−N
wivn−i (6.1)
6.3. ZERO-FORCING EQUALIZER 57
Here, wi are the complex equalizer tap weights selected based on some opti-mization criterion. We will continue to denote wi as the equalizer coefficients.This is because they are done so in the Matlab code.
There are two basic criterion of optimization for which the following equal-izers are made.
• Peak Distortion Criterion - for which the Zero-Forcing Equalizer isderived.
• Mean-Square-Error (MSE) Criterion - for which the LMMSE equalizeris derived
6.3 Zero-Forcing Equalizer
In OFDM, as long as the cyclic prefix remains long enough to maintain theorthogonality of the subcarriers, then equalization can be achieve simply bythe zero-forcing equalizer. It is the designated method of channel equalizationin OFDM in the Sari-Karam-Jeanclaude paper[10]. It is discussed in paper[22]
6.3.1 Introduction
The zero-forcing equalizer minimizes the peak distortion which is simplydefined as the worst case symbol interference at the equalizer output.
It is important to mention that our equalizer takes place in the frequencydomain. The transversal filters mentioned above and in [3] take place in thetime domain.
The derivation below of the zero-forcing filter coefficients are derived in[3]. I will attempt to explain it more simply because the author likes to wordthings in a difficult way. His solution results from a z transform which canbe easily changed to a frequency perspective on the substitution of z = ejw.
The linear channel filter with coefficients {hn} and the equalizer withcoefficients {wn} can be expressed as a single filter simply by the convolutionof the two
qn =∞∑
j=−∞wjhn−j (6.2)
We are assuming that the equalizer has infinite taps and then look at thesituation where it is finite. The output at the kth sampling can be expressedas
yk = q0yk +∑
n 6=k
ynqk−n +∞∑
j=−∞wjηk−j (6.3)
58 CHAPTER 6. EQUALIZATION
where {yk} is the transmitted information sequence and ηk−j is a noise term.This can be seen more clearly by reference to equation 2.18. And as estab-lished before the second term is the ISI term. Now, the peak value of thisinterference is called the peak distortion. Reference [3] uses the notation
D(w) =∞∑
n=−∞,n6=0
|qn| (6.4)
=∞∑
n=−∞,n6=0
∣∣∣∣∣∞∑
j=−∞wjηk−j
∣∣∣∣∣ (6.5)
Now what we do is select a finite number of taps to force D(w) to zero,that is D(w) = 0 and qn = 0 for all n except n = 0. That’s why it’s calledzero forcing as we are completely eliminating the inter-symbol interference.The condition for this is
qn =∞∑
j=−∞wjhn−j =
{1 n = 0
0 n 6= 0(6.6)
Finally, if we take the z transform of this, we get
Q(z) = W (z)H(z) = 1 (6.7)
in other words
W (z) =1
H(z)(6.8)
So, what this means is that the filter which satisfies the zero forcing criterionhas the set of coefficients W (z) which is just the inverse of of the channelcoefficients H(z). This what is called a zero forcing equalizer. A traditionalzero forcing filter operation in shown in Figure 6.2.
{yk}{yk}
{ηk}
EqualizerChannel
AWGN
H(z) W (z) = 1F )z)
Figure 6.2: Zero-forcing equalizer block diagram.
It is important to note that this equalizer does not eliminate ISI as long asthe filter is of finite length. The remaining ISI can be reduced by increasingthe filter length which will increase filter complexity.
6.3. ZERO-FORCING EQUALIZER 59
However, this may all seem somewhat irrelevant to a system that usesa cyclic prefix. A cyclic extension which is longer than the channel impulseresponse can cancel out ISI and ICI, refer to Section 3.5. In OFDM where thezero forcing equalizer takes place in the frequency domain, the ICI is forcedto zero for which is already zero. Thus, the role of the equalizer becomes justa gain operation and phase adjustment in each sub-carrier.
The main disadvantage of such a method is that when the H(w) is close tozero, the reciprocal filter W (w) will be very large in which will dramaticallyamplify noise or numerical round-off errors.
6.3.2 Implementation and Results
Let us now focus on the Matlab design of an OFDM equalizer. The basicOFDM model can be found in Matlab code in Appendix D. On top of thisis built the zero forcing equalizer.
Well it may seem quite simple to design such an equalizer, we just need tofind the inverse filter. But, the trick here is to implement it in the frequencydomain. This is simple because an OFDM system, we begin and end in thefrequency domain. Instead of finding an inverse filter in the time domain, wejust dot divide each of the values in received signal spectrum by that of thecoefficients of channel spectrum. As mentioned before, this can be seen as adeconvolution of the the channel impulse response.
The question is now, how can we obtain the frequency response of thechannel? We will use the Least Squares (LS) estimate mentioned in Section[?]. It is actually equivalent the zero-forcing equalizer in the way it estimatesthe channel. This will allow perfect recovery in noiseless situations, thoughimpractical we will demonstrate its recovery in a training period with 100dB SNR.
The problem with the zero forcing equalizer is that it relies on an estimateof the channel is is liable to change in time. This problem is the same for allequalizers. The only time in which the equalizer can estimate the channelspectrum is during the training or pilot symbol transmissions. These signalswhich are sent are previously known to the receiver. This allows the receiverto statistically compare the sequences and find the channel characteristics.
In the zero forcing equalizer, the coefficients cannot be adjusted untilthe next bath of pilot symbols arrive though is not the case for adaptiveequalizers.
Figure 6.3 is a simple diagram to represent the zero-forcing equalizer inOFDM. Theoretically, perfect reconstruction of the signals in the trainingperiod can be achieved. In practice this is not the case. The channel effects
60 CHAPTER 6. EQUALIZATION
receiver andBaseband
demodulation
channeluknown
inputmodulationBaseband
transmitterOFDM
h(w)
Constellationdetector
outputOFDM
equalizer
Figure 6.3: OFDM Zero-forcing equalizer block diagram.
are not perfectly cancelled out but is very low, can be considered to be zero.This is due the small errors in the estimate of the channel spectrum.
The simulation model is a little different to that in Figure 6.3. The usedfor the purposes of simulating it equalizer’s effectiveness is shown in Fig-ure 6.4. This model estimates the channel spectrum from the first incoming
equalizer
channeluknown
h(w)
inputBasebandmodulation
OFDMtransmitter
Basebanddemodulation
Channelestimate
output
z−1
detectorConstellation OFDM
receiver and
Figure 6.4: OFDM Zero-forcing equalizer block diagram for simulation.
symbol and then uses it to equalize the next signal. This shows how theequalizer would work with regular pilot symbols.
Figure 6.5 and Figure 6.6 shows the symbol recovery ability of the zeroforcing during training. This was done on an OFDM model using 4 bit QAM,64 point FFT and 16 symbol cyclic extension. The channel is modeled by a3 tap filter with an exponential PDP. The channel also contains AWGN atan SNR of 100 dB for the purposes of clearer reconstruction. Constellationdetection is achieved by simple mapping to the closest constellation symboldistance wise.
6.3. ZERO-FORCING EQUALIZER 61
0 10 20 30 40 50 60 700
1
2
3
4
5
6
7Transmitted Symbols vs Equalized Symbols vs Unequalized Symbols
Am
plitu
de
Symbol
Tansmitted SymbolsEqualized SymbolsUnequalized Symbols
Figure 6.5: Diagram of 3 types of symbol sequences.
We can see in Figure 6.5 that the equalized symbols are closely matchedto the transmitted symbols in comparison the the unequalized symbols. Theshape of the unequalized symbols are due to that of the filter. An almosterratic plot is shown in Figure 6.6. However, the error is somewhat correlatedto the channel spectrum. The first thing we notice is the large error at thebeginning. This is because the first received symbols is not equalized butused in channel estimation for equalization of the next symbol. We can alsosee that the error jumps up in the middle of each symbol across the last ninesymbols. This is because the channel coefficients are closer to zero at thispoint and thus noise is amplified. This noise is that of the channel estimateand the additive AWGN.
Let’s now increase SNR and see what happens. In Figure 6.7 we can seea somewhat exponential decay in BER as we increase the SNR. This can bedue to the constellation detection algorithm. As symbols get closer to theactual constellation symbols, the mapping is attributed the sphere packing in
62 CHAPTER 6. EQUALIZATION
0 100 200 300 400 500 600 70010
−6
10−5
10−4
10−3
10−2
10−1
100
101
Zero Force Equalizer Error Over 10 SymbolsE
rror
Squ
ared
OFDM Symbol
Figure 6.6: Error of Zero-forcing equalizer over 10 OFDM symbols.
vector quantization. That is the symbols which are mapped are in a certainradius from the constellation point. This area around the constellation pointis resembles a circle.
6.4 LMMSE
The zero-forcing equalizer does not account for additive noise in its opti-mization. Here we will base our equalizer on the Mean-Square-Error (MSE)Criterion. This type of equalizer can be called the Linear Mean Squared ErrorEqualizer (LMMSE). Anyhow, we have seen the MSE criterion before dur-ing Linear prediction and Winer filtering. It is the well known second orderequation which upon application of orthogonality or partial differentiationarrives at the normal equations, refer Sections 2.7 and 2.8. The LMMSEequalizer for OFDM is mention by Sari in [10].
6.4. LMMSE 63
0 2 4 6 8 10 12 14 16 18 202
3
4
5
6
7
8x 10
−3 BER vs SNR
BE
R
SNR (dB)
Figure 6.7: OFDM Zero-forcing equalizer BER vs SNR (dB).
6.4.1 Introduction
The LMMSE solution makes a tradeoff between residual ISI and noise en-hancement. This provides a far better solution for channels with spectralnulls.
There are many derivation for the equalizer coefficients with which satisfythe MMSE criterion. Some are more insightful than others but they allbegin with minimizing the expected error squared. For the purposes of oursimulation, the proof by intuition from the Wiener solution in [6] is muchclearer than than in [3]. I will present it in my own words to make clear someof my own insights into these equations.
Let us start with the basic system
X[n] = (hs ? Y )[n] + V [n] (6.9)
where X[n] is the received signal random process, Y [n] the input and V [n]the additive noise. The cross-correlation sequence is defined as
64 CHAPTER 6. EQUALIZATION
RY X [m] = E
[Y [n]
(V [n−m] +
∑
k
hs[k]Y [n−m− k]
)]
= RY V +∑
k
hs[k]RY Y [m + k]
= RY V +(hs[k] ? RY Y
)[m] (6.10)
where hs is the time reversal of hs. The auto-correlation sequence is
RY X [m] = E
[(V [n] +
∑
k
hs[k]Y [n− k]
)(V [n−m] +
∑
k
hs[k]Y [n−m− k]
)]
= RV V [m] +∑
k
hs[k]∑
j
hs[j]RY Y [m + k − j] +∑
k
hs[k]RY V [m− k]+
∑j
hs[j]RV Y [m + k]
= RV V [m] +(hs ? hs ? RY Y
)[m] + (hs ? RY V )[m] + (hs ? RY V )[−m]
Now we can actually simply these quite a bit by assuming that the noise se-quence is uncorrelated with the signal Y [n], so RY V = 0 for all m, RV V [m] =σ2
V δ[m] and RY Y [m] = σ2Y δ[m]. So the above can be rewritten as
RY X [m] =(hs ? RY Y
)[m] (6.11)
RXX [m] = σ2V δ[m] +
(hs ? hs ? σ2
Y δ)
[m] (6.12)
taking the Fourier transform of these gives
SY X [m] = h∗s(w)SY Y (w) (6.13)
SXX [m] = σ2V +
∣∣∣hs(w)∣∣∣2
σ2Y (6.14)
which gives the unconstrained Wiener filter given by
h∞(w) =SY X(w)
SXX(w)=
h∗s(w)∣∣∣hs(w)∣∣∣2
+ σ2V /σ2
Y
(6.15)
6.4. LMMSE 65
Note that the MMSE solution reduces to the zero-forcing solution for σ2 =0. An intuitive way to see this work is that when hs(w) is close to zero,we concentrate on filtering out the noise rather than trying to recover theattenuated signal.
You may also be wondering how h∞(w) = SY X(w)SXX(w)
in equation (6.15).Well, it can be derived directly from the definitions of the auto and crosscorrelation sequences. This is an interesting property which I found valuableto understand. So here it is and we will begin by talking about PSDs.
We can estimate the spectrum of the channel using estimations called thePower Spectral Denisties (PSD). Denoted by SXX(w) for the random processX[n], it is the Fourier transform of the autocorrelation sequence RXX [m].That is
RXX [m] =1
2π
∫ π
−π
SXX(w)ejwmdw (6.16)
This is a more robust method of obtaining the channel spectrum than per-forming the FFT over the impulse response. This is because the impulse isnot an ideal signal to transmit through a channel. Other methods of channelestimation was explored in Chapter 5.
A rough guide to the channel estimation used can be found in[6]. Itarises from the Unconstrained Wiener solution and even more simply fromthe cross-correlation definition. The cross-correlation sequence, RY X [m], isdefined at the convolution of the autocorrelation sequence RXX [m] and theimpulse response, h[m]. That is
RY X [m] =∑
k
h[k]RXX [m− k] (6.17)
Since convolution is equivalent to multiplication in the Fourier domain, theFourier transform of the equation above becomes simply
SY X(w) = SXX(w)h(w) (6.18)
which gives
h(w) =SY X(w)
SXX(w)(6.19)
6.4.2 Implementation and Results
The Matlab code for this equalizer can be found in Appendix E. This wasdone on the same base OFDM model as with the zero forcing equalizer, using4 bit QAM, 64 point FFT and 16 symbol cyclic extension. The channel ismodeled by a 3 tap filter with an exponential PDP. The channel also con-tains AWGN at an SNR of 100 dB for the purposes of clearer reconstruction.
66 CHAPTER 6. EQUALIZATION
Constellation detection is achieved by simple mapping to the closest constel-lation symbol distance wise. The LMMSE equalizer implementation was notparticularly successful. The code can be found in Appendix E but the resultswill not be documented.
6.5 Adaptive Equalization
What adaptive equalizers do is basically update its coefficients with eachincoming symbol. Simply, what the an adaptive filter does is it finds a set ofcoefficients with with on filtering an incoming sequence will result in a desiredsequence. Traditional literature on OFDM never really mentioned use of suchequalizers mainly because it does not really exploit the advantages of OFDM.
The two adaptive equalizers I have looked into operate in the time do-main on baseband symbols. Most OFDM literature use Decision FeedbackEqualizers (DFE) which consist of a forward and backwards transversal fil-ter. DFEs for OFDM are discussed in [2, p.103], [11] and [5, p.50] but I willnot go into DFEs. I decided I would look into two well known adaptive al-gorithms and find what advantages they have to offer and the disadvantagesthey pose. The first algorithms is based on a method of steepest descent.Here is where we shall begin.
6.6 Method of Steepest Descent
The method of steepest descent is a gradient-based adaptation techniquewhich is recursive in the sense that its feedback system proceeds iterativelyover with incoming samples. This method is described in detail in [3, p.663]and [4, p.203].
This proof is a little hairy and I will attempt to explain it clearly.To understand the basic idea, we define a cost function J which is usually
associated with the mean-square error
J = E[e[n]e∗[n]] = E[|e[n]|2] (6.20)
where e(n) is an error sequence. Usually J is a function of the equalizercoefficients w, ie J(w). We can express the kth complex coefficient as
wk = ak + jbk, k = 0, 1, 2, ... (6.21)
This will allow us to to define the all important gradient operator as
∇k =∂
∂ak
+ j∂
∂bk
, k = 0, 1, 2, ... (6.22)
6.7. LMS 67
Now if we apply the∇ operator to the cost function J , we obtain the gradientvector ∇J for which the kth element is
∇kJ =∂J
∂ak
+ j∂J
∂bk
, k = 0, 1, 2, ... (6.23)
We will see later, the implications of descent in two dimensions ak and bk forthe complex LMS algorithm. Now, in the method of steepest descent, theadjustments to w are in the direction of steepest descent which is opposite tothe gradient vector of the cost function J(w). For which we can now describethe steepest-descent algorithm as
w(n + 1) = w(n)− 1
2µ∇J(w) (6.24)
where µ is a step-size parameter, w(n) is the vector of equalizer coefficientsat time n and the factor of 1/2 is for numerical convenience which we willsoon see why. Equation (6.24) shows the recursive procedure for the equalizercoefficient updates. The question now is how do we find ∇J(w) and whatdoes µ do?
I think it is best if we now jump to the gradient vector as a function of thecross-correlation vector p, refer Equation (6.27), and the correlation matrixR, refer Equation (6.26), as shown in [4, p.206]
∇J(w) = −2p + 2Rw(n) (6.25)
whereR = E[x(n)xH(n)] (6.26)
where x(n) is the vector of filter inputs at time n. We can see that R is theM -by-M correlation matrix for x(n) with length M . And
p = E[x(n)d∗(n)] (6.27)
which is the m-by-1 cross-correlation vector between the the filter inputs andthe desired response d(n).
We are now in a situation to start looking into the LMS algorithm andimplementation.
6.7 LMS
We have seen that in the case of Wiener filters, we depend on the knowledgeof the cross and auto-correlation function RY X [m] and RXX [m]. But in many
68 CHAPTER 6. EQUALIZATION
cases, we cannot estimate these ahead of time to fix the Wiener coefficients.More commonly, the statistics vary slowly in time from which we can makecrude approximations and fix the coefficients gradually. The Least-Mean-Square algorithm does not require us to keep track of past outcomes toestimate statistics but one of the disadvantages as we will see is the somewhatslow adaptation to change.
6.7.1 Adaptation Algorithm
The LMS algorithm we are dealing with needs to be complex since our fre-quency downconverted symbols are complex. The complex form of the LMSoriginally proposed by Widrow-McCool-Ball 1975 [23], the exact measure-ments of the gradient vector ∇J(w) at time n would require the prior knowl-edge of the correlation matrix R and the cross-correlation vector p. Soaccording to [4, p.235], what we do in the LMS algorithm is to use instanta-neous estimates of R and p defined by
R = x(n)xH(n) (6.28)
and
p = x(n)d∗(n) (6.29)
and substitute them into into Equation (6.25) giving
∇J(w) = −2x(n)d∗(n) + 2x(n)xH(n)w(n) (6.30)
Now on substitution back into Equation (6.24), we get
w(n + 1) = w(n)− µx(n)[d∗(n)− xH(n)w(n)
](6.31)
From which results in the following three relations with which defines theLMS algorithm!
1. Compute filter output y(n) = wH(n)x(n) (6.32)
2. Compute error e(n) = d(n)− y(n) (6.33)
3. Update coefficients w(n + 1) = w(n) + µx(n)e∗(n) (6.34)
Here, y(n) is the output of the equalizer filter and e(n) is the error sequencewhich is the difference between the desired signal and the filtered signal.
Since we are taking the instantaneous products between e∗(n) and x(n),instead of the statistical expectation, our approximation will most likely to beinaccurate. But if we make small adjustments to the filter coefficients at each
6.7. LMS 69
time step, determined by µ, then the instantaneous approximation errors canbe averaged out and we move slowly towards the optimal coefficients.
There are entire papers written on the selection of µ but in general, alarge value will increase the rate of convergence but will tend to oscillatearound the optimal coefficient values. It is common to use a large value of µto begin with and then take on a smaller value as the algorithm converges.
The parameter µ according to [4, p.238] can be set to
0 < µ <2
MSmax
(6.35)
where Smax is the maximum value of the power spectral density of thefilter inputs x(n) and M is the filter length.
6.7.2 Implementation and Results
An adaptive LMS equalizer is usually implemented according to to the sim-plified Figure 6.8.
d′(n)
channeluknown
h(w)
inputBasebandmodulation
OFDMtransmitter
Basebanddemodulationdetector
Constellation OFDMreceiver and
equalizeroutput
Resynthesis
Figure 6.8: LMS equalizer block diagram.
For the equalizer which is not in training, Figure 6.8 shows a systemthat adapts its coefficients using the resynthesised symbols as the desiredsequence. This of course introduces errors which may accumulate with eachiteration. To overcome this, we need to periodically send training symbolsto correct the filter coefficients.
The simulation model for our LMS equalizer on OFDM can be found inAppendix F. The following simulation models that in the training period,so there is no resynthesis block. The equalizer takes in a noisy sequence, atraining sequence known as pilot tones (which are known in advance by the
70 CHAPTER 6. EQUALIZATION
receiver) and outputs a filtered signal based on the adapted coefficients. Theequalizer is built on top of the basic OFDM baseband model used in theprevious equalizer simulations of Sections 6.3 and 6.4. The OFDM modeluses 4 bit QAM, 64 point FFT and 16 symbol cyclic extension. The channelis modeled by a 3 tap filter with an exponential PDP. The channel also con-tains AWGN at variable SNR. Constellation detection is achieved by simplemapping to the closest constellation symbol with respect to distance. Figure
0 10 20 30 40 50 60 70 8010
−2
10−1
100
LMS tracking over first OFDM symbol
Abs
olut
e A
mpl
itude
QAM symbol in OFDM symbol
Desired SequenceEqualized Sequence
Figure 6.9: LMS equalizer tracking over first symbol.
6.9 shows the LMS equalizer adapting its coefficients to mimic the desiredsignal. The two input signals, desired and noisy, must me correlated for thecoefficients to make any real sense. We can see that the equalizer outputhas a delay of 3 samples shown by the beginning of red line. This is be-cause the LMS equalizer is defaulted to 3 coefficients. The three samplesare used to equalize the 4th samples and so on, so the first three samplescannot be equalized unless we decrease the filter order. This simulation wasperformed in presence of no noise. This is done to demonstrate its ability
6.7. LMS 71
to equalize channel attenuation. Performance of course degrades when noiseis introduced and the SNR is lowered. This will be discussed in this sectionlater on. Figure 6.10 shows the LMS convergence property over one OFDM
0 10 20 30 40 50 60 70 8010
−12
10−10
10−8
10−6
10−4
10−2
100
Error Sequence e(n)=d(n)−y(n)
Mea
n S
quar
ed E
rror
QAM symbol in OFDM symbol
Figure 6.10: Error sequence over the first OFDM symbol.
symbol. We can see that the LMS algorithm does allow considerable conver-gence over one symbol. We further speed up the convergence by changingthe step-size associated with µ in the LMS algorithm. For the first half ofthe input sequence we set µ = 0.4 and then µ = 0.15 for the remaininghalf. This is so the LMS tracking does not bounce around near convergence.The error sequence here starts at the 10th symbol, the reason for this is thesame for that in Figure 6.9. Looking at the convergence rate of LMS is nottoo clear over just one symbol so let us take a look at it working over tenOFDM symbols. It may also be useful to remind the reader that an OFDMsymbol consists of 80 samples. Derived from Hyperlan/2 standards, we usea 64 point FFT and 16 samples Cyclic Prefix which adds to 80 samples forwhich a whole symbol spans 4µ seconds. Figure 6.11 shows the LMS con-
72 CHAPTER 6. EQUALIZATION
0 100 200 300 400 500 600 700 80010
−25
10−20
10−15
10−10
10−5
100
LMS Tracking Over 10 OFDM SymbolsM
ean
Squ
ared
Err
or
QAM symbol
Figure 6.11: Error sequence of LMS tracking over 10 OFDM symbols.
vergence property over 10 OFDM symbol, that is over 800 samples within40µ seconds. This simulation was achieved by keeping the coefficient weightsfrom symbol to another so that with each new symbol, we did not have tostart the algorithm training from scratch. This used a channel with additivenoise with an SNR 100dB. Even though this noise level is quite low, we canachieve a BER of zero with an SNR of 7 dB. The only variables to initializein the LMS algorithm is the filter coefficients w(n). If prior knowledge of thesignals are available, then these can be set to their statistics. In our case,we initialize w(0) = 0. Of course prior estimations and assignment of w(n)would lead to faster convergence times.
We can see that final convergence takes place around the 450th samplemark. That is almost the 5th OFDM symbol. The slow convergence ofthe LMS algorithm is indeed one of its disadvatanges which we will try toovercome with the RLS algorthm in Section 6.8.
6.8. RLS 73
6.8 RLS
The advantage in the LMS steepest-descent algorithm lies in its computa-tional simplicity but the price paid is slow convergence. Now, to design analgorithm with a faster convergence we need to trade it off for a more complexalgorithm involving additional parameters.
The Kalman filter provides the basic framework from which all Recursive-Least-Squares filters are derived. The family of RLS filters consist of
• The standard RLS filters
• Square-root RLS filters
• Order-recursive RLS filters
We will deal with the standard RLS filter in its complex form. Informationconcerning the other filter categories can be found in [4]. Complex adpativefilters are aslo covered in [22].
In Kalman’s 1960 paper [24], describes a recursive solution to the discrete-data linear filtering problem. The recursive relation can be found in Theorem3 of [24]. It is an extensive paper and now with advances in digital signalcomputations, the Kalman filter has been the subject of extensive researchand applications.
6.8.1 Least Squares
In deriving an algorithm with faster convergence, we adopt the Least-Squaresapproach. This allows us to directly minimize the quadratic performanceindex in terms of a time average rather than a statistical average.
The following derivation is taken from [3, p.683]. We will use his notationin the following where he likes to use I(n) as the information carrying desiredsequence, YN(n) as the noisy input to the filter of length N . From now on,will drop the subscript N (as we have previously done) because everything isbasically of length N anyway. However, we will denote filter taps with W(n)because this is the notation used in my Matlab code and is also standard in[4]. Weighting factors will be denoted by λ. So let us now begin with ourlast equalization algorithm!
The RLS is formulated to minimize the time-average weighted squareerror
εLSN =
t∑n=0
λt−n|e(n, t)|2 (6.36)
74 CHAPTER 6. EQUALIZATION
where the error is defined as
e(n, t) = I(n)−W(t)Y(n) (6.37)
It maybe confusing to have the n and t indices. What this means is that eachcoefficient vector W(t) is calculated from the vectors Y(n), n = 0, 1, ..., t.
6.8.2 Adaptation Algorithm
The formulation of the RLS time update equations are actually not thatcomplex though formulating it yourself might be. Let us continue from theequations 6.36 and 6.37 already established. The weighting factor 0 < λ < 1introduces an exponential weighting on past data appropriate to our channelPDP. The minimization of εLS
N with respect to W(t) yields the set of linearequations
R(t)W(t) = D(t) (6.38)
where R(t) is the signal correlation matrix
R(t) =t∑
n=0
λt−nY∗(n)Y′(n) (6.39)
and D(t) is the cross-correlation vector
D(t) =t∑
n=0
λt−nI(n)Y′(n) (6.40)
For which the form should look familiar now. On solving for the filter coef-ficients
W(t) = R−1(t)D(t) (6.41)
On which we should mention that R(t) is not a Toeplitz matrix for whichwas the case in Equation (2.32). Also important to the purposes of ourimplementation, R(t) may be ill conditioned for small values of t and so theadd the matrix δI to R(t), where δ is a small positive constant and I is theN -by-N identity matrix.
Now according to Equation (refe:wupdate1) if we had access to W(t− 1)to compute W(t), we will need to solve N linear equations for each newsymbol arriving. To avoid this inefficiency we compute R(t) recursively with
R(t) = λR(t− 1) + Y∗(t)Y′(t) (6.42)
6.8. RLS 75
As we need the to find the inverse correlation matrix of Equation (6.41) wedefine the following recursion accordingly
R−1(t) =1
λ
[R−1(t− 1)− R−1(t− 1)Y∗(t)Y′(t)R−1(t− 1)
λ + Y′(t)R−1(t− 1)Y∗(t)
](6.43)
And since this is such a mess, let’s just define P(t) = R−1(t).We will now define what is commonly known as the Kalman gain vector
to be
K(t) =1
λ + µ(t)P(t− 1)Y∗(t) (6.44)
with µ(t) conveniently defined as follows to simplify the inverse correlationmatrix.
µ(t) = Y′(t)R−1(t− 1)Y∗(t) (6.45)
so that the inverse correlation matrix in Equation (6.43) becomes
P(t) =1
λ[P(t− 1)−K(t)Y′(t− 1)P(t)] (6.46)
Now if we just postmulitply both side by Y∗(t)
P(t)Y∗(t) =1
λ[P(t− 1)Y∗(t)−K(t)Y′(t− 1)P(t)Y∗(t)]
=1
λ([λ + µ(t)]K(t)−K(t)µ(t)) on subs (6.45) and (6.44)
= K(t) (6.47)
Which gives us a much simpler expression for the Kalman gain expression.Now since by the definition of P(t),
W(t) = P(t)D(t)
andD(t) = λD(t− 1) + I(t)Y∗(t) (6.48)
for the same reasoning as in Equation 6.42. Then we have
W(t) =1
λ[P(t− 1)−K(t)Y′(t− 1)P(t)] [λD(t− 1) + I(t)Y∗(t)]
= P(t− 1)D(t− 1) +1
λI(t)P(t− 1)Y∗(t)
−K(t)Y′(t− 1)P(t− 1)D(t− 1)
− 1
λI(t)K(t)Y′(t− 1)P(t)Y∗(t)
= W(t− 1) + K(t) [I(t)−Y′(t)W(t− 1)] (6.49)
76 CHAPTER 6. EQUALIZATION
This messy expression can be simplified just by noting that YH(t)W(t− 1)is the equalizer output at time t. So noting
I(t) = Y′(t)W(t− 1) (6.50)
ande(t) = I(t)− I(t) (6.51)
then the recursive update equation for W(t) is as follows
W(t) = W(t− 1) + K(t)e(t) (6.52)
and that’s it! We can summarize our RLS update equations into five steps
1. Compute filter output I(t) = Y′(t)W(t− 1)
2. Compute the error e(t) = I(t)− I(t)
3. Compute Kalman gain vector K(t) =P(t− 1)Y′(t)
λ + Y′(t)P(t− 1)Y∗(t)(6.53)
4. Update inverse correlation matrix
P(t) =1
λ[P(t− 1)−K(t)Y′(t− 1)P(t)]
5. Update coefficients W(t) = W(t− 1) + K(t)e(t)
This algorithm is called the RLS direct form which in [3] is said to be theKalman algorithm. It is important at this time to note that the equalizercoefficients change by the amount K(t)e(t). Since K(t) is N -dimensional,each coefficient is controlled by an element of K(t). Thus we have a fasterconvergence algorithm compared to that of the LMS where the only variableparameter is the step-size.
6.8.3 Implementation and Results
Now that we are familiar with the algorithm, let’s take a deep breath andlook at the simulation model. Our RLS equalizer on OFDM looks just likethat of the LMS as shown in Figure 6.12
The RLS equalizer is built on top of the same basic OFDM model usedin the previous equalizer simulations of Sections 6.3, 6.4 and 6.7. Just as areminder, the OFDM model uses 4 bit QAM, 64 point FFT and 16 symbolcyclic extension. The channel is modeled by a 3 tap filter with an exponentialPDP. The channel also contains AWGN with variable SNR. The basebandsymbol detection is achieved by simple mapping to the closest constellationsymbol with respect to distance. PLease refer to Appendix G for the code.
6.9. COMPARISON 77
d′(n)
channeluknown
h(w)
inputBasebandmodulation
OFDMtransmitter
Basebanddemodulationdetector
Constellation OFDMreceiver and
equalizeroutput
Resynthesis
Figure 6.12: RMS equalizer block diagram.
Figure (6.13) shows how well the RLS equalizer can track the desired signal.The most important feature of the following graphs are the rate of conver-gence compared to those of the LMS in Figure (6.9) and (6.10). Similarly,these graphs show a delay of 3 samples in the error sequence and the equal-ized signal. This is because we are using an order 3 filter. This simulationperformed under zero noise and a 3 tap channel to give zero BER which iswhat was expected. We will inject some noise into the channel with specificSNR later on. Figure (6.14) shows evidently the much faster convergence ofthe RLS algorithm in comparison to that of the LMS. Both Figures were per-formed under a weighting factor λ = 0.99. This is an exponential weightingof the past data, that is it determines how quickly the filter “forgets” pastsamples. Setting λ = 1 implies infinite memory.
6.9 Comparison
The code used for the comparisons can be found in Appendix H. We haveactually already considerably discussed the case of the convergence propertiesof the two algorithms. This is due to the criteria each is optimized for andbasically because the LMS only converges in two dimensions for a complexweighting function where as in RLS, each element in the Kalman vector affectthe coefficients giving greater flexibility.
Figure (6.15) just overlaps the tracking sequence of both algorithms forthe purposes of comparison. The RLS algorithm is not considerably muchmore complex than the LMS algorithm though there are many papers whichlook into reducing the complexity of the RLS like that in [26]. It all dependson the application, to find a suitable equalizer for the system specifics.
78 CHAPTER 6. EQUALIZATION
0 10 20 30 40 50 60 70 8010
−2
10−1
100
RLS Tracking Over OFDM Symbol
Mea
n S
quar
ed E
rror
Baseband Symbol Number
Desired SignalEqualized Signal
Figure 6.13: RLS tracking over first OFDM symbol.
6.10 Summary
The analysis of the four type of equalizers bring me to the conclusion thatthe complexities involved in the adaptive filters analysed to do not merita much better system than that of the instantaneous equalizers in the zeroforcing and LMMSE solutions. In the training period, all the equalizers canperform rather optimally and after that, all endure noise effects which arecarried through. In the adaptive filters, noise effects from having incorrect“desired signals” will accumulate inaccuracies in the equalizer coefficientsuntil the next pilot symbols arrive. Such is the case for the zero forcing andLMMSE algorithms which use the same coefficients until the next pilot sig-nal are received, but the simplicity of these equalizers cannot be over looked.Particularly when they are performed in the frequency domain utilizing therole of the DFT in the OFDM system. Further research needs to be doneto come to a fairer conclusion. Looking into Decision Feedback Equalizerswhich use zero forcing and LMMSE is necessary. There are also other adap-tive schemes for zero forcing and LMMSE which I would encourage futurestudents to look into. I hope I have covered ground in explaining fundamen-
6.10. SUMMARY 79
0 10 20 30 40 50 60 70 8010
−8
10−7
10−6
10−5
10−4
10−3
10−2
10−1
RLS Error Over OFDM Symbol
Mea
n S
quar
ed E
rror
Baseband Symbol Number
Figure 6.14: Error sequence of RLS tracking over first OFDM symbol.
tals clearly enough so that future thesis students who may read this do nothave to re-invent the wheel and spend too much time on the basics in order tomove on. One area which I planned to look into but didn’t get to was findingTEQ (Time domain Equalizers) to shorten the effective channel impulse re-sponse. This is useful in the case where carrier orthogonality is compromisedwhen the channel impulse response grows larger than the length of the cyclicprefix. Relevant papers on these include [18], [19], [20] and [21].In wirelesstime variant channels, the impulse response can change be it slowly withlaptops which people use on a table. Well, that’s all on Equalization fromme. I found it somewhat a bad tradition in signal processing circles to uselanguage hard to understand and equations that look like a mess. HopefullyI have presented material, although already no new, but in a clearer way.
80 CHAPTER 6. EQUALIZATION
0 50 100 150 200 250 300 350 40010
−25
10−20
10−15
10−10
10−5
100
LMS vs RLS Receivers
Mea
n S
quar
ed E
rorr
Number of Iteration
RLS algorithmLMS algorithm
Figure 6.15: LMS vs RLS in tracking 5 OFMD symbols.
Chapter 7
Synchronisation
81
82 CHAPTER 7. SYNCHRONISATION
Chapter 8
Further Research
Find out how to work harder.
83
84 CHAPTER 8. FURTHER RESEARCH
Chapter 9
Conclusion
Hello. This is the end.
85
86 CHAPTER 9. CONCLUSION
Bibliography
[1] M. Engels, “Wireless OFDM Systems How to make them work?”, KluwerAcademic Publishers, Massachusets, USA, 2002.
[2] A.R.S. Bahai, B.R. Saltzberg, “Multi-Carrier Digital CommunicationsTheory and Applications of OFDM”, Kluwer Academic/Plenum Pub-lishers, New York, USA ,1999.
[3] J.G. Proakis, “Digital Communications 4th Edition”, McGraw-HillHigher Education, New York, USA, 2001.
[4] S. Haykin, “Adaptive Filter Theory 4th Edition”, Prentice Hall, NewJersey , USA, 2002.
[5] R. van Nee, R. Prasad, “OFDM for Wireless Multimedia Communica-tions” , Artech House, 2000
[6] D.S. Taubman, “Elec4042: Signal Processing 2 Complete Set of WrittenMaterials Session 1, 2003”, 2003.
[7] R.W. Chang. “Synthesis of bandlimited orthogonal signals for multichan-nel data transmission.”, Bell System Tech. Journal, 45 pp. 1775–1796,Dec. 1966.
[8] A. Peled and A. Ruiz. “Frequency domain data transmission usingreduced computational complexity algorithms.”, In proc. IEEE Conf.Acoust., Signal Processing, pp. 964–967, Denver, CO, 1980.
[9] S. B. Weinstein and P.M. Ebert. “Data transmission by frequency-divisonmultiplexing using the discrete Fourier transform.”, IEEE Trans. Com-mun., COM- 19, No.5. pp. 628–634, Oct 1971
[10] H. Sari, G. Karam, and I. Jeanclaude, “Transmission techniques fordigital terrestrial TV broadcasting,”, IEEE Commun. Mag., vol. 33, pp.100–109, Feb. 1995.
87
88 BIBLIOGRAPHY
[11] Bingham, J.A.C., “Multicarrier modulation for data transmission: Anidea whose time has come”, IEEE Communications Magazine, vol. 28,no. 5, pp. 5-14, May 1990.
[12] J. A. C. Bingham, ADSL, VDSL, and Multicarrier Modulation, Wiley-Interscience, 2000.
[13] J. S. Chow, J. C. Tu, and J. M. Cioffi, “A discrete multitone transceiversystem for HDSL applications,” IEEE Journal on Selected Areas in Com-munications, vol. 9, no. 6, pp. 895-908, Aug. 1991.
[14] P. S. Chow, J. M. Cioffi, and J. A. C. Bingham, “A practical discretemultitone transceiver loading algorithm for data transmission over spec-trally shaped channels,” IEEE Transactions on Communications, vol. 73,no. 2, pp. 773-775, Feb./Mar./Apr. 1995.
[15] P. S. Chow, J. C. Tu, and J. M. Cioffi, “Performance evaluation of amutlichannel transceiver system for ADSL and VHDSL services,” IEEEJournal on Selected Areas in Communications, vol. SAC-9, no. 6, pp.909-919, Aug. 1991.
[16] Broadband Radio Access Networks; Hiperlan Type 2; Physical (PHY)Layer, ETSI Standard TS 101 475, ETSI, February 2001.
[17] K. Witrisal, 11 OFDM Air-Interface Design for Multimedia Communi-cations”, Ch.4 Ph.D. Thesis, Delft University of Technology, The Nether-lands, April 2002.
[18] Henkel, W., Kessler, Th., “Maximizing the Channel Capacity of Multi-carrier Transmission by Suitable Adaptation of the Time-Domain Equal-izer”, IEEE Transactions on Communications, Vol. 48, No. 12, pp. 2000–2004, Dec. 2000.
[19] Peter J.W. Melsa, Richard C.Younce, and Charles E. Rohrs. “ImpulseResponse Shortening for Discrete Multitone Transceivers.”, IEEE Trans-actions on Communications, 44(12):1662-1672, December 1996.
[20] Kok-Wui Cheong and John M. Cioffi. Precoder for DMT with Insuf-ficient Cyclic Prefix. In Proc. of the IEEE International Conference onCommunications, ICC, Atlanta, USA, June 1998.
[21] N. Al-Dhahir and J. M. Cioffi, “Optimum Finite-length equalization formulticarrier transceivers,” IEEE Trans. Commun., vol. 44, no. 1, 1996,pp. 56–64.
BIBLIOGRAPHY 89
[22] S. U. H. Qureshi, “Adaptive Equalization,” Proc. IEEE, vol. 73, no. 9,pp. 1349–1387, Sept. 1985.
[23] B. Widrow, J. McCool, and M. Ball, “Complex LMS Algorithm.”, IEEEProceedings, vol. 63, p:719–720, 1975.
[24] R.E. Kalman. “A new approach to linear filtering and prediction prob-lems.”, Transactions of the ASME, Journal of Basic Engineering, 82,p:35–45, 1960.
[25] J. S. Chow, J. M. Cioffi and J. Bingham, “Equalizer training algorithmsfor multicarrier modulation systems,” in Int. Conf. Commun., 1993, pp.761–765.
[26] G. Iliev and N. Kasabov. “Channel equalization using adaptive filteringwith averaging”, 5th Joint Conference on Information Sciences (JCIS2000), Atlantic City, USA, 27 Feb - 3 March
90 BIBLIOGRAPHY
Appendix A
Basic OFDM model
%+----------------------------------------------------------------+
%| |
%| Name: ofdm.m |
%| Author: Mathew Liu, James Shen |
%| Description: Basic OFDM model used for simulation purposes. |
%| This is meant to provide a skeleton for further |
%| implmentations. Channel estimates, Equalizers and bandpass |
%| models will be built on top of this. |
%| Requirements: closest.m, qammod.m, qamdemod.m |
%| |
%+----------------------------------------------------------------+
% We assume that with are using 64 length FFT with 64 subcarriers
% all carrying data. So there are no carriers specifically assigned
% to pilot.
clear all;
close all;
%============= Some standard Hyperlan Params ======================
%--- These params are not used in this particular model------------
T = 50e-9; % System sampling period
fs = 1/T; % System sampling freq = 20MHz
Tcp = 16*T; % CP period
Tu = 64*T; % Useful symbol period
Ts = Tu+Tcp; % OFDM Symbol period 80 samples
delta_f = 0.3125e6; % Frequency spacing
%============== Our params based on Hyperlan/2 ====================
FFTLen = 64; % Length of FFT.
CPLen = 16; % Length of Cyclic Prefix
91
92 CHAPTER 9. APPENDIX A
M = 4; % Bits encoded in a QAM symbol.
%+----------------------------------------------------------------+
%| OFDM TRANSMITTER |
%+----------------------------------------------------------------+
%======== Data Generation =========================================
input = rand(1,FFTLen*M) > 0.5; % Binary data generation
%======== Serial To Block (FFTLen, M) =============================
input_para = reshape(input,FFTLen,M);
%======== Baseband Modulation =====================================
input_symbols = qammod(input_para,FFTLen, M);
%================= IFFT ===========================================
input_time_para = ifft(input_symbols);
%================ Parallel to Serial ==============================
input_time_serial = reshape(input_time_para,1,FFTLen);
% Time domain signal
%============= Gaurd Interval Removal (GII) ======================
input_ext = [input_time_serial((FFTLen-CPLen+1):FFTLen), ...
input_time_serial];
%+----------------------------------------------------------------+
%| CHANNEL MODEL |
%+----------------------------------------------------------------+
%=============== Pass Through Rayleigh Channel ==========
output_ext = filter(1, 1, input_ext); % Does nothing at the moment.
%+----------------------------------------------------------------+
%| OFDM RECEVIER |
%+----------------------------------------------------------------+
%============== Gaurd Interval Removal (GIR) ======================
output_time_serial = output_ext((CPLen+1):FFTLen+CPLen);
%======== Serial To Parallel ======================================
output_time_para = reshape(output_time_serial,FFTLen,1);
%================= FFT ============================================
93
output_symbols = fft(output_time_para);
%================= Baseband Demodulation ==========================
output_para = qamdemod(output_symbols,FFTLen, M);
%================ Parallel to Serial ==============================
output = reshape(output_para,1,FFTLen*M); % Time domain signal
%================ Error Calculation ===============================
% Error is ZERO, so it works.
error1= input - output;
figure(1);
semilogy(abs(error1));
%====================== End File ==================================
%+----------------------------------------------------------------+
%| |
%| Name: qammod.m |
%| Author: Mathew Liu, James Shen |
%| Description: takes in a binary stream "in_binary" and maps |
%| them to a constellation defined by QAM symbols. The number |
%| of QAM symbols on this constellation is determined by M^2. |
%| |
%+----------------------------------------------------------------+
function[symbols] = qammod(in_binary, carrier_count, M)
% M^2 = number of points on constellation.
% in_binary(64,M) 64 derived from IFFT size
% in_binary is made from the S/P
%=================== Generate QAM Alphabet =========================
temp_M = -(M-1):2:(M-1);
for i=1:M
for k = 1:M
QAM(i,k) = temp_M(i) + j*temp_M(k);
end
end
QAM = QAM(:).’;
%================= Binary to Decimal and assign Symbol ==============
symbols = zeros(carrier_count, 1);
94 CHAPTER 9. APPENDIX A
index = 1;
for row=1:carrier_count
index = 1;
for bit_position=1:M
index = index + ((2^(bit_position-1))*in_binary(row,bit_position));
% index is a number from 1-16
end
symbols(row) = QAM(index);
end
%====================== End File ====================================
%+----------------------------------------------------------------+
%| |
%| Name: qamdemod.m |
%| Author: Mathew Liu, James Shen |
%| Description: Takes in ’in_symbol’ which can be noisy, ie |
%| it does not lie on the original constellation. We map it to |
%| the closest symbol in the constellation, find it’s index in |
%| the QAM alphabet array and turn it back into a binary. |
%| |
%+----------------------------------------------------------------+
function[out_binary] = qamdemod(in_symbols, carrier_count, M)
%================ Generate QAM alphabet again =================
temp_M = -(M-1):2:(M-1); % Generate QAM Alphabet
for i=1:M
for k = 1:M
QAM(i,k) = temp_M(i) + j*temp_M(k);
end
end
QAM_alpha = QAM(:).’;
%========= Map Symbol to Constellation and Dec2Bin ============
for row=1:carrier_count
[out_symbol, index] = closest(QAM_alpha, in_symbols(row));
index = index - 1;
95
% The index is always 1 more than the binary number since the
% index needs to start with one, where as the binary data can be 0.
% Decimal to Binary conversion
for bit_position = M:-1:1
if (index >= 2^(bit_position-1))
out_binary(row,bit_position) = 1;
index = index - 2^(bit_position-1);
else
out_binary(row,bit_position) = 0;
end
end
end
%====================== End File =================================
%+----------------------------------------------------------------+
%| |
%| Name: closest.m |
%| Author: Mathew Liu, James Shen |
%| Description: Takes in a QAM alphabet and a noisy_symbol and |
%| finds the closest match on the constellation. It also returns |
%| the index of it inside the QAM alphabet array. |
%| |
%+----------------------------------------------------------------+
function[out_symbol, index] = closest(QAM_alpha, noise_symbol)
for i=1:length(QAM_alpha)
dist(i) = abs(QAM_alpha(i) - noise_symbol);
end
[val,index] = min(dist);
out_symbol = QAM_alpha(index);
%====================== End File =================================
96 CHAPTER 9. APPENDIX A
Appendix B
Passband Simulation OFDM model us-ing LPF
%+----------------------------------------------------------------+
%| |
%| Name: ofdm_LPF.m |
%| Author: Mathew Liu, James Shen |
%| Description: Basic OFDM model used for simulation purposes. |
%| Using rcosine as transmit filter. Works using LPF at the |
%| receiver. |
%| |
%+----------------------------------------------------------------+
% We assume that with are using 64 length FFT with 64 subcarriers
% all carrying data. So there are no carriers specifically assigned
% to pilot.
clear all;
close all;
%=============== Some standard Hyperlan Params ====================
T = 50e-9; % System baseband sampling period.
fs = 1/T; % System baseband sampling freq = 20MHz .
Tcp = 16*T;% CP period.
Tu = 64*T; % Useful symbol period.
Ts = Tu+Tcp; % OFDM Symbol period 80 samples.
delta_f = 0.3125e6; % Frequency spacing.
time_scale = T:T:Ts; % Time samples in baseband signals.
N = length(time_scale); % NUmber of time samples in baseband.
f1 = 1/Ts:1/Ts:N/(2*Ts); % Freqs in the 1st half of Nyquist circle.
f2 = -N/(2*Ts):1/Ts:-1/Ts; % Freqs in the 2nd half of Nyquist circle.
freq_scale = [f1 f2]; % Baseband frequency scale.
fc = 2.4e9; % Carrier freq.
97
98 CHAPTER 9. APPENDIX B
% If Rfs=2*fc then,
% If fc=5.2, over=size(rt)/80 - 1=519;
% If fc=2.4, over=239
% If Rfs=5*fc then,
% If fc=5.2, over=size(rt)/80 - 1=1299;
% If fc=2.4, over=599
Rfs = 5*fc; % Simulation frequency.
% Mimics real time behaviour for bandpass signal.
% Sampling at Nyquist rate of twice the highest freq.
RT = 1/Rfs; % The real-time sampling period
rt = RT:RT:Ts; % The time samples in real-time bandpass
RN = length(rt); % Number of samples in real-time bandpass
f3 = 1/Ts:1/Ts:RN/(2*Ts);
f4 = -RN/(2*Ts):1/Ts:-1/Ts;
rf_scale = [f3 f4]; % Bandpass freq scale.
%============== Our params based on Hyperlan/2 ====================
FFTLen = 64; % Length of FFT.
CPLen = 16; % Length of Cyclic Prefix
M = 4; % Bits encoded in a QAM symbol.
%+----------------------------------------------------------------+
%| OFDM TRANSMITTER |
%+----------------------------------------------------------------+
%==================== Data Generation =============================
input = rand(1,FFTLen*M) > 0.5; % transmits one symbol
%================ Serial To Block (FFTLen, M) =====================
input_para = reshape(input,FFTLen,M);
%================== Baseband Modulation ===========================
input_symbols = qammod(input_para,FFTLen, M);
figure(1);
plot(input_symbols,’ob’);grid;axis square;axis equal, ...
title(’4 bit QAM constellation’), ylabel(’Imaginary’), xlabel(’Real’);
%====================== IFFT =======================================
input_time_para = ifft(input_symbols);
%================ Parallel to Serial ===============================
input_time_serial = reshape(input_time_para,1,FFTLen); % Time domain signal
99
%============= Gaurd Interval Insertion (GII) =====================
input_ext = [input_time_serial((FFTLen-CPLen+1):FFTLen),input_time_serial];
figure(2);
subplot(2,1,1);
stem(time_scale, abs(input_ext)), title(’Cycl. Ext. Signal (Time)’), ...
ylabel(’Amplitude’), xlabel(’Time (s)’);
subplot(2,1,2);
stem(freq_scale, abs(fft(input_ext))), ...
title(’Specturm of Cycl. Ext. Signal (Freq)’), ...
ylabel(’Amplitude’), xlabel(’Frequncy (Hz)’);
%=================== Pulse shaping Tansmit Filter ====================
over = 599; % Oversampling factor according to Simulation frequency.
input_over = kron(input_ext, [1, zeros(1,over)]);
Nover = length(input_over);
pulse_shape = rcosine(1,(over+1),’normal’,0.35); % raised-cosine pulse-shape
[trash,pos] = max(pulse_shape); % raised cosine filter delay ’pos’
input_shaped_temp = conv(pulse_shape, input_over);
input_shaped = input_shaped_temp(pos:(pos+Nover-1));% Get rid of transient
%-----------------Over sampling scales--------------------------------
overt = Ts/Nover:Ts/Nover:Ts;
f5 = 1/T:1/T:Nover/(2*T);
f6 = -Nover/(2*T):1/T:-1/T;
overf_scale = [f5 f6];
%=================== Graphing Section ================================
figure(3);
subplot(2,1,1);
stem(overt(1:5000), abs(input_over(1:5000)), ’b’), ...
title(’Signal after over sampling’), ...
ylabel(’Amplitude’), xlabel(’Time (s)’); hold on;
plot(overt(1:5000), abs(input_shaped(1:5000)), ’r’), ...
title(’Signal after pulse shaping.’); hold off;
subplot(2,1,2);
plot(overf_scale, abs(fft(input_shaped))), ...
ylabel(’Amplitude’), xlabel(’Frequncy (Hz)’);
%================== Upconverter to Carrier Freq =======================
input_bandpass = 2*real(input_shaped.*exp(j*2*pi*fc*rt)); % Bandpass signal
figure(4);
100 CHAPTER 9. APPENDIX B
subplot(2,1,1);
plot(rt(1:5000), input_bandpass(1:5000)), title(’Bandpass signal (time)’), ...
ylabel(’Amplitude’), xlabel(’Time (s)’);
subplot(2,1,2);
stem(rf_scale, abs(fft(input_bandpass))), ...
title(’Spectrum of Bandpass Signal (Freq)’), ...
ylabel(’Amplitude’), xlabel(’Frequncy (Hz)’);
%+----------------------------------------------------------------+
%| CHANNEL MODEL |
%+----------------------------------------------------------------+
%=============== Pass Through Rayleigh Channel ====================
output_ext = filter(1, 1, input_bandpass); % Does nothing at the moment.
%+----------------------------------------------------------------+
%| OFDM RECEVIER |
%+----------------------------------------------------------------+
%================ Downconvert ====================================
rec_over_bad = output_ext.*exp(-j*2*pi*fc*rt); % I/Q downconversion
figure(5);
subplot(2,1,1);
plot(rt(1:5000), abs(rec_over_bad(1:5000))), ...
title(’Received Baseband Signal (time)’), ...
ylabel(’Amplitude’), xlabel(’Time (s)’);
subplot(2,1,2);
rec_over_temp = abs(fft(rec_over_bad));
rec_over_temp = rec_over_temp./max(abs(rec_over_temp));
% Normalize spectrum for plotting.
stem(rf_scale, rec_over_temp), ...
title(’Spectrum of Baseband Signal (Freq)’), ...
ylabel(’Amplitude’), xlabel(’Frequncy (Hz)’); hold on;
f = remez(50,[0 0.1 0.2 1],[1 1 0 0]);
% Design of the receiver lowpass filter, order 50
LPF = freqz(f,1,-pi:2*pi/RN:pi-2*pi/RN); % Frequency response of the filter
plot([f4, f3], abs(LPF),’r’); hold off;
rec_over_temp = conv(f, rec_over_bad); % Signal is filtered
rec_over = rec_over_temp(26:(26+Nover-1)); % Discard transient
%(delay is here 26, linear phase FIR of order 50)
101
figure(6);
subplot(2,1,1);
plot(rt(1:5000), abs(rec_over(1:5000))), ...
title(’Received Baseband LPF Signal (time)’), ...
ylabel(’Amplitude’), xlabel(’Time (s)’);
subplot(2,1,2);
stem(rf_scale, abs(fft(rec_over))), ...
title(’Spectrum of Baseband LPF Signal (Freq)’), ...
ylabel(’Amplitude’), xlabel(’Frequncy (Hz)’); hold on;
rec_baseband = rec_over(1:over+1:Nover);
output_ext = rec_baseband;
%============== Gaurd Interval Removal (GIR) =========================
output_time_serial = output_ext((CPLen+1):FFTLen+CPLen);
%======== Serial To Parallel =========================================
output_time_para = reshape(output_time_serial,FFTLen,1);
%================= FFT ===============================================
output_symbols = fft(output_time_para);
%================= Baseband Demodulation =============================
figure(7);
plot(output_symbols,’ob’);grid;axis square;axis equal, ...
title(’Received Symbols’), ylabel(’Imaginary’), xlabel(’Real’);;
output_para = qamdemod(output_symbols,FFTLen, M);
%================ Parallel to Serial =================================
output = reshape(output_para,1,FFTLen*M); % Time domain signal
%==================== BER Calculation ================================
errors = abs(input - output);
num_errors = sum(sum(errors));
BER = num_errors/(FFTLen*M)
102 CHAPTER 9. APPENDIX B
Appendix C
Passband Simulation OFDM model us-ing Hilbert
%+----------------------------------------------------------------+
%| |
%| Name: ofdm_Hilbert.m |
%| Author: Mathew Liu, James Shen |
%| Description: Basic OFDM model used for simulation purposes. |
%| Using rcosine as transmit filter. Hilbert transform at |
%| recevier. |
%| |
%+----------------------------------------------------------------+
% We assume that with are using 64 length FFT with 64 subcarriers all
% carrying data. So there are no carriers specifically assigned to pilot.
clear all;
close all;
%=============== Some standard Hyperlan Params ==================
T = 50e-9; % System baseband sampling period.
fs = 1/T; % System baseband sampling freq = 20MHz .
Tcp = 16*T; % CP period.
Tu = 64*T; % Useful symbol period.
Ts = Tu+Tcp; % OFDM Symbol period 80 samples.
delta_f = 0.3125e6; % Frequency spacing.
time_scale = T:T:Ts; % Time samples in baseband signals.
N = length(time_scale); % NUmber of time samples in baseband.
f1 = 1/Ts:1/Ts:N/(2*Ts); % Freqs in the 1st half of Nyquist circle.
f2 = -N/(2*Ts):1/Ts:-1/Ts; % Freqs in the 2nd half of Nyquist circle.
freq_scale = [f1 f2]; % Baseband frequency scale.
fc = 2.4e9; % Carrier frequency
% If Rfs=2*fc then,
103
104 CHAPTER 9. APPENDIX C
% If fc=5.2, over=size(rt)/80 - 1=519;
% If fc=2.4, over=239
% If Rfs=5*fc then,
% If fc=5.2, over=size(rt)/80 - 1=1299;
% If fc=2.4, over=599
Rfs = 5*fc; % Simulation frequency.
% Sampling at Nyquist rate of twice the highest freq.
RT = 1/Rfs; % The real-time sampling period
rt = RT:RT:Ts; % The time samples in real-time bandpass
RN = length(rt); % Number of samples in real-time bandpass
f3 = 1/Ts:1/Ts:RN/(2*Ts);
f4 = -RN/(2*Ts):1/Ts:-1/Ts;
rf_scale = [f3 f4]; % Bandpass freq scale.
%============== Our params based on Hyperlan/2 =================
FFTLen = 64; % Length of FFT.
CPLen = 16; % Length of Cyclic Prefix
M = 4; % Bits encoded in a QAM symbol.
%+----------------------------------------------------------------+
%| OFDM TRANSMITTER |
%+----------------------------------------------------------------+
%======== Data Generation ===============================
input = rand(1,FFTLen*M) > 0.5; % transmits one symbol
%======== Serial To Block (FFTLen, M) ============================
input_para = reshape(input,FFTLen,M);
%======== Baseband Modulation ===========================
input_symbols = qammod(input_para,FFTLen, M);
figure(1);
plot(input_symbols,’ob’);grid;axis square;axis equal;
%================= IFFT =================================
input_time_para = ifft(input_symbols);
%================ Parallel to Serial ====================
input_time_serial = reshape(input_time_para,1,FFTLen); % Time domain signal
%============= Gaurd Interval Insertion (GII) =================
input_ext = [input_time_serial((FFTLen-CPLen+1):FFTLen),input_time_serial];
figure(2);
105
subplot(2,1,1);
stem(time_scale, abs(input_ext)), title(’Cycl. Ext. Signal (Time)’);
subplot(2,1,2);
stem(freq_scale, abs(fft(input_ext))), ...
title(’Specturm of Cycl. Ext. Signal (Freq)’);
%=================== Pulse shaping Tansmit Filter ===============================
%input_shaped = input_ext.*hamming(FFTLen+CPLen).’;
over = 599; % Oversampling factor according to Simulation frequency.
input_over = kron(input_ext, [1, zeros(1,over)]);
Nover = length(input_over);
%pulse_shape = ones(1, over+1);
pulse_shape = rcosine(1,(over+1),’normal’,0.35);
% basic raised-cosine pulse-shape
[trash,pos] = max(pulse_shape); % raised cosine filter delay ’pos’
input_shaped_temp = conv(pulse_shape, input_over);
input_shaped = input_shaped_temp(pos:(pos+Nover-1));% Get rid of transient
%-----------------Over sampling scales---------------
overt = Ts/Nover:Ts/Nover:Ts;
f5 = 1/T:1/T:Nover/(2*T);
f6 = -Nover/(2*T):1/T:-1/T;
overf_scale = [f5 f6];
%================= Graphing Section ================================
figure(3);
subplot(2,1,1);
stem(overt(1:5000), abs(input_over(1:5000)), ’b’), ...
title(’Signal after over sampling’); hold on;
plot(overt(1:5000), abs(input_shaped(1:5000)), ’r’), ...
title(’Signal after pulse shaping.’); hold off;
subplot(2,1,2);
stem(overf_scale, abs(fft(input_shaped))), ...
title(’Spectrum of signal after pulse shaping’);
%================== Upconverter to Carrier Freq ==========================
input_bandpass = 2*real(input_shaped.*exp(j*2*pi*fc*rt)); % Bandpass signal
figure(4);
subplot(2,1,1);
plot(rt(1:5000), input_bandpass(1:5000)), title(’Bandpass signal (time)’);
106 CHAPTER 9. APPENDIX C
subplot(2,1,2);
stem(rf_scale, abs(fft(input_bandpass))), ...
title(’Spectrum of Bandpass Signal (Freq)’);
%+----------------------------------------------------------------+
%| CHANNEL MODEL |
%+----------------------------------------------------------------+
%=============== Pass Through Rayleigh Channel ==========
output_ext = filter(1, 1, input_bandpass); % Does nothing at the moment.
%+----------------------------------------------------------------+
%| OFDM RECEVIER |
%+----------------------------------------------------------------+
%================ Downconvert ==================================
rec_over_bad = output_ext;
figure(5);
subplot(2,1,1);
plot(rt(1:5000), abs(rec_over_bad(1:5000))), ...
title(’Received Baseband Signal (time)’), ...
ylabel(’Amplitude’), xlabel(’Time (s)’);
subplot(2,1,2);
rec_over_temp = abs(fft(rec_over_bad));
rec_over_temp = rec_over_temp./max(abs(rec_over_temp));
% Normalize spectrum for plotting.
stem(rf_scale, rec_over_temp), ...
title(’Spectrum of Baseband Signal (Freq)’), ...
ylabel(’Amplitude’), xlabel(’Frequncy (Hz)’); hold on;
h = remez(200,[0.02 0.98],[1 1],’Hilbert’); % Design of a
% Hilbert filter of order 200
f2 = 0.5*([zeros(1,100) 1 zeros(1,100)]+ j*h); % Complex Phase
%splitter filter whose real part is a delay and
pos = 101; % imaginary part is a Hilbert transformer
F2 = freqz(f2,1,-pi:2*pi/RN:pi-2*pi/RN); % Frequency response
% of the complex filter
plot([f4, f3],abs(F2),’r’); hold off;
rec_over_temp = conv(f2,rec_over_bad); % Signal is filtered
rec_over = rec_over_temp(pos:(pos+Nover-1)); % Get rid of transient part.
107
rec_baseband = rec_over.*exp(-j*2*pi*fc*rt); % I/Q downconversion
figure(6);
subplot(2,1,1);
plot(rt(1:5000), abs(rec_baseband(1:5000))), ...
title(’Received Baseband Downconverted Signal (time)’);
subplot(2,1,2);
stem(rf_scale, abs(fft(rec_baseband))), ...
title(’Spectrum of Baseband Downconverted Signal (Freq)’); hold on;
output_ext = rec_baseband(1:over+1:Nover);
%============== Gaurd Interval Removal (GIR) ==================
output_time_serial = output_ext((CPLen+1):FFTLen+CPLen);
%======== Serial To Parallel =================================
output_time_para = reshape(output_time_serial,FFTLen,1);
%================= FFT =================================
output_symbols = fft(output_time_para);
%================= Baseband Demodulation ===========================
figure(7);
plot(output_symbols,’ob’);grid;axis square;axis equal;
output_para = qamdemod(output_symbols,FFTLen, M);
%================ Parallel to Serial ====================
output = reshape(output_para,1,FFTLen*M); % Time domain signal
%==================== BER Calculation =========================
errors = abs(input - output);
num_errors = sum(sum(errors));
BER = num_errors/(FFTLen*M)
108 CHAPTER 9. APPENDIX C
Appendix D
Zero Forcing Equalizer
%+----------------------------------------------------------------+
%| |
%| Name: ofdm_mutlisymbol_ZF.m |
%| Author: James Shen |
%| Description: Basic OFDM model used for simulation purposes. |
%| This model can transmit a specified number of symbols . |
%| |
%+----------------------------------------------------------------+
clear all;
close all;
%=============== Some standard Hyperlan Params ==================
T = 50e-9; % System sampling period
fs = 1/T; % System sampling freq = 20MHz
Tcp = 16*T; % CP period
Tu = 64*T; % Useful symbol period
Ts = Tu+Tcp; % OFDM Symbol period 80 samples
delta_f = 0.3125e6; % Frequency spacing
FFTLen = 64; % Length of FFT.
CPLen = 16; % Length of Cyclic Prefix
M = 4; % Bits encoded in a QAM symbol.
Ns = 10; % Number of Symbols/Carrier
w = ones(FFTLen, 1); % Filter coeff, initial to zero order 10 by default.
SNRdB = 100; % SNR of AWGN in channel in dB
store_input = zeros(Ns, FFTLen*M); % Used to calculate BER at the end.
store_output = zeros(Ns, FFTLen*M);
store_error = zeros(Ns, FFTLen);
%=================== Simulation ===============================
109
110 CHAPTER 9. APPENDIX D
for sym=1:Ns
%----------- Data genration ------------------
input = rand(1,FFTLen*M) > 0.5; %transmits one symbol
store_input(sym,:) = input;
%----------- Transmit Data -------------------
[signal_tx, input_symbols] = transmitter(input, FFTLen, CPLen, M);
%----------- Channel the data ----------------
signal_rx = channel(signal_tx, SNRdB);
%-------------- Receiver ---------------------
[signal_recovered, w, error_sym] = ...
receiver_zf(signal_tx, signal_rx, ...
input_symbols, FFTLen, CPLen, M, w);
store_output(sym,:) = signal_recovered;
store_error(sym,:) = error_sym.’;
end
%=============== Simulation End ============================
%==================== BER Calculation =========================
errors_ext = abs(store_input - store_output);
errors = errors_ext(FFTLen+1:length(errors_ext));
num_errors = sum(sum(errors));
BER = num_errors/(FFTLen*M*(Ns-1))
%=================== Plot Equlaizer Convergence ==================
figure(10);
error_samples = reshape(store_error.’,1,(FFTLen)*Ns);
semilogy(abs(error_samples.^2)), ...
title(’Zero Force Equalizer Error Over 10 Symbols’) ...
,ylabel(’Error Squared’), xlabel(’OFDM Symbol’);
%===================== END FILE ===================================
%+----------------------------------------------------------------+
%| |
%| Name: receiver_zf.m |
%| Author: James Shen |
%| Description: Takes ina signal and tries to demodulate it. |
%| We assume that we are receiving pilot signals so that the |
%| desired signal is know already. What happens in a real |
%| implementation is that the equalizer coefficients derived |
%| will continue to be used with data and the desired signal |
111
%| will then be the decovered signal. This will accumulate |
%| errors in the coefficients until the next batch of |
%| pilot symbols arrive. Receives one OFDM. |
%| |
%+----------------------------------------------------------------+
function[recovered_signal,w, error1] = ...
receiver_zf(desired_signal, noisy_signal, ...
input_symbols, FFTLen, CPLen, M, w);
%============== Gaurd Interval Removal (GIR) ==================
% Remove cyclic extension from desired signal.
desired_time_serial = desired_signal((CPLen+1):FFTLen+CPLen);
% Remove cyclic extension from noisy signal.
noisy_time_serial = noisy_signal((CPLen+1):FFTLen+CPLen);
%================= Serial To Parallel =================================
output_time_para = reshape(noisy_time_serial,FFTLen,1);
%================= FFT =================================
output_noisy_symbols = fft(output_time_para);
%============== Zero Forcing Equalizer ========================
% LS channel estimator in frequency domain
h_est = output_noisy_symbols ./ input_symbols;
% Zf equalizer
output_symbols = output_noisy_symbols ./ w;
%================= Baseband Demodulation ===========================
output_para = qamdemod(output_symbols,FFTLen, M);
%================ Parallel to Serial ====================
output = reshape(output_para,1,FFTLen*M); % Time domain signal
%================ Returning output ===============================
recovered_signal = output;
w = h_est;
%e = - _time_serial;
% The code below should be commented out when
112 CHAPTER 9. APPENDIX D
% running for more than one iteration as it just
% shows graphs for one symbol
%================ Error Calculation ===========================
%figure(1);
%plot(abs(input_symbols), ’bx’); hold on;
%plot(abs(output_symbols), ’ro’), ...
% title(’ ’);
%plot(abs(output_noisy_symbols), ’gd’), ...
% legend(’ ’) ...
% ,ylabel(’Amplitude’), xlabel(’Symbol’); hold off;
error1= input_symbols - output_symbols;
%================ Graphs ===========================
%figure(2);
%semilogy(abs(desired_signal), ’b’); hold on;
%semilogy(abs(output_ext), ’r’); hold off;
%figure(3);
%semilogy(abs(e));
%===================== END FILE ===================================
%+----------------------------------------------------------------+
%| |
%| Name: transmitter.m |
%| Author: Mathew Liu, James Shen |
%| Description: Takes in a bit stream and makes it into an OFDM |
%| signal ready to transmit. Only does it for one symbol. |
%| Transmits based on the FFT. |
%| |
%+----------------------------------------------------------------+
function[trans_signal, input_symbols] = transmitter(input, FFTLen, CPLen, M);
% We assume that with are using 64 length FFT with 64 subcarriers all carrying
% data. So there are no carriers specifically assigned to pilot.
%=============== Some standard Hyperlan Params ==================
T = 50e-9; % System sampling period
fs = 1/T; % System sampling freq = 20MHz
Tcp = 16*T; % CP period
Tu = 64*T; % Useful symbol period
Ts = Tu+Tcp; % OFDM Symbol period 80 samples
113
delta_f = 0.3125e6; % Frequency spacing
%============== Our params based on Hyperlan/2 =================
%+----------------------------------------------------------------+
%| OFDM TRANSMITTER |
%+----------------------------------------------------------------+
%======== Serial To Block (FFTLen, M) ============================
input_para = reshape(input,FFTLen,M);
%======== Baseband Modulation ===========================
input_symbols = qammod(input_para,FFTLen, M);
%================= IFFT =================================
%input_time_para = FFTLen*ifft(input_symbols);
input_time_para = ifft(input_symbols);
% Need to multiply by FFTLen since the IFFT scales it by (1/N)
%================ Parallel to Serial ==========================
input_time_serial = reshape(input_time_para,1,FFTLen); % Time domain signal
%============= Gaurd Interval Insertion (GII) ===================
input_ext = [input_time_serial((FFTLen-CPLen+1):FFTLen),input_time_serial];
%==================== Return output ==========================
trans_signal = input_ext;
input_symbols = input_symbols;
%===================== END FILE ===================================
%+----------------------------------------------------------------+
%| |
%| Name: channel.m |
%| Author: Mathew Liu, James Shen |
%| Description: Filters an input signal based on channel |
%| characteristics. |
%| |
%+----------------------------------------------------------------+
function[output] = channel(input, SNRdB);
114 CHAPTER 9. APPENDIX D
%+----------------------------------------------------------------+
%| CHANNEL MODEL |
%+----------------------------------------------------------------+
%=============== Pass Through Rayleigh Channel ====================
h = [1 0.5 0.1 0.001];
output = filter(h, 1, input) + AWGN_noise(input, SNRdB);
%===================== END FILE ===================================
%+----------------------------------------------------------------+
%| |
%| Name: AWGN_noise.m |
%| Author: James Shen |
%| Description: Takes a signal and a SNR to output a noise |
%| sequence as a row vector. |
%| |
%+----------------------------------------------------------------+
function[noise] = AWGN_noise(input, SNR);
% SNR = 10*log10(var(input)/var(noise))
noise = crand(1, length(input))*( var(input)/(10^(SNR/10)) );
%===================== END FILE ===================================
Appendix E
LMMSE Equalizer
%+----------------------------------------------------------------+
%| |
%| Name: ofdm_multisymbol_LMMSE.m |
%| Author: James Shen |
%| Description: Basic OFDM model used for simulation purposes. |
%| This model can transmit a specified number of symbols . |
%| |
%+----------------------------------------------------------------+
clear all;
close all;
%=============== Some standard Hyperlan Params ==================
T = 50e-9; % System sampling period
fs = 1/T; % System sampling freq = 20MHz
Tcp = 16*T; % CP period
Tu = 64*T; % Useful symbol period
Ts = Tu+Tcp; % OFDM Symbol period 80 samples
delta_f = 0.3125e6; % Frequency spacing
FFTLen = 64; % Length of FFT.
CPLen = 16; % Length of Cyclic Prefix
M = 4; % Bits encoded in a QAM symbol.
Ns = 10; % Number of Symbols/Carrier
%F = 3; % Order of the filter
w = ones(FFTLen, 1); % Filter coeff, initial to zero order 10 by default.
SNRdB = 0; % SNR of AWGN in channel in dB
store_input = zeros(Ns, FFTLen*M); % Used to calculate BER at the end.
store_output = zeros(Ns, FFTLen*M);
115
116 CHAPTER 9. APPENDIX E
store_error = zeros(Ns, FFTLen);
%=================== Simulation ===============================
for sym=1:Ns
%----------- Data genration ------------------
input = rand(1,FFTLen*M) > 0.5; %transmits one symbol
store_input(sym,:) = input;
%----------- Transmit Data -------------------
[signal_tx, input_symbols] = transmitter(input, FFTLen, CPLen, M);
%----------- Channel the data ----------------
signal_rx = channel(signal_tx, SNRdB);
%-------------- Receiver ---------------------
[signal_recovered, w, error_sym] = ...
receiver_lmmse(signal_tx, signal_rx, ...
input_symbols, FFTLen, CPLen, M, w, SNRdB);
store_output(sym,:) = signal_recovered;
store_error(sym,:) = error_sym.’;
end
%=============== Simulation End ============================
%==================== BER Calculation =========================
errors = abs(store_input - store_output);
num_errors = sum(sum(errors));
BER = num_errors/(FFTLen*M*Ns)
%=================== Plot Equlaizer Convergence ==================
figure(10);
error_samples = reshape(store_error.’,1,(FFTLen)*Ns);
semilogy(abs(error_samples.^2)), ...
title(’Zero Force Equalizer Error Over 10 Symbols’) ...
,ylabel(’Error Squared’), xlabel(’OFDM Symbol’);
%==================== END FILE ===================================
%+----------------------------------------------------------------+
%| |
%| Name: receiver_lmmse.m |
%| Author: James Shen |
%| Description: Takes ina signal and tries to demodulate it. |
%| We assume that we are receiving pilot signals so that the |
%| desired signal is know already. What happens in a real |
%| implementation is that the equalizer coefficients derived |
117
%| will continue to be used with data and the desired signal |
%| will then be the decovered signal. This will accumulate |
%| errors in the coefficients until the next batch of |
%| pilot symbols arrive. Receives one OFDM. |
%| |
%+----------------------------------------------------------------+
function[recovered_signal,w, error1] = ...
receiver_lmmse(desired_signal, noisy_signal, ...
input_symbols, FFTLen, CPLen, M, w, SNRdB);
%============== Gaurd Interval Removal (GIR) ==================
% Remove cyclic extension from desired signal.
desired_time_serial = desired_signal((CPLen+1):FFTLen+CPLen);
% Remove cyclic extension from noisy signal.
noisy_time_serial = noisy_signal((CPLen+1):FFTLen+CPLen);
%================= Serial To Parallel =================================
output_time_para = reshape(noisy_time_serial,FFTLen,1);
%================= FFT =================================
output_noisy_symbols = fft(output_time_para);
%============== Zero Forcing Equalizer ========================
% LS channel estimator in frequency domain
h_est = output_noisy_symbols ./ input_symbols;
% LMMSE equalizer
SNR = 10^(SNRdB/10);
new_w = conj(h_est) ./ ( abs(h_est).^2 + 1/SNR);
output_symbols = output_noisy_symbols .* w;
%================= Baseband Demodulation ===========================
output_para = qamdemod(output_symbols,FFTLen, M);
%================ Parallel to Serial ====================
output = reshape(output_para,1,FFTLen*M); % Time domain signal
%================ Returning output ===============================
recovered_signal = output;
w = new_w;
118 CHAPTER 9. APPENDIX E
% The code below should be commented out when
% running for more than one iteration as it just
% shows graphs for one symbol
%================ Error Calculation ===========================
%figure(1);
%plot(abs(input_symbols), ’bx’); hold on;
%plot(abs(output_symbols), ’ro’), ...
% title(’’);
%plot(abs(output_noisy_symbols), ’gd’), ...
% legend(’’) ...
% ,ylabel(’Amplitude’), xlabel(’Symbol’); hold off;
error1= input_symbols - output_symbols;
%================ Graphs ===========================
%figure(2);
%semilogy(abs(desired_signal), ’b’); hold on;
%semilogy(abs(output_ext), ’r’); hold off;
%figure(3);
%semilogy(abs(e));
%=============== END FILE ================================
Appendix F
LMS Equalizer
%+----------------------------------------------------------------+
%| |
%| Name: ofdm_multisymbol.m |
%| Author: James Shen |
%| Description: Basic OFDM model used for simulation purposes. |
%| This model can transmit a specified number of symbols . |
%| |
%+----------------------------------------------------------------+
clear all;
close all;
%=============== Some standard Hyperlan Params ==================
T = 50e-9; % System sampling period
fs = 1/T; % System sampling freq = 20MHz
Tcp = 16*T; % CP period
Tu = 64*T; % Useful symbol period
Ts = Tu+Tcp; % OFDM Symbol period 80 samples
delta_f = 0.3125e6; % Frequency spacing
FFTLen = 64; % Length of FFT.
CPLen = 16; % Length of Cyclic Prefix
M = 4; % Bits encoded in a QAM symbol.
Ns = 10; % Number of Symbols/Carrier
F = 3; % Order of the filter
w = zeros(F,1); % Filter coeff, initial to zero order 10 by default.
store_input = zeros(Ns, FFTLen*M); % Used to calculate BER at the end.
store_output = zeros(Ns, FFTLen*M);
store_error = zeros(Ns, FFTLen+CPLen);
119
120 CHAPTER 9. APPENDIX F
%=================== Simulation ===============================
for sym=1:Ns
%----------- Data genration ------------------
input = rand(1,FFTLen*M) > 0.5; %transmits one symbol
store_input(sym,:) = input;
%----------- Transmit Data -------------------
signal_tx = transmitter(input, FFTLen, CPLen, M);
%----------- Channel the data ----------------
signal_rx = channel(signal_tx);
%-------------- Receiver ---------------------
%[signal_recovered, w, error_sym] = ...
% receiver_rls(signal_tx, signal_rx, FFTLen, CPLen, M, w, F);
[signal_recovered, w, error_sym] = ...
receiver_lms(signal_tx, signal_rx, FFTLen, CPLen, M, w, F);
store_output(sym,:) = signal_recovered;
store_error(sym,:) = error_sym;
end
%=============== Simulation End ============================
%==================== BER Calculation =========================
errors = abs(store_input - store_output);
num_errors = sum(sum(errors));
BER = num_errors/(FFTLen*M*Ns)
%=================== Plot Equlaizer Convergence ==================
figure(10);
error_samples = reshape(store_error.’,1,(FFTLen+CPLen)*Ns);
semilogy(abs(error_samples).^2), ...
title(’LMS Tracking Over 10 OFDM Symbols’), ...
ylabel(’Mean Squared Error’), xlabel(’QAM symbol’);
%======================= END FILE ================================
%+----------------------------------------------------------------+
%| |
%| Name: receiver_lms.m |
%| Author: James Shen |
%| Description: Takes ina signal and tries to demodulate it. |
%| We assume that we are receiving pilot signals so that the |
%| desired signal is know already. What happens in a real |
%| implementation is that the weiner coefficients derived will |
121
%| continue to be used with data and the desired signal will |
%| then be the decovered signal. This will accumulate errors in |
%| the coefficients until the next batch of pilot symbols |
%| arrive. Receives one OFDM. |
%| |
%+----------------------------------------------------------------+
function[recovered_signal,w,e] = ...
receiver_lms(desired_signal, noisy_signal, FFTLen, CPLen, M, w, F);
% desired_signal The signal you want to obtain after filtering.
% noisy_signal This signal is somehow correlated to the desired_signal.
% FFTLen This is the size of the FFT to be used. Should be a power of
% 2. Hyoerlan works to 64 points.
% M Bits per symbol used in baseband mod and demod.
% w The filter coefficients
% F Samples taken for correlation and that of the Kalman filter.
% e Error (desired_signal - noisy_signal)
% recovered _signal = the signal that is finally output.
%+----------------------------------------------------------------+
%| OFDM RECEVIER |
%+----------------------------------------------------------------+
%======================= RLS Equalizer ================================
%======================= Initializations ================================
N = length(desired_signal);
F = 3; % Filter order.
udata = noisy_signal; % Noisy signal yet correlated to desired.
d = desired_signal; % Desired signal.
%mu = 0.25; % Typically 0<mu<2
a = 1e-10; % Used to overcome instability.
%====================== Filter Iterations ==============================
for n=F:N
if n < round(0.5*N)
mu=0.4;
else
mu=0.15;
end
u = flipud(udata(n:-1:(n-F+1)).’); %col vector now
y(n) = w’*u;
e(n) = d(n)-y(n);
w = w + (mu/(a + u’*u))*u*conj(e(n));
122 CHAPTER 9. APPENDIX F
end
output_ext = y; % ext means still with cyclic prefix extension.
%============== Gaurd Interval Removal (GIR) ==================
output_time_serial = output_ext((CPLen+1):FFTLen+CPLen);
%======== Serial To Parallel =================================
output_time_para = reshape(output_time_serial,FFTLen,1);
%================= FFT =================================
output_symbols = fft(output_time_para);
%================= Baseband Demodulation ===========================
output_para = qamdemod(output_symbols,FFTLen, M);
%================ Parallel to Serial ====================
output = reshape(output_para,1,FFTLen*M); % Time domain signal
%================ Returning output ===============================
recovered_signal = output;
w = w;
e = e;
% The code below should be commented out when
% running for more than one iteration as it just
% shows graphs for one symbol
%================ Error Calculation ===========================
% Error is ZERO, so it works!
error1= desired_signal - output_ext;
figure(1);
semilogy(abs(error1));
%================ Graphs ===========================
%figure(2);
%semilogy(abs(desired_signal), ’b’); hold on;
%semilogy(abs(noisy_signal), ’g’);
%semilogy(abs(output_ext), ’r’); hold off;
%figure(3);
%semilogy(abs(e));
%======================= END FILE ================================
Appendix G
RLS Equalizer
%+----------------------------------------------------------------+
%| |
%| Name: ofdm_multisymbol.m |
%| Author: James Shen |
%| Description: Basic OFDM model used for simulation purposes. |
%| This model can transmit a specified number of symbols . |
%| |
%+----------------------------------------------------------------+
clear all;
close all;
%=============== Some standard Hyperlan Params ==================
T = 50e-9; % System sampling period
fs = 1/T; % System sampling freq = 20MHz
Tcp = 16*T; % CP period
Tu = 64*T; % Useful symbol period
Ts = Tu+Tcp; % OFDM Symbol period 80 samples
delta_f = 0.3125e6; % Frequency spacing
FFTLen = 64; % Length of FFT.
CPLen = 16; % Length of Cyclic Prefix
M = 4; % Bits encoded in a QAM symbol.
Ns = 10; % Number of Symbols/Carrier
F = 3; % Order of the filter
w = zeros(F,1); % Filter coeff, initial to zero order 10 by default.
store_input = zeros(Ns, FFTLen*M); % Used to calculate BER at the end.
store_output = zeros(Ns, FFTLen*M);
store_error = zeros(Ns, FFTLen+CPLen);
%=================== Simulation ===============================
123
124 CHAPTER 9. APPENDIX G
for sym=1:Ns
%----------- Data genration ------------------
input = rand(1,FFTLen*M) > 0.5; %transmits one symbol
store_input(sym,:) = input;
%----------- Transmit Data -------------------
signal_tx = transmitter(input, FFTLen, CPLen, M);
%----------- Channel the data ----------------
signal_rx = channel(signal_tx);
%-------------- Receiver ---------------------
[signal_recovered, w, error_sym] = ...
receiver_rls(signal_tx, signal_rx, FFTLen, CPLen, M, w, F);
% [signal_recovered, w, error_sym] = ...
% receiver_lms(signal_tx, signal_rx, FFTLen, CPLen, M, w, F);
store_output(sym,:) = signal_recovered;
store_error(sym,:) = error_sym;
end
%=============== Simulation End ============================
%==================== BER Calculation =========================
errors = abs(store_input - store_output);
num_errors = sum(sum(errors));
BER = num_errors/(FFTLen*M*Ns)
%=================== Plot Equlaizer Convergence ==================
figure(10);
error_samples = reshape(store_error.’,1,(FFTLen+CPLen)*Ns);
semilogy(abs(error_samples).^2), ...
title(’LMS Tracking Over 10 OFDM Symbols’), ...
ylabel(’Mean Squared Error’), xlabel(’QAM symbol’);
%======================= END FILE ================================
%+----------------------------------------------------------------+
%| |
%| Name: receiver_rls.m |
%| Author: James Shen |
%| Description: Takes ina signal and tries to demodulate it. |
%| We assume that we are receiving pilot signals so that the |
%| desired signal is know already. What happens in a real |
%| implementation is that the weiner coefficients derived will |
125
%| continue to be used with data and the desired signal will |
%| then be the decovered signal. This will accumulate errors in |
%| the coefficients until the next batch of pilot symbols |
%| arrive. Receives one OFDM. |
%| |
%+----------------------------------------------------------------+
function[recovered_signal,w,e] = ...
receiver_rls(desired_signal, noisy_signal, FFTLen, CPLen, M, w, F);
% desired_signal The signal you want to obtain after filtering.
% noisy_signal This signal is somehow correlated to the desired_signal.
% FFTLen This is the size of the FFT to be used. Should be a power of
% 2. Hyoerlan works to 64 points.
% M Bits per symbol used in baseband mod and demod.
% w The filter coefficients
% F Samples taken for correlation and that of the Kalman filter.
% e Error (desired_signal - noisy_signal)
% recovered _signal = the signal that is finally output.
%+----------------------------------------------------------------+
%| OFDM RECEVIER |
%+----------------------------------------------------------------+
%======================= RLS Equalizer ================================
%======================= Initializations ================================
N = length(desired_signal);
P = zeros(F,1); % Inverse correlation matrix.
P = eye(F)*100;
udata = noisy_signal; % Noisy signal yet correlated to desired.
d = desired_signal; % Desired signal.
lambda = 0.9; % Weighting factor 0.95<=w<=1
%====================== Filter Iterations ==============================
for n=F:N
u = flipud(udata(n:-1:(n-F+1)).’); %col vector now
K = P*u ./ ((1-lambda) + u.’*P*u);
y(n) = w.’*u;
e(n) = d(n) - y(n);
w = w + K*e(n);
P = (1/(1-lambda))*(eye(F) - K*u.’)*P;
end
output_ext = y; % ext means still with cyclic prefix extension.
126 CHAPTER 9. APPENDIX G
%============== Gaurd Interval Removal (GIR) ==================
output_time_serial = output_ext((CPLen+1):FFTLen+CPLen);
%======== Serial To Parallel =================================
output_time_para = reshape(output_time_serial,FFTLen,1);
%================= FFT =================================
output_symbols = fft(output_time_para);
%================= Baseband Demodulation ===========================
output_para = qamdemod(output_symbols,FFTLen, M);
%================ Parallel to Serial ====================
output = reshape(output_para,1,FFTLen*M); % Time domain signal
%================ Returning output ===============================
recovered_signal = output;
w = w;
e = e;
% The code below should be commented out when
% running for more than one iteration as it just
% shows graphs for one symbol
%================ Error Calculation ===========================
error1= desired_signal - output_ext;
figure(1);
semilogy(abs(error1));
%================ Graphs ===========================
figure(2);
semilogy(abs(desired_signal), ’b’); hold on;
semilogy(abs(noisy_signal), ’g’);
semilogy(abs(output_ext), ’r’); hold off;
figure(3);
semilogy(abs(e));
%======================= END FILE ================================
Appendix H
RLS vs LMS
%+----------------------------------------------------------------+
%| |
%| Name: ofdm_rlsvslms.m |
%| Author: James Shen |
%| Description: Basic OFDM model used for simulation purposes. |
%| Compares LMS to RLS equalizer. |
%| |
%+----------------------------------------------------------------+
clear all;
close all;
%=============== Some standard Hyperlan Params ==================
T = 50e-9; % System sampling period
fs = 1/T; % System sampling freq = 20MHz
Tcp = 16*T; % CP period
Tu = 64*T; % Useful symbol period
Ts = Tu+Tcp; % OFDM Symbol period 80 samples
delta_f = 0.3125e6; % Frequency spacing
FFTLen = 64; % Length of FFT.
CPLen = 16; % Length of Cyclic Prefix
M = 4; % Bits encoded in a QAM symbol.
Ns = 5; % Number of Symbols/Carrier
F = 3; % Order of the filter
R = zeros(F,1); % Filter coeff, initial to zero order 10 by default.
L = zeros(F,1); % Filter coeff, initial to zero order 10 by default.
store_input = zeros(Ns, FFTLen*M); % Used to calculate BER at the end.
store_output_rls = zeros(Ns, FFTLen*M);
store_output_lms = zeros(Ns, FFTLen*M);
127
128 CHAPTER 9. APPENDIX H
store_error_rls = zeros(Ns, FFTLen+CPLen);
store_error_lms = zeros(Ns, FFTLen+CPLen);
%=================== Simulation ===============================
for sym=1:Ns
%----------- Data genration ------------------
input = rand(1,FFTLen*M) > 0.5; %transmits one symbol
store_input(sym,:) = input;
%----------- Transmit Data -------------------
signal_tx = transmitter(input, FFTLen, CPLen, M);
%----------- Channel the data ----------------
signal_rx = channel(signal_tx);
%-------------- Receiver ---------------------
[signal_recovered, R, error_sym] = ...
receiver_rls(signal_tx, signal_rx, FFTLen, CPLen, M, R, F);
store_output_rls(sym,:) = signal_recovered;
store_error_rls(sym,:) = error_sym;
[signal_recovered, L, error_sym] = ...
receiver_lms(signal_tx, signal_rx, FFTLen, CPLen, M, L, F);
store_output_lms(sym,:) = signal_recovered;
store_error_lms(sym,:) = error_sym;
end
%=============== Simulation End ============================
%==================== BER Calculation =========================
error_rls = abs(store_input - store_output_rls);
error_lms = abs(store_input - store_output_lms);
num_error_rls = sum(sum(error_rls));
num_error_lms = sum(sum(error_lms));
BER_rls = num_error_rls/(FFTLen*M*Ns)
BER_lms = num_error_lms/(FFTLen*M*Ns)
%=================== Plot Equlaizer Convergence ==================
figure(10);
error_samples_rls = reshape(store_error_rls.’,1,(FFTLen+CPLen)*Ns);
error_samples_lms = reshape(store_error_lms.’,1,(FFTLen+CPLen)*Ns);
semilogy(abs(error_samples_rls).^2,’r’), ...
title(’LMS vs RLS Receivers’); hold on;
semilogy(abs(error_samples_lms).^2,’b’), ...
title(’LMS vs RLS Receivers’) ...
,legend(’RLS algorithm’,’LMS algorithm’) ...
,ylabel(’Mean Squared Erorr’), xlabel(’Number of Iteration’); ...
129
hold off;
%======================= END FILE ================================