Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
TELE4652 Mobile and Satellite
Communications
Lecture 8 – Diversity, Equalisation,
and Channel Coding
Diversity, Equalisation, & Coding
Three techniques that independently improve the
performance of a wireless communication link
(improve SNR, lower BER)
• Diversity – access multiple copies of the received
signal and combine them to improve SNR
• Equalisation – implement an adaptive filter to
remove ISI introduced by the channel
• Channel Coding – insert redundancy into the
transmitted data stream, to allow Forward Error
Correction at the receiver to correct bit errorsTELE4652
Diversity – Rayleigh Channel
• Recall the Rayleigh channel:
where n(t) is AWGN and the instantaneous channel
SNR, , is given by an exponential
distribution: , with Γ representing the
mean channel SNR level
• Fading events – the channel will spend reasonable
time with SNR well below this mean value
• Since , for instance, the
channel will have SNR 10dB below the mean 1% of
the time! TELE4652
( ) ( )tnthstr +=)(
0
2Nh=γ
( ) Γ−
Γ= γγ eP
1
( ) Γ≈−=≤ Γ− εεγ εeP 1
Difficulty with Rayleigh Channel
• During these fades the BER will approach 0.5, and
this has the affect of greatly increasing the average
BER on the channel.
• Recall, BER rates on AWGN channel decayed as:
at large SNR values.
• Slow flat-fading Rayleigh channels, SNR decays as:
• For example, BPSK with coherent detection:
AWGN ; Rayleigh: TELE4652
0
0
NEbe
beN
EQP
−≈
∝ κ
0
1
NEP
b
eb ≈
=
0
2
N
EQP b
e
Γ+Γ
−=1
12
1ebP
Diversity Techniques
• Techniques to exploit the characteristic of the
radio channel to give us multiple delayed versions of
the transmitted signal.
• Reduce the effects of fading by combining these
signals at the receiver -> it’s less likely two
independent channels will experience a fade at
exactly the same time
TELE4652
Diversity Types
1. Micro-diversity – techniques to combat the
effects of small-scale multi-path fading.
• Single Tx-Rx
• Aspect of physical layer
2. Macro-diversity – techniques to mitigate the
effects of large-scale shadowing (obstructions
of buildings, etc.)
• Combine the signals from multiple base stations
• Part of higher protocol layers
TELE4652
Elementary Probability Theory
• Our aim in diversity is to identify two versions of
our signal, to increase the probability that our
received signal strength is ‘good’
• Let A be the event that the first signal is ‘good’,
and B be the event that the second signal is
‘good’
• The probability our link is ‘good’ is
• Basic probability theory:
• That is, we maximise the probability if the two
events are independent! TELE4652
( )BAP ∪
( ) ( ) ( ) ( )BAPBPAPBAP ∩−+=∪
( ) 0=∩ BAP
Obtaining Diversity
There are many different ways diversity can be obtained in a
radio channel.
-> need to identify different independent copies of
the received signal.
Some Examples:
1.Spatial/Antenna Diversity – Have multiple antennae on the
transmit and receive sides (MIMO)
- In cellular network, only practical at base station.
- Separate by greater than coherence length, then
provide independent signals
- Other alternative – beam-forming
TELE4652
Obtaining Diversity
2. Polarisation Diversity – the two polarisations will
generally be independent.
- Can use polarised antennae to isolate each
polarisation
- Common form of diversity in Satellite
systems (be wary of Faraday rotations)
- In cellular scenario, reflections in multipath
act to decorrelate the polarisation
components
TELE4652
Obtaining Diversity
3. Frequency Diversity – Transmit the signal at
frequencies separated by greater than the
channel coherence bandwidth
- The two signals should be independent
4. Time Diversity – transmit the same signal at
different times, separated by greater than the
channel coherence time.
- Will result in signals whose amplitudes
should be uncorrelated (for instance, under
Rayleigh model) TELE4652
cBff >− 21
Diversity Theory
• Having obtained multiple, independent copies of the signal
1.How should be combine them?
- Selection Combining (SC)
- Equal Gain Combining (EGC)
- Maximum Ratio Combining (MRC)
2. What is the performance improvement in our communication system?
- Mean SNR level
- Outage probability
- Diversity order (asymptotic improvement in the BER) TELE4652
Selection Combining
• The receiver monitors the signal level on each
branch, and connects the largest to the output
• The simplest to implement
• No phasing required
TELE4652
Selection Combining
• Determine the performance
• Simplest model – assume each branch is an
independent and identically distributed Rayleigh
channel, each with mean SNR
• The probability distribution for SNR on each
branch is thus:
• Outage probability on each branch: (threshold )
TELE4652
γ
( ) γγ
γγ −= eP
1
( ) ( )∫ −−==≤0
0
0
0 1
γγγγγγγ edPPout
0γ
Selection Combining
• Selection Combining (SC) – probability the diversity
output is below the threshold level is equivalent to
the probability ALL branches are below the
threshold level
• Outage probability for SC
• As number of branches, M, increases the outage
probability decreases -> diversity improvement
• This is also the cumulative distribution
• Thus, the probability distribution for the output
SNR:
TELE4652
( ) [ ]Mout ePγγγγ 010
−∑ −=≤
( ) [ ] γγγγ
γγ −−−
∑ −= eeM
PM 1
1
Selection Combining
• Can then find the mean SNR level (sometimes
called the Array gain):
• The result is:
• Note the effect of progressively adding more
branches has a diminishing effect on the output
mean SNR level
• Note also that if any of the branches are correlated
the performance of the diversity scheme is reduced
TELE4652
( )∫∞
ΣΣΣΣΣ =0
γγγγ dP
∑=
∑ =M
k k1
1γγ
Selection Combining
• To determine the improvement in BER, we need to
consider a particular modulation scheme
• For example, if used BPSK with coherent
detection:
• An analytic expression can be obtained for DPSK
with non-coherent detection:
• Note that the asymptotic behaviour (when the
SNR is very large) is
• This is a diversity order of 1 TELE4652
( ) ( ) γγγ dPQPeb ∫∞
Σ=0
2
( ) ( )∑∫−
=
−
∑−∞
++−==
1
0
1
0 21
11
2
M
m
m
Mm
ebm
CMdPeP
γγγγ
1−∝ γebP
Diversity Order
• Consider the case of M independent and
identically distributed Rayleigh channels
• One can show that the maximum diversity order
that could be achieved, across all possible ways of
combining these signals, is M
• That is, the asymptotic form of the BER can at best
be:
• Selection Combining is a sub-optimal diversity
technique
TELE4652
M
ebP −∝ γ
Selection Combining - Example
• Consider BPSK with coherent detection on a
Rayleigh fading channel
• Outage probability is at
• This corresponds to an SNR level of
• The mean SNR level is
• Consider the improvement in outage probability as
we add M identical branches
• For one branch, outage probability is:
TELE4652
310−=ebP
( )0
3 210 γQPeb == −
dB70 =⇒ γ
dB15=γ
{ } ( ) 1466.01010exp110Pr 5.17.07.0 ≈−−=<= γoutP
Selection Combining
• This implies that a single branch is out for almost
15% of the time!
• If use two independent branches: (M = 2)
• If used three independent branches (M = 3):
• Get an order of magnitude improvement in outage
probability per branch
• Superior diversity schemes exist
TELE4652
{ } ( )[ ] 0215.01010exp110Pr25.17.07.0 ≈−−=<= γoutP
{ } ( )[ ] 0031.01010exp110Pr35.17.07.0 ≈−−=<= γoutP
Threshold Combining
• A simpler practical scheme
• Only switch to another branch if the signal level on
the current branch drops below a certain threshold
• Do not need to continuously monitor the SNR level
on each branch (only the current branch)
• Performance is almost as good as SC
TELE4652
General Diversity Scheme
• A general diversity scheme: co-phase the signals
along all the branches and then form the output as
some weighted sum
TELE4652
( ) ( )∑=
=M
i
ii tratr1
Maximum Ratio Combining
•What should be the optimum branch weights?
• Optimum – say to maximise the average combined
SNR level at the output
• The answer is very easy – differentiate the
expression for the output SNR level with respect to
the weighting coefficient....
• The result is: weight in proportion to the
instantaneous signal level on that branch
• This is called Maximum Ratio Combining (MRC)
TELE4652
( )tra ii ∝
Maximum Ratio Combining
• Complex – requires co-phasing, coherent detection
(to compensate for different time delays of each
branch), and real-time signal amplitude estimation
on each branch
• Can determine performance improvement as for
SC
• Assume M independent and identical Rayleigh
fading branches
• The probability distribution for combined SNR is a
χ-squared (sum of squares) distribution
TELE4652
Maximum Ratio Combining
• The average output SNR is easy to find – it’s just
the sum of the average SNR along each branch
• For our model, with M identical branches
• Note that, unlike SC, there’s no diminishing returns
as we add more branches
• Probability distribution of output SNR
TELE4652
∑=
Σ =M
i
i
1
γγ
γγ M=∑
( )( )!1
1
−=
−−
ΣM
eP
M
M
γγ
γγγ
Maximum Ratio Combining
• Outage probability:
• Can show that the general form of the BER at the
output of an MRC scheme:
• The values of a and b depend on the modulation
scheme chosen
•MRC achieves full diversity order
TELE4652
( )( )
−−= ∑
=
−−
M
k
k
outk
eP1
1
0
!11 0
γγγγ
M
es
baP
−
≈2
γ
Equal Gain Combining
•Weight all of the branches equally:
• Simpler than MRC -> do not need to monitor and
estimate the SNR on each branch
• Difficult to obtain analytic expressions, but
performance is only slightly worse than MRC
• Still requires co-phasing
• A popular trade-off between complexity and
performance
TELE4652
Maaa === K21
Transmitter Diversity
• The above examples (SC, MRC, EGC) address the
problem were we have diversity at the receiver ->
optimal ways to combine the multiple independent
received version of the signal
• It is also possible to implement diversity at the
transmitter
• Have access to multiple antenna
• Generally a feature of MIMO system (Multiple
Input – Multiple Output)
TELE4652
MIMO Systems
• Two general cases:
1.Channels are known by the transmitter (say, with
channel estimation and feedback). This case is then
identical to receiver diversity (SC, MRC, EGC)
2.Channels are unknown. A technique called Space-
Time Coding showed how to achieve full diversity
order. Introduced by Alamouti.
TELE4652
Alamouti Space-Time Coding
• Consider the case of two Tx antenna, 1 Rx antenna
• Channels unknown by the transmitter but can be
determined at the receiver
• Both channels are independent and identical
Rayleigh fading channels
• Instantaneous channel gains,
TELE4652
{ }21,hh
Alamouti Space-Time Coding
• The signal received in the first symbol period:
• The signal received in the second symbol period:
• Ignoring any relative time delays (co-phasing), and
assuming
• As a matrix problem:
TELE4652
122111 nshshy ++=
212212 nshshy ++−= ∗∗
cs TT <<
nsy +=
+
−
=
= ∗∗∗∗ H
n
n
s
s
hh
hh
y
y
2
1
2
1
12
21
2
1
Alamouti Space-Time Coding
• Determine the transmitted symbols by:
• It’s easy to see that the output SNR is:
• Same expression for MRC – they’re equivalent
• Hence, this diversity scheme achieves full diversity order
• Other schemes have been developed for higher values of M (MIMO)
• Key 4G technologyTELE4652
( )( ) nyz ++ +
+
+== H
shh
shhH
2
2
2
2
1
1
2
2
2
1
( )γγ2
2
2
1 hh +=Σ
Practical Diversity Schemes
Let’s summarise with three common examples of
diversity schemes in Cellular Networks:
1.RAKE Receivers (CDMA)
2.Coding and Interleaving
3.Frequency hopping in GSM
TELE4652
RAKE Receivers
• In CDMA, to correlate and identify the different
multipath components
• Requires spreading codes with strong
autocorrelation properties
• Can identify different multipath components
separated by more than a chip period
TELE4652
RAKE Receivers
•Model the channel impulse response as:
• J is the number of branches. The more the better but is a trade-off in complexity
• Output of the ith branch:
where is the symbol transmitted over
is the symbol transmitter over
and is the auto-correlation of the code waveform
TELE4652
( ) ( )chip
J
j
j jTtth −=∑=
δα1
( )∑≠
=
+−+=J
ji
jijlchipchipcjli
i
l nsjTiTssj
1
ˆ ραα
ls ( )[ )ss TllT 1, +
jls ( )[ )
chipschips jTTljTlT −+− 1,
( )( )chipc Tji −ρ
RAKE Receivers
• For no ISI, we require the autocorrelation to
satisfy:
• Then the output from the RAKE receiver will be:
• The gains for each finger, if MRC (for example):
• Also a good technique to take advantage of Tx
diversity. Signals from different base stations will
appear as separate multipath signals.
TELE4652
( ) chipc T≥≈ ττρ for 0
∑=
=J
i
i
lil sas1
ˆˆ
jj a=α
Coding and Interleaving
• Combine channel coding with interleaving
TELE4652
Coding and Interleaving
•Most widely used form of diversity
• Use a channel coding technique, with ability to
correct random bit errors (such as convolutional
encoding), but spread bits from codewords at
distance greater than the channel coherence time
• For example, GSM: TDMA with frame duration
4.615ms. Duration of several frames is comparable
to channel coherence time
• Frequency Hopping - each timeslot can be sent at
a different frequency (hope between four assigned
frequencies) TELE4652
Diversity in GSM
TELE4652
Equalisation
•Multipath introduces ISI
• Irreducible noise floor if
• Data rate increases, and distances increase -> ISI
and equalisation become more important
• Can think of an equaliser as an inverse filter to the
channel
TELE4652
sT>τσ
Adaptive Equalisation
•Wireless channel is time-dependent (Doppler)
• Equaliser must learn the impulse response of the
channel -> TRAINING
• Channel impulse must change, so it must change
its estimate too -> TRACKING
• Note that there’s more to equalisation than
implementing an inverse filter for the channel
• Received spectrum:
TELE4652
( ) ( ) ( ) ( )fNfSfHfY +=
Noise Enhancement
• If we went with a simple equaliser as the inverse
of the channel impulse response:
• The output of the equaliser is then:
• The spectrum of the coloured noise at the output
(assuming AWGN):
• Any spectral nulls in channel, , would
produce massive noise power at the output
TELE4652
( ) ( )fHfH eq 1=
( ) ( ) ( ) ( )fNfSfYfH eq′+=
( )( ) 2
0
2 fH
NfSN =′
( ) 00 ≈fH
Equalisation
• Most equalisers are implemented digitally (on
sampled version of the input)
• Digital filters are smaller, cheaper, easily
tuneable, and power efficient
• Use a ‘training sequence’ (known sequence) to
form estimate of channel
• Blind equalisation is rare
TELE4652
Equaliser - Formulation
• Received signal is:
where
• A linear receiver can be thought of a filter
followed by a sampler at
• The recovered symbols are: where
• The optimal receiver has
• Consider the estimation error:
• For AWGN, our optimum receiver is the one that
minimises the mean squared error TELE4652
( ) ( )tnkTtgatrk
k +−′=∑)(
( ) ( )( )tghtg ∗=′
( )tckTt =
( ) kk nkTy += ξ
( ) ( ) τττξ dnTkTgcan
nk ∫∑∞
∞−
−−′=
( ) kakTy =
kkkk ane −+= ξ
Equaliser - Formulation
• That is:
• This is:
• Noise is uncorrelated to everything, so:
• The other terms can be simplified to give:
• Functional derivative with respect to receiver
filter structure to minimise MSE -> the optimal
filter satisfies:
where TELE4652
[ ]2
21
keEJ =
[ ] [ ] [ ] [ ] [ ] [ ]kkkkkkkkk naEaEnEaEnEEJ −−+++= ξξξ 2
212
212
21
[ ] [ ] 0== kkkk naEnE ξ
( ) ( ) ( ) ( ) ( ) ( )dttgtcddtctctN
tRJ g −′−
−+−+= ∫∫ ∫
∞
∞−
∞
∞−
∞
∞−
′ τττδτ2
0
21
21
( ) ( ) ( ) ( )tgdctN
tRg −′=
−+−∫
∞
∞−
′ τττδτ2
0
( ) ( ) ( )2121 , ττττ −′−′=∑′ kTglTgRk
g
Equaliser - Formulation
• Express this in the frequency domain:
• This is the transfer function of the optimum linear
receiver
• Resembles an IIR filter:
• Extends the idea of the matched filter:
TELE4652
( ) ( )
∑
+′+
′=
∗
k T
kfG
T
N
fGfC
2
0 1
2
( )∑=
−+=
N
k
k
k zc
czC
1
0
1
Equaliser Variants
There are three aspects to equaliser design
TELE4652
Digital Filter Structure
• Either linear or lattice (form of implementation of
filter on a DSP chip)
TELE4652
Digital Filter Structure
Lattice structure is superior because:
• Numerical stability (finite precision
representation)
• Faster convergence (tap weight calculations)
• Ease of dynamic length assignment
We’ll focus on transverse implementations, though,
as more direct representation
TELE4652
∑−=
−=M
Lk
knkn ywx̂ ( ) ∑−=
=M
Lk
k
k zwzH
Linear Equalisers
• Simplest symbol-by-symbol equaliser
• Training – the filter weights are updated each
time the training sequence is sent
• Then, data symbols are passed through the filter
in a symbol by symbol fashion
TELE4652
Decision Feedback Equalisers
• Output symbols give information on ISI that has
occurred (and will occur) in the received signal
• These output symbols can be feedback to refine
the estimates of filter coefficients
• Significant performance improvement over Linear
equaliser
• prior estimated symbols can be used, along with
an estimate of the channel to estimate the ISI
affecting the current symbol
TELE4652
∑∑=
−=
− −=2
1 1
0 ˆ̂N
i
iki
Ni
ikik dvywd
Maximum Likelihood Sequence
Estimation (MLSE) • The optimal receiver in the presence of ISI
• As soon as ISI is present, should no longer make symbol by symbol decisions -> the signal over a symbol period contains information about multiple symbols
• The optimum is to make a joint decision on the entire symbol sequence
• The issue is how to this practically
TELE4652
MLSE Equaliser
• Aim is to determine the most likely original input
symbol sequence, , given that the signal y(t)
was received
• Decide on a group of symbols jointly
• The more the better, but the greater the
computation complexity and overall receiver
throughput delay
• Express received signal relative to some basis:
• Matched filter outputs are:
where ISI is in TELE4652
{ }ka
{ }Laaa ˆ,,ˆ,ˆ10 K
( ) ( )∑=
=M
n
nn tyty0
φ
∑=
+=L
k
nnkkn vhaz0
( ) ( )∫ ∗−=sLT
nsnk dttkTthh0
φ
MLSE Equaliser
• Following the usual logic -> for an AWGN, the
optimal symbol sequence is the one that
maximises
where
• Involves a complex optimisation search algorithm
• The complexity scales exponentially with L
• The Viterbi algorithm enables MLSE to be
implemented in some circumstances
TELE4652
{ } [ ]
−−= ∑ ∑∑ ∗∗
k k m
mkkkL mkuaazaaa ˆˆˆRe2maxargˆ,,ˆ0 K
( ) ( ) ( )ththtu −∗=
Viterbi Algorithm
• State-space based technique
• Works for a discrete alphabet – there are a finite
number of choices for each symbol in digital
modulation
• Progress for each symbol period
• Record a best path for each possible state
(symbol for that period)
TELE4652
Viterbi Algorithm
• For the next symbol, update each possible path to
a new symbol
• Go through and select only the best path for each
state (symbol value)
• Future iterations cannot change which path was
the best one ending at a certain state (only
whether this path will continue to propagate)
TELE4652
Equaliser Algorithms
Methods of determining the optimum filter
coefficients for a given equaliser
Can be either single-shot or iterative:
• Single-shot:
• Zero-forcing equaliser
• MMSE
• Iterative:
• LMS
• RLS
TELE4652
Zero-Forcing Equaliser
• Employ a training sequence to allow receiver to make
an estimate of the channel,
• Idea would be to select the equaliser transfer
function to be the inverse of the channel,
• will be FIR, so this implies inverse is IIR
• A zero-forcing equaliser forms a FIR approximation to
this transfer function
• For example, set of coefficients to
minimise
TELE4652
( )zH
( )( )zH
zH ZF
1=
( )zH
{ }ML ww ,,K−
( )( )
2
1 M
M
L
L zwzwzH
−− ++− K
ZF Equaliser - Example
• Consider a channel with impulse response
• Implement a two-tap ZF Equaliser
• Sampled impulse response:
• Transfer function:
• A ZF equaliser would satisfy:
TELE4652
( ) ≥
=−
otherwise,0
0for , ττteth
[ ] [ ] [ ] K+−+−+= −−211
2nenenh ss TT δδ ττ
( ) τττ
s
ss
T
TT
ez
zzezezH −−−−−
−=+++= K
2211
( )( )
111 −−−== zezH
zH sT
ZF
τ
ZF Equaliser - Example
• Tap coefficients are thus:
• In this example the channel was IIR, so the zero-
forcing equaliser could be FIR
• This will not be the case in practise – our estimate
of the channel must occur over a finite window
• ZF equaliser are not popular in practise -> NOISE
ENHANCEMENT PROBLEM
TELE4652
{ } { }τsTeww−−= ,1, 10
MMSE Equaliser
• Optimum solution in AWGN
• Choose the equaliser coefficients to minimise the
mean square difference between the equaliser
output and the known training symbols
• Input samples to the equaliser (the received
versions of the training symbols):
• The equaliser is of length M
• The training symbols are:
• These are known at both the Tx and Rx
TELE4652
[ ]TMnnnn yyy −−= ,,, 1 Ky
{ }Mnnn xxx −− ,,, 1 K
MMSE Equaliser
• The equaliser output can be expressed as:
• FIR filter. Our aim is to find the set of coefficients
for the best equaliser in MMSE sense,
• The prediction error is:
• Form the mean squared error:
where is called the correlation vector,
and is the covariance matrix
TELE4652
yw ⋅==∑=
−T
M
i
inin ywx0
ˆ
[ ]TMwww ,,, 10 K=w
yw ⋅−=−= T
kkkk xxxe ˆ
[ ] [ ] wwwp RxEeEMSE TT
kk +⋅−=== 222ζ
[ ]kkxE yp =
[ ]TkkER yy=
MMSE Equaliser
• In full:
and
• The MSE can be minimised with respect to the
filter coefficients:
• This gives:
• The solution is then:
• Estimates of R and p can be formed over the
received training symbols TELE4652
[ ][ ] [ ][ ] [ ]
== −−−
−
OMM
L
L
111
1
kkkk
kkkk
k
T
k yyEyyE
yyEyyE
ER yy
[ ] [ ] [ ][ ]Tkkkkkk yxEyxExE L1−== yp
0=
∂∂
∂∂
∂∂
=∇Mwww
ζζζζ ,,,
10
K
0pw =−=∇ 22Rζ
pw1−= RMMSE
MMSE Equaliser
• Does not suffer from Noise Enhancement
• Equivalent transfer function is:
• The problem is the matrix inversion of the
covariance matrix
• For large equalisers, matrix inversion is
computationally expensive
• In addition, this matrix is statistical and be poorly
formed (rows close to linearly dependent)
• Iterative techniques are more common
TELE4652
( )( ) 0
1
NzHzHMMSE +=
Iterative Algorithms
• The search for the optimum filter coefficients is an M dimensional convex optimisation problem
• MSE is:
• Ideas of gradient
search algorithms
• Iteratively search for
the minimaTELE4652
( ) [ ] wwwpw RxEJ TT
k +⋅−== 22ζ
Iterative Algorithms
• Gradient search algorithms – update our estimate
by moving along in the direction of steepest
decent
• Coefficients are updated as:
where α is the step size.
• In our example, the gradient is:
• So the steepest decent algorithm would
iteratively update the filter coefficients as:
• No matrix inversion TELE4652
( ) ( ) ( )( )[ ]jjj J www ∇−+=+
2
1 α
( ) ( )pww −=∇ RJ 2
( ) ( ) ( )[ ]jjjRwpww −+=+ α1
Iterative Algorithms
• The steepest decent algorithm is not very noise
robust
• We do not generally need to spend
computational resources estimating R and p.
• Seek iterative methods. Select based on:
• Computational complexity
• Rate of convergence
• misalignment (tracking error)
• Numerical properties (finite precision, etc.)
TELE4652
LMS Algorithm
• Least Mean Square (LMS)
• Uses a simple approximation to the gradient
• Symbol by symbol (while training), over k:
• Iterative over j:
1. Find current equaliser output,
2. Calculate the current error,
3. and update the equaliser coefficients as
Iterate until it converges, and then move onto next
symbolTELE4652
( ) ( )( ) k
Tjj
kx yw ⋅=ˆ
( ) ( )jkk
j
k xxe ˆ−=
( ) ( ) ( )k
j
k
jj e yww α+=+1
LMS Algorithm
• Step size: a trade-off between convergence rate and
stability
• Stability requires:
where are the eigenvalues of the covariance
matrix, R
• Step-size often estimated from received power level
• Smaller step-size, requires more iterations
• Very little complexity per iteration, but LMS generally
requires many iterations to converge
TELE4652
∑=
<<M
i
i
0
20
λα
{ }iλ
RLS Algorithm
• Recursive Least Squares
• Converges faster than LMS but requires more
computation per iteration
• Minimises the cumulative square error:
where λ is the coefficient of forgetfulness,
• Improves stability and error performance
TELE4652
( ) ∑=
−=m
i
in
i enJ0
2λ
10 << λ
RLS Algorithm
• Symbol by symbol iteration. Procedure:
1. Initialise, , and for some large
positive δ.
2. Obtain a new input sample at a time, and iterate
for that sample. Iterate over j:
3. Find the current output, , and the
current error, .
4. Update the Kalman gains, and the
inverse correlation matrix, .
5. Finally, update the equaliser coefficients:
TELE4652
( )( ) 0kw == 0
0
( ) MMIR ×− = δ1
0
( ) ( )( ) k
Tjj
kx yw ⋅=ˆ
( ) ( )jkk
j
k xxe ˆ−=( )
( )
( ) kj
T
k
kj
jR
R
yy
yk
1
1
1
1
−−
−−
+=λ
( ) ( ) ( ) ( )[ ]1
11
1
1
1 1 −−−
−−
− −= j
T
kjjj RRR ykλ
( ) ( ) ( )( )j
j
k
jj e kww +=+1
RLS Algorithm
• Much more computation per iteration, as
compared to LMS
• Converges much faster
• Generally, iterative algorithms are a trade-off
between complexity and convergence speed
TELE4652
Iterative Algorithms - Summary
Performance of some common iterative algorithms:
TELE4652
Algorithm No. of mux
per iteration
Complexity Convergence
speed
Tracking
LMS 2N + 1 Low Slow (>10N) Poor
MMSE to Very high Fast (~N) Good
RLS High Fast (~N) Good
Fast Kalman DFE 20N + 5 Low Fast (~N) Good
Square-root LS DFE High Fast (~N) Good
2N3N
NN 5.45.2 2 +
NN 5.65.1 2 +
Channel Coding
• Forward Error Correction (FEC)
• Channel coding is an important feature of
wireless communication systems
• Channel Coding – the addition of redundancy to
facilitate the detection and correction of errors
• This equates to parity bits
• Expands the data size, but essential for error-free
(ie. successful) communications
TELE4652
Channel Coding in Cellular Networks
Three main types:
• Block Coding – for error detection. For example,
CRC (Cyclic Redundancy Check) bits. Often
associated with higher protocol layers
• Convolutional Coding – for error correction in 2G
cellular networks (effective when combined with
interleaving)
• Turbo Coding – advanced coding for 3G and 4G
networks. Requires more computing resources.
TELE4652
Coding Theory
• Coding lowers the BER for a given SNR level
• Talk about CODING GAIN – the reduction in the
SNR needed to achieve a given BER when a code
is employed
TELE4652
Shannon’s Theorem • Channel Coding is fundamental to our
understanding of Channel Capacity
• Most efficient way of getting information across the channel -> rather than ACK or NACK plus resend
• Shannon formed his theory for channel capacity relying on infinitely long block codes
• Codewords randomly chosen from a Gaussian distribution
• As long as length of code was allowed to -> ∞, successful communication is possible at this rate
• For AWGN channel, this is:
TELE4652( )SNRBBN
PBC +=
+= 1log1log 2
0
2
Example – Binary Symmetric
Channel (BSC) • This is a good channel model for a binary
modulation scheme (eg. BPSK)
• For BPSK with coherent detection over the AWGN
channel, we’d have
• Shannon’s theory allows us to determine the
capacity of this channelTELE4652
0=X
1=X
0=Y
1=Y
q−1
q−1
q
q
=
0
2
N
EQq b
Binary Symmetric Channel
• The capacity is the maximum rate of successful
communication
• The capacity is in bits per channel use
where
• This is shown as a function of the cross-over prob.
TELE4652
( )qHC −=1BSC
( ) ( ) ( ) qqqqqH 22 log1log1 −−−−=
Binary Symmetric Channel
• Corner cases:
• q = 0, can successfully convey 1 bit/use
• q = 1, can successfully convey 1 bit/use ->
always take the opposite of what you receive!
• q = 0.5, cannot convey any bits/use -> always a
50% chance it is correct or not
• Practical example:
• say, q = 0.1, C = 0.531 bits/use
• This implies coding – insert redundancy 47% of
the timeTELE4652
Practical Coding
• Shannon’s theory – our aim is to make the codes
as large as possible, then we approach channel
capacity
• To do this practically we need codes with
structure
• General features:
• Systematic: [input bits | parity bits]
• Cyclic codes: polynomial representations
• Linear: implemented by linear operations
TELE4652
Block Codes
• (n,k) code – maps group of k input bits to n bit-
codeword
• If systematic:
• A single parity bit is a (k+1,k) block code
• 1011011 -> 10110111
• 0100111 -> 01001110
• Detect a single errorTELE4652
Block encoder
x1, x2, …,xM
Channel
fY|X
Block decoder],,[ ,1, Nmmm xx K=x
∏=
N
n
nmnXYm
xyf1
,| ),(argmax
],,[ 1 Nyy K=y
Block Codes
• A code that can also correct errors
• (5,2) block code - systematic
• Input binary word Codeword
(0,0) (0,0,0,0,0)
(0,1) (0,1,0,1,1)
(1,0) (1,0,1,0,1)
(1,1) (1,1,1,1,0)
• Each codeword differs from all other codewords in at
least 3 bit positions
• Can detect 2 bit errors and correct a single bit error
• For instance, 11100 would most likely be 11110TELE4652
Block Codes
• Aim is to maximise the code rate, , while
obtaining a code that can correct as many errors
as possible
• How many errors can a code correct?
• Determined by how many bit positions that
codewords differ by
• (n,k) code: codewords or binary vectors
embedded in an n-dimensional binary space, with
different combinations
• Hamming distance: minimum number of bit
positions that pairs of codewords differ TELE4652
nkR =
k2n2
Hamming Distance
• To correct t bit errors, we require that the
Hamming distance satisfy:
• Formally, we define the Hamming weight as the
number of ‘1’s in a codeword
• For a codeword: , with
then
TELE4652
12min +≥ td
( )iniii ccc ,,, 21 K=c { }{ }1,0∈ijc
( ) ∑=
=n
j
iji cw1
c
Hamming Distance
• With binary arithmetic, can define the Hamming distance between two codewords:
• The Hamming bound of the code is then:
• Linear code – the sum of every two codewordsgives another codeword:
• Popular since allow matrix representation
• For a linear code, the Hamming distance is the minimum number of zeros in a codeword other than the all zero codeword:
TELE4652
( ) ( ) ( )jijiji wwd cccccc −=+=,Ham
( )jidd
ji
cccc
,min HamCode,
min ∈=
CC jiji ∈+∈ cccc then ,, If
( )iddi
cc
HamCode
min min∈
=
Hamming Bound
• Error detection – the number of errors that a code can detect (but not necessarily correct):
• A code could do some of both:
and
• To make decoding spheres disjoint, we must have:
• This is called the Hamming bound
TELE4652
1min +≥ dtd
12min +≥ ctd 1min ++≥ cd ttd
knt
j j
n −
=
≤
∑ 2
0
5min =d
1c
points 1
1h
=
n
d
points 2
1
2h
+
=
nn
d
2c
Linear Block Codes
• The sum of a pair of codewords makes another
codeword:
• Can represent the code-space as a binary vector
space
• Allow codewords to be generated with a
generating matrix:
• A systematic code will have:
TELE4652
CC jiji ∈+∈ cccc then ,, If
Gbc =
( )( )knkkk PIG −××= |
Linear Block Codes
• The (5,2) code given earlier is linear.
• Input binary word Codeword
(0,0) (0,0,0,0,0)
(0,1) (0,1,0,1,1)
(1,0) (1,0,1,0,1)
(1,1) (1,1,1,1,0)
• The generating matrix for this code is:
TELE4652
=
1
1
10
01
10
01G
Syndrome Decoding
• Linear block codes allow a simple decoding
strategy
• We form the syndrome to a received codeword,
using the parity check matrix:
• If the syndrome is zero, then it is a valid codeword.
• Observe that:
• Otherwise, the syndrome will tell us the error
TELE4652
=
I
PH
( )
0bb
b
bcy
=+=
=
==
PP
I
PPI
GHH
|
Syndrome Decoding
• If the received binary vector is:
• The syndrome is determined by the error alone:
• For small block codes, a look-up table can be used
to identify the error
• For our (5,2) code, the parity check matrix is:
TELE4652
ecr +=
H
HH
H
e
ec
ry
=
+=
=
=
1
0
0
1
0
0001
1
1
1
0
0
1
H
Syndrome Decoding
• This code can correct a single error:
• The correctable errors are then the binary vectors with a ‘1’ in a single position.
• This gives a syndrome decoding look-up table as:
• Syndrome Corresponding Error
(1,0,1) (1,0,0,0,0)
(0,1,1) (0,1,0,0,0)
(1,0,0) (0,0,1,0,0)
(0,1,0) (0,0,0,1,0)
(0,0,1) (0,0,0,0,1)
• For example, if decoder received (1,0,1,1,0).
• The syndrome is: giving (0,1,1).
• We identify the error and decode (1,1,1,1,0)to (1,1)
TELE4652
3min =d
Hry =
Cyclic Codes
• Add even more structure (to make encoding and decoding more efficient)
• Require that every cyclic shift of a codeword forms another codeword.
• For example, if 010110 is codeword, so is 001011, and 100101, etc.
• The (5,2) code is not cyclic. However, the (6,2) code below is:
• Input binary word Codeword
(0,0) (0,0,0,0,0,0)
(0,1) (0,1,0,1,0,1)
(1,0) (1,0,1,0,1,0)
(1,1) (1,1,1,1,1,1)
TELE4652
Cyclic Codes
• This property enables mapping of codewords to
polynomials over the binary field
• For instance, (1,0,1,0,1,0) as a binary polynomial
is
• Polynomial multiplication and division can be
implemented very efficiently in ASICs and
microprocessors
• Represent input words as binary polynomials:
• Code is formed using a generator polynomial:
TELE4652
pppppppp ++≡+++++ 352345 010101
( )pb
( )pg
Cyclic Codes
• Encoding: multiply the input codeword by , then divide this by the generator polynomial to find the parity bits
• This ensures systematic codewords:
• Decoding: Divide the received codeword by the generator polynomial to find the syndrome.
• If syndrome is zero, then it is a valid codeword and we take the first k bits
• Use a look-up table (or other) to find and correct the error
TELE4652
knp −
( ) ( ) ( ) ( )ppgpqpbp kn ρ+=−
( ) ( ) ( )ppbppc kn ρ+= −
Cyclic Codes
• Encoding and decoding process is easy to
implement using bit-shift and add operations
• Can use register implementation
• For example, (7,4) Hamming code:
•
• After first k = 3 bits, the switch moves down
• Computationally efficient
TELE4652
( ) 321 pppg ++=
Cyclic Codes - Example
• (7,4) Hamming code has a generator polynomial:
• To encode (1,0,1,0), we first form:
• We encode by dividing this by the generator
polynomial:
• The remainder is so codeword is 1010001 TELE4652
( ) 321 pppg ++=
( ) ( ) 4633 ppppppbp kn +=+=−
1
1
1
1
23
23
23
245
345
356
4623
++
++
+
++
++
++
+++
pp
pp
pp
ppp
ppp
ppp
pppp
( ) 1=pρ
Hamming Codes
• Family of perfect single error-correcting codes
• Perfect code is one that makes equality in the
Hamming bound. This means there are no wasted
points in the codespace
• For a single error correcting code:
• There are Hamming codes for (3,1), (7,4), (15,11),
and (31,26)
• Cyclic codes, represent using generator polynomial
• For example, (7,4) code:
TELE4652
knn −=+ 21
( )( )( )3237 1111 pppppp +++++=+
CRC Codes
• Cyclic Redundancy Check Codes
• Used for error detection. For instance, higher protocol layer to indicate when the FEC code fails
• Involve Automatic Resend Request (ARQ)
• Some common standards:
• Code Generator Polynomial n-k
CRC-12 code 12
CRC-16 (USA) 16
CRC-16 (ITU) 16
• Implemented as cyclic codes
TELE4652
1231112 +++++ ppppp
121516 +++ ppp
151216 +++ ppp
BCH Codes
• Bose-Chaudhuri-Hocquenghem (BCH) codes
• Family of binary block codes
• Characterised by a positive integer m > 2, to correct bit errors
• They satisfy:
• Block length:
• No. of message bits:
• Hamming distance:
• Cyclic codes
• Generator polynomials for all sensible-sized codes are already known
TELE4652
( ) 212 −< mt
12 −= mn
mtnk −≥12min +≥ td
BCH Codes
• For example, m = 5 means can find codes to
correct t = 2 errors
• This implies a (15,7) code is needed with
• The generator polynomial can be looked up to
give:
• BCH codes do not need look-up tables (can be
impractical for large codes)
• Use an error locator algorithm – either the
Berlekamp-Massey or the Euclid
• Allows large code sizes to be implemented
TELE4652
5min =d
( ) 14678 ++++= pppppg
Reed-Solomon Codes
• Non-binary cyclic codes
• (n,k) code - map a group of k symbols to n symbols
• Often the alphabet is a byte - where m = 8
• Effectively maps mk bits to mn bits
• Can correct t symbol errors, no matter where they lie in the codeword
• Parameters are:
• Block length: symbols
• Message size: k symbols
• Parity check size: symbols
• Hamming distance: symbols TELE4652
m2
12 −= mn
tkn 2=−
12min += td
RS Codes
• For input bytes, this implies the block length is n =
255 symbols
• To correct 16 symbol errors, we need
• This makes the input message size k = 223
• Thus, a (255,223) RS code to correct 16 symbol
errors
• Code rate is very close to 1
• involves the transmission of 8×255 = 2040 bits for
a code word
TELE4652
33min =d
RS Codes
• The (255,223) RS code can correct 16 symbol
errors, no matter where they occur through the
codeword
• For instance, it could correct 16 consecutive
symbol errors
• This corresponds to 16×8 = 128 consecutive bits
being in error – can all be corrected!
• The weakness is that it takes only 17 random bit
errors within the 2048 bits, effecting 17 different
symbols, to break the code
TELE4652
RS Codes
• RS codes are very powerful when combined with
an outer code to correct random bit errors (like a
convolutional code)
• The RS code then protects against burst errors
and failures of the outer code
• RS codes lie at the core of the NASA/ESA deep
space coding standard (CCSDS).
• Decoding – use error locator algorithm
(Berlekamp-Massy), followed by error correction
algorithm
• Polynomials over non-binary fields, GF[256]TELE4652
Block Codes - Summary
The difficulties of block codes
• Correct more bits per codeword requires more and more parity bits. For example, codes to correct 3 errors: (15,5), (23,12), and (29,12)
• Syndrome decoding does not scale well – look-up tables become unmanageable. BCH and RS codes use different strategies, and so can make long codes
• Good error performance necessitates long codes
• Note the energy cost related to the code rate. BER when code is employed (coherent BPSK)
TELE46521minhard
1
+
+
≈ t
eb qt
n
n
dP
=
0
2
nN
kEQq b
Convolutional Codes
• Make infinitely long block codes with finite
complexity
• Introduce memory into the encoding process
• (n,k,m) convolutional code produces n output bits
for k input bits, dependent on the m previous
input bit groups
• (2,1,2) convolutional encoder is shown:
TELE4652
1−lb 2−lblb
)1(
lc
)0(
lc
Convolutional Codes
• Output bits are determined from the input bits by
the relationships:
• Can describe in terms of a pair of generator
sequences
• Represent in octal – this is
• Output sequence is formed by taking the
convolution of the input bit sequence with the
generator sequences
TELE4652
( )2
0
−+= iii bbc
( )21
1
−− ++= iiii bbbc
( ) { }1,0,10 =jg( ) { }1,1,11 =jg
( ) ( ){ } { } { }111,1017,5, 10 ≡=jj gg
( ) ( )∑=
−=m
j
jiji bgc0
00 ( ) ( )∑=
−=m
j
jiji bgc0
11
Convolutional Codes
• Consider the following input bit sequence:
= 10011
• The output bit sequence is:
• The output bits are generally concatenated to
form a single transmitted sequence (with a
predefined order): 1110111101
• This is the interleaving of two sequences formed
by convolving the input bit sequence with the
generator sequences
TELE4652
ib
( ) ( )( ) ( ) ( ) ( ) ( ) ( ){ }1,0,1,1,1,1,0,1,1,1, 10 =ii cc
Convolutional Codes
• Convolutional encoders can be understood as
state machines
• The previous input bits, stored in the registers,
are the encoder states
• Represent as a state diagram
• For (2,1,2):
TELE4652
( )0,0
( )1,1
( )0,1 ( )1,0
)0,0(0
)0,1(1
)1,0(0
)1,1(0
)0,0(1
)0,1(0
)1,0(1
)1,1(1
Trellis Diagrams
• At each time instant, the encoder must be in one
of the states
• We can show how it evolves over time
• This is called the trellis diagram
• For (2,1,2) encoder:
TELE4652
Convolutional Encoding
• The input bit sequence cause the encoder to
follow a particular path through the trellis:
• Shown is path for input bit sequence 10011
• Always flush after use (good manners)
TELE4652
)0,0(0
)0,1(0
)1,0(1
)1,1(1
( )0,0
( )0,1
( )0,0
( )1,0
( )0,1
( )1,1
( )0,0( )0,0
)0,0(0
)1,1(1
)0,0(0
)0,1(1
)1,0(0
)1,1(0
)0,0(1
)0,1(0
)1,0(1
)1,1(1
( )0,0
( )1,0
( )0,1
( )1,1
)0,0(0
)0,1(1
)1,0(0
)1,1(0
)0,0(1
)0,1(0
)1,0(1
)1,1(1
( )0,0
( )1,0
( )0,1
( )1,1
)0,0(0
)0,1(1
)1,0(0
)1,1(0
)0,0(1
)0,1(0
)1,0(1
)1,1(1
( )0,0
( )1,0
( )0,1
( )1,1
)0,0(0
)1,0(0
)1,1(0
)0,1(0
( )0,0
( )1,0
)0,0(0
)1,1(0 ( )0,0
flush
Viterbi Algorithm
• The role of the decoder is then to observe the
received bit sequence and determine the most
likely path through the trellis
• The popularity of convolutional codes is due to
the existence of an efficient algorithm to do this –
the Viterbi algorithm
• The key observation is that it only matters what
state the encoder is in and not how it got there.
Any future received bits will not change the past
decisions on how the encoder got into each state
TELE4652
Viterbi Algorithm
• For each state we record the best path (the one
closest to the received bit sequence) ending at
this state.
• We remember the state, the path (the
corresponding input bit sequence), and the
branch metric (the Hamming distance between
the received sequence and the bits that would
have been sent for this path)
• Then, we update this table for successive group of
received bits
• Can be implemented in real-timeTELE4652
Viterbi Algorithm
• Consider the (2,1,2) encoder example
• Let the received sequence be: 10 10 11 01 01 01
• Assuming the encoder was initially flushed, there
is a unique path to each state for the first two
inputs:
• The state table for the first two
inputs is:
TELE4652
State
00 00 00 00 2
01 10 11 10 1
10 01 00 11 2
11 11 11 01 3
( )il:0b
( )il:0c
( )( )i
ld :0c
Viterbi Algorithm
• Next input bit pair is 11
• Begin with State (00).
• There are two ways to get to state (00):
• From state (00), if input was 0 and
output would be 00
• Or from state (01), if input was 0 and output would be 11
• Compare updating existing paths to (00)
• Metric to (00) was 2, and extra transition would differ in 2 more bits(11 received but 00 would have been sent), so this option has a metric of 4
• Metric to (01) was 1, but extra transition matches (11 and 11), so total metric would be 1
• Choose best and update table TELE4652
Viterbi Algorithm
• The best path ending at (00) is made by extending the path ending at (01) with the extra transition to (00)
• Then do the same process for the next state, (01)
• To evolve to (01):
• From (10) with input 0 and 01 sent
• From (11) with input 0 and 10 sent
• Compare the resulting metrics
• To (10) had metric 2, and this
transition would add 1 to make 3
• To (11), metric was 3, and we’d add
1 to make the total 4
• We update path from (10) with the extra transition to be our best path ending at (01)
TELE4652
Viterbi Algorithm
• We then update our path table to find the best
path ending at state (10)
• Finally, update it for the best path ending at (11)
• Our state table at the end of three inputs would
be: (received was 10 10 11
TELE4652
State Inputs Outputs Metric
00 100 11 10 11 1
01 010 00 11 10 3
10 001 00 00 11 2
11 011 00 11 01 3
Viterbi Algorithm
• For the next received bit pair 01, we’d obtain
• Proceeding for the next two received groups, 01 & 01
TELE4652
State Inputs Outputs Metric
00 1000 11 10 11 00 2
01 0110 00 11 01 01 3
10 1001 11 10 11 11 2
11 0011 00 00 11 01 2
State Inputs Outputs Metric
00 001100 00 00 11 01 01 11 3
01 100110 11 10 11 11 01 01 2
10 001101 00 00 11 01 01 00 3
11 100011 11 10 11 00 11 01 3
Viterbi Algorithm
• If we stopped at this point, we’d decode the
received bit sequence as 100110
• We’d have corrected 2 bit errors in 12 received
bits
• It would be difficult to find a block code with this
code rate of ½ to achieve this performance
• After a while the paths begin to look similar in the
earlier groups of bits – make decisions on these
• Typically, only remember paths up to about 5m,
where m is the encoder memory (only a guide)
TELE4652
Viterbi Algorithm
• IS-95 CDMA used a (3,1,9) convolutional encoder
on the Reverse link
• This implies states
• The decoder would need to keep track of 512
paths of length of approximately 45 bits each,
requiring 2880 bytes
• For each received 3 bit group, the decoder
would perform correlations and
comparisons
• Performed in real-timeTELE4652
51229 =
1024210 =
Channel Coding
Our best practical codes:
• Convolutional code with interleaving (GSM)
• Outer Reed-Solomon code and inner
convolutional code (Deep Space comms)
• Turbo Codes – built from two convolutional codes
• LDPC Codes – Low Density Parity Check Codes.
These are block codes with sparse parity check
matrices. Efficient decoding, from tanner graphs,
mean large code sizes can be achieved
TELE4652
Turbo Codes
• Developed in 1993
• Achieved performance surprisingly close to the
Shannon limit
• Use a recursive systematic convolutional code (RSC)
• Send the input bits, the output of a RSC, and the
output of the RSC to an interleaved version of the
input bit sequence
TELE4652
RSC
• Recursive Systematic Convolutional Codes
• Same principles as convolutional codes, except
one of the outputs is always a copy of the input
bit sequence
• Employ feedback in the state machine
TELE4652
Turbo Codes
• Decoder structure is two parallel convolutional
decoders (Viterbi), with the same interleaver,
trading soft-decisions
• Decisions can be weighted by soft estimates
TELE4652
Soft Decision Decoding
• Can be used with any type of code
• Rather than decide on each bit as 0 or 1 before
decoding, leave each bit as an estimate – say
probability the bit is 1
• For example, BPSK received amplitudes might be
• Hard decision would recover:
• However, soft-decision decoding would make bit
estimates for probabilities
• For AWGN, this would be:
• Requires more resources. Finite-precision TELE4652
( )000000 79.0,87.0,12.0,21.1,564.0,91.0 gggggg −−−=r
( )1,0,0,1,0,1=rb
=
0
1logP
Pb)