tele4652 mobile and satellite communications · 2010-09-27 · diversity techniques •techniques...

63
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 errors TELE4652

Upload: others

Post on 28-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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)