You are on page 1of 339

Wireless Communications with

Matlab and Simulink: IEEE802.16


(WiMax) Physical Layer

by

Roberto Cristi

Professor
Dept of Electrical and Computer Engineering
Naval Postgraduate School
Monterey, CA 93943
August 2009
Table of Content:

1. Introduction: WiMax, Matlab and Simulink

2. Introduction to Digital Signal Processing and Matlab


2.1 Discrete time Signals and Systems
2.2 Fast Fourier Transform (FFT) and its Inverse (IFFT)
2.3 Convolution and Correlation
Lab 1: Matlab/Simulink Code

3. Digital Communications Fundamentals


3.1 General Structure of a Digital Communication System
3.2 Channel Losses and Noise
3.3 Complex Baseband Representation
3.4 Bit Error Probabilities
3.5 Simulink Implementation
Lab 2: Matlab/Simulink Code

4. Channel Models
4.1 Introduction and Channel Losses
4.2 Models of Fading Channels
4.3 Channel Parameterization
4.4 Estimation of Channel Parameters from Data
Lab 3: Matlab/Simulink Code

5. Multi Carrier Modulation and OFDM


5.1 Single Carrier and Multi Carrier Modulation
5.2 Orthogonal Frequency Division Multiplexing (OFDM)
5.3 Example: basics of IEEE 802.11a (WiFi)
Lab 4: Matlab/Simulink Code

6. Error Correction Coding


6.1 Channel Capacity and Error Correction Coding
6.2 Block Codes
6.3 Convolutional Codes
6.4 Code Shortening and Puncturing
6.5 Simulink Implementation of IEEE802.16 coding schemes
Simulink/Matlab Code: Error Correction
7. IEEE802.16 Implementation
7.1 Time Synchronization and Channel Estimation using the
Preamble
7.2 Channel Tracking for Mobile Applications
7.3 Simulink Implementation of IEEE802.16-2004 (Fixed)
7.4 Simulink Implementation of IEEE802.16e-2005 (Mobile)
Simulink/Matlab Code: IEEE802.16 Implementation

8. Multi Antennas
8.1 Receive Diversity
8.2 Transmit Diversity
8.3 Space Time Coding
8.4 Transmit Diversity with Space Coding in IEEE802.16

9. Issues in OFDM Systems Implementations


9.1 Peak to Average Power Ratio (PAPR)
9.2 IQ Imbalance
9.3 Frequency Offset
Introduction to IEEE 802.16 and WiMax

Existing “Area Networks” for wireless communications:

• Personal (PAN), up to a few meters. It requires simple “thumb like” transmitters


receivers. Typical: Bluetooth.
• Local (LAN), up to 300m. It requires simple “box like” devices. Typical: WiFi
(IEEE802.11)
• Wide (WAN), up to a few miles. It requires towers and cellular technology. Typical: W-
CDMA, CDMA 2000, UMTS …

IEEE 802.16 (WiMax) are possible future technologies for WAN.


IEEE 802.16 and WiMax

• IEEE802.16 is a standard for Broadband Wireless Access (BWA) Air Interface. It is


purely technical (not commercial);
•“The WiMAX Forum® is an industry-led, not-for-profit organization formed to certify
and promote the compatibility and interoperability of broadband wireless products
based upon the harmonized IEEE 802.16/ETSI HiperMAN standard. A WiMAX Forum
goal is to accelerate the introduction of these systems into the marketplace. WiMAX
Forum Certified™ products are fully interoperable and support broadband fixed,
portable and mobile services. Along these lines, the WiMAX Forum works closely with
service providers and regulators to ensure that WiMAX Forum Certified systems meet
customer and government requirements” (from the WiMax website
www.wimaxforum.org)
Current WAN Technologies for Voice and Data

3G: CDMA2000 and UMTS. All based on Spread Spectrum


3.5G: increased capacity by combining CDMA with TDM (Time Division Multiplexing).
Voice and Data on separate channels. Current technology;
4G : to provide voice, data, multimedia services at low cost on an all IP (packets)
network. IEEE802.16 (WiMax) is one of the technologies considered.

TODAY: voice and data on separate networks;


TOMORROW: voice and data on the same network. Data using Voice Over IP
(VoIP). Advantages: flexibility, control of QoS, scalable.
Evolution of IEEE802.16:

802.16 Dec 2001 10-66GHz Fixed, LOS Single Carrier

802.16-2004 June 2004 2-11GHz Fixed, NOLOS SC, 256


OFDM, 2048
OFDMA
802.16e-2005 Dec 2005 2-6GHz Fixed, Mobile, SC, 256OFDM,
NOLOS 128, 512,
1024, 2048
OFDMA

In addition, IEEE802.16-2004 and 2005 have options based on Multi Antennas


techniques.
Introduction to Simulink

• Matlab based
• Both Continuous Time and Discrete Time Simulation
• Based on Blocksets
• Model Based Design: a software model of the environment can be
developed and the design can be tested by simulation
• Transition between “ideal” algorithms (infinite precision, floating point) to
“real world” algorithms (finite precision, fixed point);
• Automatic Code Generation: once the design is tested and validated, real
time code can be automatically generated for the target platform
• Continuous Test and Verification
Advantages (from the MathWorks slide)
Innovation
• Rapid design iterations
• “What-if” studies
• Unique features and differentiators

Quality
• Reduce design errors
• Minimize hand coding errors
• Unambiguous communication internally and externally

Cost
• Reduce expensive physical prototypes
• Reduce re-work
• Reduce testing

Time-to-market
• Get it right the first time
Simulink
• Hierarchical block
diagram design and
simulation tool
– Built-in notions of time
and concurrency
• Digital, analog/mixed
signal and event driven
• Visualize Signals
• Co-develop with C code
• Integrated with
MATLAB
Example

Simulink Model

Digital Wireless Digital


TX RX
Mod Channel Dem

• Design
•Test
• Automatically Generate Code

… 00010101011101010100101111
0010101010010010101001001001….
Compute Errors
Modulator Demodulator

Fading
channel

Display signals
Simulink has a very rich library of blocksets:
1. Introduction to Digital Signal Processing and Matlab

1. Discrete time Signals and Systems


2. Fast Fourier Transform (FFT) and its Inverse (IFFT)
3. Convolution and Correlation
1. Discrete Time Signals

1. Continuous Time to Discrete Time


2. Fundamental Signals: Delta Function, Sinusoid,
Complex Exponential
Continuous Time and Discrete Time Signals
x[n]

Sampling
nTs

x(t ) x[n] = x ( nTs )


t
Fs = 1 / Ts

Fs Sampling frequency (Hz=1/sec)

Ts Sampling interval (sec)


Fundamental Discrete Time Signals

δ [n]
1. “Delta” or “Impulse”
n

2. Sinusoid
phase

x[n] = A cos(2πF0t + α ) t = nT = A cos(ω0 n + α )


s

amplitude F0
ω0 = 2π
Fs
Frequency (Hz)
Digital
Frequency
(radians)
Example: F = 10kHz
s

x[n] = 10 cos ( 4, 000π t + 0.1) t = nT = 10 cos (ω0 n + 0.1)


s

Digital frequency:

F0 = 2kHz 2, 000 Hz 2π
⇒ ω0 = 2π = rad
Fs = 10kHz 10, 000 Hz 5

Generate it in matlab: plot_a_sinusoid.m

n=0:100; n=[0,1,2,…,100]
A=10;
w0=2*pi/5;
alpha=0.1;
x=A*cos(w0*n+alpha); x=[10*cos(0.1), … , 10*cos((2*pi/5)*100+0.1)]

plot(x);
3. Complex Exponentials

( )
y[n] = Ae j (ω0 n +α ) = Ae jα e jω0 n
= A cos(ω0 n + α ) + j A sin(ω0 n + α )
144244 3 144244 3
Real Part Imaginary Part

where j = −1 imaginary basis

Then a sinusoid becomes the “real part” of a complex signal

A cos(ω0 n + α ) = Re Ae { j (ω0 n +α )
}
Sinusoids and Frequency Spectrum

Complex exponentials are the “building blocks” of signals and systems.


Reasons: all operations of interest boil down to multiplications or divisions

A sinusoid in terms of complex exponentials can also be written as

A j (ω0 n +α ) A − j (ω0 n +α )
A cos(ω0 n + α ) = e + e
2 2

with two frequencies:


positive and negative

−ω0 ω0
The Fast Fourier Transform (FFT) and its Inverse (IFFT)

1. Definitions
2. Examples
3. Computation in Matlab
4. Symmetry
The Fast Fourier Transform (FFT)
Given a finite sequence of data x

x[n], n = 0,..., N − 1 n
0 N −1
1. Define the FFT

X = FFT {x}
N −1 2π
− jk
X [k ] = ∑ x[n]e
n
where N
k = 0,..., N − 1
n =0

2. … and the IFFT (Inverse FFT)

x = IFFT { X }
N −1 2π
1
∑ X [k ]e
jk n
where x[n] =
N
N
n = 0,..., N − 1
k =0
Meaning:

X [k ], k = 0,..., N − 1

is the component of the spectrum due to frequency

F sampling frequency
F =k s
N data length

Example:

Let | X [k ] |
Fs = 10kHz
N = 1024
0 1023
220 k
10
F = 220 kHz = 2.15kHz
1024
Example: example_of_fft.m

Data length N=1024; This corresponds to the


“negative frequency”
Sampling Frequency Fs=10kHz
(disregard)
X=fft(x);
k=0:1023; f=k*Fs/N; % frequency axis
FFT of cosine
4000
plot(f,abs(X))
3500

3000

2500

2000

1500

1000

500

0
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Hz

Freq. = 1kHz
Convolution and Correlation

1. Convolution as system response


2. Autocorrelation of data
3. Crosscorrelation between data sets
4. Estimation of Impulse Response using Crosscorrelation
Operations of Interest

1. Convolution. To compute the output of a Linear Time Invariant system

Impulse
response
x[n] y[n]
h[n]
Input output
signal signal

Definition of Convolution:

+∞
y[n] = h[n] * x[n] = ∑ h[l]x[n − l]
l = −∞
In general you deal with sequences of finite length

y[n] = h[0]x[n] + h[1]x[n − 1] + h[2]x[n − 2] + ... + h[ M − 1]x[n − M + 1]

Impulse
convolution response
Input data

x h =
0 N −1
* 0 M −1

Output data

= y
0 N +M −2
In matlab:

Let
1. h be the vector of impulse response;
2. x be the input vector
Then the output vector
y=conv(h,x);

Example: convolution_of_finite_sequences.m
h=[1,0,0,0.5,0,-0.2,0,0.1]; % impulse response
n=0:200; x=2*cos(0.1*pi*n); % input signal
y=conv(h,x); % output signal
plot(y)
2. Auto Correlation.

For a signal with zero mean, to see if the samples are “correlated” with each other
+∞
Definition of Auto Correlation: rx [m] = ∑ x[ n
n = −∞
] x *
[ n − m]

Again, you deal with signals of finite length

x[n], n = 0,..., N − 1
N −1
1
rx [m] =
N
∑ x[
n =0
n ] x *
[n − m], m = − N + 1,..., N − 1

Example: White Noise with standard deviation σ x


rx [m]
⎧ 2 1 N −1

⎪σ x =
rx [m] = ⎨ N
∑ |
n =0
x[ n ] | 2
, if m = 0
⎪≈ 0, m
⎩ otherwise
white noise sequence
4
Example: xcorr_of_white_noise.m
3

% data 1

0
sigx=sqrt(2)
-1

x=sigx*randn(1,1000); -2

plot(x); -3

-4
0 100 200 300 400 500 600 700 800 900 1000

% autocorrelation 1.8
autocorrelation of x

1.6
N=length(x);
1.4

rx=xcorr(x)/N; 1.2

1
max_lag=length(x)-1; 0.8

m=-max_lag:max_lag; 0.6

0.4

plot(m,rx) 0.2

-0.2
-1000 -800 -600 -400 -200 0 200 400 600 800 1000
time lag
2. Cross Correlation.

To see if two signals are “correlated” with each other

+∞
ryx [m] = ∑ y[
n = −∞
n ] x *
[ n − m]

With finite length signals:

x[n], n = 0,..., N − 1
y[n], n = 0,..., M − 1

M −1
1
ryx [m] =
M
∑ y[
n =0
n ] x *
[n − m], m = − max( N , M ) + 1,..., max( N , M ) − 1
Case of Interest: estimation of the impulse response of a Linear Time Invariant system
from input-output data

x[n] y[n]
h[n]

If x[n] is white noise, then h[n] = ryx [n] / rx [0]


Example: impulse_response_with_xcorr.m 2.5

2
h=[1, 0, 0.2, -0.5, 2, -0.1]; % impulse response
1.5
y=conv(h,x);
1
ryx=xcorr(y,x) /length(y)
0.5
h_est=ryx/ryx(length(x));
0

-0.5
-1.5 -1 -0.5 0 0.5 1 1.5
4
x 10
2.5

1.5

zoom in
0.5

-0.5
-40 -20 0 20 40 60
Lab 1: Introduction to DSP and Matlab

A. Sinusoids and the FFT:

1. Generate a sinusoidal signal of a given frequency


2. Check its frequency spectrum

B. White Noise, Convolution, Correlation:

1. Generate a white noise signal with a given covariance


2. Determine the output of a given Linear Time Invariant System
3. From the input-output data, estimate the impulse response of the system
A. Sinusoids and the FFT:

A.1 Generate a sinusoid with the following parameters and plot it vs time:

Amplitude A = 5. 0
Frequency F0 = 5.0 kHz
Sampling Frequency FS = 15.0 kHz
Phase α = 30 0
Length 128 samples

Reference: plot_a_sinusoid.m
A.2 Take the FFT of the sinusoid you generated, plot its magnitude (absolute value),
and verify that you obtain the frequency you expect.

Reference: example_of_fft.m
B. White Noise, Convolution, Correlation:

1. Generate a gaussian white noise signal with the following parameters:

Standard Deviation σx = 5
Length N = 10,000 data points
Plot its autocorrelation and verify that it is as expected.

2. This signal is the input to a system with impulse response

h = [1,0,−2,0.5,0,0,0,0.3]
Determine the output sequence and verify that the crosscorrelation between
input and output is a good estimate of the impulse response of the system.

Reference: impulse_response_with_xcorr.m
2. Digital Communications Fundamentals and the
Additive White Gaussian Noise (AWGN) Channel

1. General Structure of a Digital Communication System


2. Channel Losses and Noise
3. Complex Baseband Representation
4. Bit Error Probabilities
5. Simulink Implementation

References:

J. Proakis, M. Salehi, “Digital Communications,” Prentice


Hall, 2007
1. General Structure of a Digital Communications System

1.1 General Overview


1.2 Goals
1.3 Parameters of Interest
1.1 General Overview

source of destination
information Carrier Carrier
frequency frequency
..01010010…
..01010110…
Errors!
I I
Digital Digital
Mod
Q TX channel RX Q decision
Dem
bits symbols pulses pulses symbols bits

Q noise, Q

disturbances,
other users I
I

Continuous
Discrete Time Time Discrete Time
1.2 Goals

• Bit Error Rate within acceptable values;


• Stay within the available resources:

Channel
Bandwidth
Noise
Interference
Transmitted Receiver
Variability
Power Complexity

TX channel RX
..01010110… ..01010010…

Errors!
1.3 Parameters
symbols Joules
FS = ES =
sec symbol

PT = ES FS Watts
bits
bits Nb = symbols
symbol
pulses
xI [n] xI (t )
DAC
a[n] Digital
Modulator xQ [n] xQ (t ) RF
DAC
PR channel
A=
PT
bits symbols PW = Watts
y I [n] y I (t ) w(t )
Digital ADC
aˆ[n]
Demodulator yQ [n] yQ (t ) RF
ADC

Bit Error pulses


P
SNR = R
Rate PW PR = A × PT Watts
Bits to Symbols:
the Constellation Mapping in 802.16 (Gray Code)

Q (Im)
BPSK I (Re)
−1 +1
[b0 ]
b0 → 1 0
N b = 1 bit/symbol

Q
b1 → 0
4-QAM I
−1 +1
(QPSK) 1
[b0 , b1 ]
b0 → 1 0
N b = 2 bits/symbol
Q
01

16-QAM 00
b1 , b0 →
[b0 , b1 , b2 , b3 ] I
10
N b = 4 bits/symbol
11

b3 , b2 → 11 10 00 01

Notice : only one bit difference between close neighbors


Symbols to Pulses:
Digital to Analog (DAC) and Analog to Digital (ADC) Conversion
x[n]g (t − nTS )
symbol pulse
x(t )
x[n]
DAC gT (t ) nTS t

n
t
symbol pulse
y (t )
y[n]
ADC g R (t ) t

n +∞

∑ x[n]g (t − nT )
n = −∞
S

nTS t
Bandwidth, Symbol Rate and Transmitted Power

g (t ) FS = 1 / TS Symbol Rate
G (F )

TS t (sec) F (Hz )
Symbol B
interval Bandwidth

+∞ +∞

Energy per symbol ES = ∫ | g (t ) |2 dt = ∫ | G ( F ) |2 dF


−∞ −∞

Transmitted Power ES
PT = = ES × FS
TS
Typical: Raised Cosine

g (t ) G (F )
1.5
1

0.8

0.6
1
a=0.6
0.4 a=0.3
a=0.0
a=0.0
0.2 a=0.3
a=0.6
0.5
0

-0.2

-0.4 0
-4 -3 -2 -1 0 1 2 3 4 -1.5 -1 -0.5 0 0.5 1 1.5
t f
F
B
0≤ −1 = α ≤ 1 FS
FS
• smaller bandwidth • larger bandwidth

• more ISI • less ISI


2. Channel Losses and Noise

2.1 Transmitted Pulses to Received Pulses


2.2 Energy per Symbol, Power Spectral Density
2.3 Signal to Noise Ratio and “Eb/N0”
2.1 Transmitted Pulses to Received Pulses:

• attenuation: free space, obstacles, foliage …


• noise: thermal, interferences from other systems/users
• multipath: reflections from buildings, structures, hills …
• doppler shift: motion of transmitter, receivers, reflectors …

Transmit Receive
Channel Losses and Noise

Transmitted Power
PT = ES FS Watts Channel Attenuation

PR
channel A=
PT

Received Power

PR = A × PT Watts
w(t )
Noise
N0
Noise Power 2
PW = N 0 × B Watts
Spectral Density
B B F
2.2 Energy per Symbol and Power Spectral Density

Energy per symbol Symbol Rate

Signal Power ES × FS
SNR = =
Noise Power N 0 × B
Bandwidth

Noise Power Spectral Density


Thermal Noise

• Present in all electronic systems, it is dependent on temperature;


• It is “white”, in the sense that it is equally spread in frequency.
Power Spectral Density

N0 / 2

F (Hz )

N 0 = kT = (1.383 ×10 −23 J / K ) × T

Boltzman’s constant temperature in kelvin


Ambient temperature =290K
In dBm: N 0 dB = −174dBm / Hz
Example:
• Temperature = 290K (ambient)
• Bandwidth = 2.0MHz

Noise Power =

(N 0 B )dB = −174dBm / Hz + 10 log10 2 ×106 = −111dBm


2.3 Signal to Noise Ratio and “Eb/N0”

⎛ FS ⎞⎛ ES ⎞ ⎛ FS ⎞⎛ Eb ⎞
SNR = ⎜ ⎜
⎟⎜ ⎟
⎟ = Nb ⎜ ⎟⎜⎜ ⎟⎟
⎝ B ⎠⎝ N 0 ⎠ ⎝ B ⎠⎝ N 0 ⎠

FS = symbol rate (1/sec)


B = bandwidth ( Hz = 1 / sec) ≥ FS
N 0 = noise power spectral density
ES = Energy per symbol (Joules)
Eb = Energy per bit (Joules)
N b = bits per symbol
3. Complex Baseband Representation

3.1 Complex Signals


3.2 Baseband Channel Representation
3.1 Complex Signals

Symbols:
Transmitted A cos(2πFc t )
Q xI [n] xI (t )
DAC gT (t )

I xQ (t ) yT (t )
DAC gT (t )
xQ [n]
− A sin (2πFc t )
channel
Received A cos(2πFc t )
Q
y I [n] y I (t ) y R (t )
g R (t )
I Ts
yQ (t )
g R (t )
yQ [n]
− A sin (2πFc t )
Recall: Complex Numbers and Complex Exponentials

amplitude phase (angle) j = −1


Ae = A cos(α ) + j A sin(α )
1424 3 1 424 3
Real Part Imaginary Part

Im A
α
Re
As a consequence:
j 2πFC t
Ae = A cos(2πFC t ) + jA sin( 2πFC t )
It is easier to define one complex signal which combines In Phase and
Quadrature components:

x[n] = xI [n] + jxQ [n] Ae j 2πFct


Im
DAC gT (t ) Re{.}
yT (t )
Re

channel

y[n] = y I [n] + jyQ [n] y R (t )


Im
g R (t )

Re Ts Ae − j 2πFct
If the carrier frequency is larger than the bandwidth of the filters, then it
can be simplified as
Baseband Channel

x[n] = xI [n] + jxQ [n] A j 2πFct


e
2
DAC gT (t )
Re

channel
y[n] = y I [n] + jyQ [n]
Im
g R (t )
A − j 2πFct
Ts e
Re 2
3.2 Baseband Channel Representation

A j 2πFct
e
x(t ) 2
x(t )
gT (t ) gT (t )
A
C (F ) C+ ( F − FC )
2
Complex
Real channel
⇐ same ⇒ Baseband
− FC FC F F
channel
y (t ) y (t )
g R (t ) g R (t )
A − j 2πFct
e
2
Advantage: all signals
at lower frequencies,
therefore much easier to
simulate and analyze.
Digital Transmitter/Receiver with Baseband Channel:

Binary Complex

source of x[n]
Encoder Digital
information Modulator

Baseband
Channel
complex

Received Digital y[n]


Decoder
Data Demodulator

Binary Complex
4. Bit Error Probabilities for M-QAM Modulation

4.1 “Eb/N0” and SNR for MQAM Signals


4.2 Probability of Symbol Error in Additive White Gaussian
Noise (AWGN) Channel;
4.1 “Eb/N0” and SNR for MQAM Signals

M-QAM:

….01001011001010… M-QAM

# of bits per symbol Energy per bit

ES / TS ⎛ log 2 ( M ) Eb ⎞⎛ FS ⎞
SNR = = ⎜⎜ ⎟⎟⎜ ⎟
N0 B ⎝ N0 ⎠⎝ B ⎠
Therefore, if FS ≅ B :

Eb ⎛ 1 ⎞
= ⎜⎜ ⎟⎟ SNR
N 0 ⎝ log 2 ( M ) ⎠

Significance: the error probabilities for MQAM are functions of Eb / N 0


Example.

Given:
Transmitted Power: 100mW
Bandwidth: 1.75MHz
Channel Attenuation: -120dB
Modulation: QPSK (2 bits/symbol)

Assume: Thermal Noise only at ambient temperature

Compute: Eb / N 0
Solution:

1. Energy per Symbol at the transmitter


ES = 100mW / 1.75MHz = 57.14 ×10 −6 mW / Hz = −42.4dBm / Hz

2. Energy per Symbols at the receiver

ES = −42.4 − 120 = −162.4dBm / Hz

3. SNR at the receiver

⎛ ES ⎞
SNR = ⎜⎜ ⎟⎟ = −162.4 − (−174) = 11.6dB
⎝ N 0 ⎠ dB
4. Finally (Eb / N 0 )dB = 11.6 − 10 log10 2 = 8.6dB
4.2 Probability of Symbol Error in AWGN

BPSK: ( )
PS = Q 2 NEb0

4-QAM: P ≈ 2Q ( 2 )
S
Eb
N0

⎛ ⎛ 3 log M ⎞⎛⎜ Eb ⎞⎟ ⎞⎟
PS ≈ 4Q⎜ ⎜ 2
⎟⎜
M-QAM: ⎜ ⎝ M −1
⎝ ⎠⎝ N 0 ⎟⎠ ⎟⎠

Probability of Bit Error with Gray Coding:


1
M-QAM: Pb ≈ PS
log 2 ( M )
+∞
1

−t
Q( x) =
2
dt
where e
2π x

⎛ x ⎞
= 12 erfc⎜ ⎟
⎝ 2⎠
Symbol Error Rates (Exact Values)
-1
Symbol Error Rate
BPSK 10

4QAM
16QAM -2
10
64QAM

-3
10
Prob. bit Error

-4
10

-5
10

-6
10
-5 0 5 10 15 20
Eb/No dB
Example.

Same as previous example

Compute: a. Symbol Error Rate, b. Bit Error Rate

Solution:

1. From the previous Example Eb / N 0 = 8.6dB


2. Symbol Error Rate: 10 −4 errors per symbol (see graphs)
3. Bit Error Rate: 10 −4 / 2 = 5 ×10 −5 errors per bit
5. Simulink Implementation

5.1 Fundamentals of Simulink


5.2 Digital Communications in AWGN: Simulink Implementation;
5.3 Example
5.1 Fundamentals of Simulink

Simulink has three classes of blocksets:


• sources (outputs only)
• processes (inputs/outputs)
• sinks (inputs only)

source process
sink
• generate data • display results
• read data • plots, scopes…
• import files … • send data to devices
5.2 Digital Communications in AWGN: Simulink Implementation
Generate Complex Data

Compute Bit
Error Rate
BaseBand
Channel

Display Received Data


Simulink Model: AWGN_no_coding.mdl
5.3 Example
Let’s simulate a Digital Communications System with the
following parameters:

M=4; % MQAM modulation


Fs=10^6; % symbol rate (1/sec)
SNRdB=20; % SNR in dB’s
PT=5; % Transmitted Power in Watts
A=1/100; % Channel Attenuation
PR=A*PT; % Received Power
Edit > Model Properties

Enter the parameters


Generate Complex Data
Parameters:
• M-QAM
• Fs symbols/sec

Modulation
Communications Sources >Digital Baseband Mod
>Random Data Sources >>AM
>>>Rectangular QAM
>>Bernoulli Binary
Baseband Channel

1 ⎛ PT ⎞
y[n] = ⎜
A × ⎜ PT x[n] + w[n] ⎟⎟
PR ⎝ SNR ⎠
Transmitter Gain

Channels
> AWGN Channel
Analysis of Data by Computer Simulation

transmitted
error rate
errors
bits

received

Blocks:
• Comms Sinks > Error Rates Calculation
•Simulink > Sinks > Display
Lab2: Digital Communications Fundamentals

Given a digital Communication System defined by the following parameters:


M=4; % MQAM modulation
Fs=10^6; % symbol rate (1/sec)
PT=2; % Transmitted Power in Watts
A=1/50; % Channel Attenuation
PR=A*PT; % Received Power

1. Simulate the system for the following values of the Signal to Noise Ratio:
SNR=5,10,20dB
2. For each case determine the probability of bit error experimentally
3. Compare with the theoretical values

References: AWGN_no_coding.mdl
bit_error.m
Probability of Symbol Error
-1
Symbol Error Rate
BPSK 10

4QAM
16QAM -2
10
64QAM

-3
10
Prob. bit Error

-4
10

-5
10

-6
10
-5 0 5 10 15 20
Eb/No dB

Probability of Bit Error=


Probability of Symbol Error / log2(M)
3. Channel Models

1. Introduction and Channel Losses


2. Models of Fading Channels
3. Channel Parameterization
4. Estimation of Channel Parameters from Data
1. Introduction and Channel Losses

1.1. Large Scale fading: Free Space Losses


1.2. Medium Scale Fading: Shadowing
1.3. Small Scale Fading: Multipath

References:

A. Goldsmith, Wireless Communications, Cambridge Univ.


Press, 2005 – Chapter 2.
Signal Losses due to three Effects:

2. Medium Scale
Fading: due to
shadowing and
3. Small Scale
obstacles
Fading: due to
multipath

1. Large Scale
Fading: due to
distance and
multipath
Wireless Channel
Frequencies of Interest: in the UHF (.3GHz – 3GHz) and SHF (3GHz – 30 GHz)
bands;
Several Effects:
• Path Loss due to dissipation of energy: it depends on distance only
• Shadowing due to obstacles such as buildings, trees, walls. Is caused by
absorption, reflection, scattering …
• Self-Interference due to Multipath.

Prec
10 log10
Ptransm

log10 distance
Line of Sight and Frequencies

Frequencies: Line of Sight (LOS) only


30GHz

SHF

6GHz
Non Line of Sight (NOLOS)
3GHz

UHF

300MHz
1.1. Large Scale Propagation: Free Space
Path Loss due to Free Space Propagation:

For isotropic antennas:


Transmit
⎛ λ ⎞
2

Prec = ⎜
antenna
Receive ⎟ Ptransm
d antenna ⎝ 4π d ⎠
c
wavelength λ =
F

Path Loss in dB:

⎛ Ptransm ⎞
L = 10log10 ⎜ ⎟ = 20log10 ( F ( MHz )) + 20log10 (d (km )) + 32.45
⎝ Prec ⎠
Free Space Attenuation

20dB / dec
Lp

ΔL p = 20dB

d0 10d 0 log10 ( d )
distance
L p1 − L p 2 = 20dB ⇒ Prec1 = Prec 2 / 100

Valid for:
• Satellite Communicationss
• Point to Point LOS Microwave
• Reference for Path Loss Models
Multipath Models: Two Ray Reflection

Typical of open environments such as rural roads

• Small to medium distances constructive/distructive interference


l 1 + e − j Δφ

hT
xT xR hR

xT + xR − l
Δφ = 2π
• Large distances λ

l d

hT xT
xR hR

monotonic
Two Ray Model Power Received

-20
f=0.3GHz -40

f=3GHz -60

f=30GHz -80
−40dB / dec
Prec/Ptran s in dB

-100

Prec -120
independent of
frequency
Ptrans -140

-160
Prec hT2 hR2
-180
≈ 4
-200 Ptrans d
-220
0 1 2 3 4 5
10 10 10 10 10 10
d in meters

Assume: reflecting surface a pure dielectric


Compare the two:

Free Space:
L p = −20 log10 (πλ / 4) + 20 log10 (d )

40dB
Lp
Two Ray Approximation: 20dB

L p = −20 log10 (hT hR ) + 40 log10 (d )


10−2 10−1 100 10
log10 ( d )

hT
hR
2. Medium Scale Fading: Losses due to Buildings, Trees,
Hills, Walls …

The Power Loss in dB is random:

L p = E {L p }+ χ
expected value

random, zero mean


approximately gaussian with
σ ≈ 6 − 12 dB
Average Loss

Free space loss at reference


distance

⎛d ⎞
E{L p } = 10γ log10 ⎜⎜ ⎟⎟ + L0 dB
⎝ d0 ⎠
Path loss
exponent Reference distance
• indoor 1-10m
• outdoor 10-100m
Values for Exponent γ :

Free Space 2
Urban 2.7-3.5
Indoors (LOS) 1.6-1.8
Indoors(NLOS) 4-6
Empirical Models for Propagation Losses to Environment

• Okumura: urban macrocells 1-100km, frequencies 0.15-1.5GHz,


BS antenna 30-100m high;
• Hata: similar to Okumura, but simplified
• COST 231: Hata model extended by European study to 2GHz
Typical: Hata Models (1980)
Lp
Frequencies 0.15-1.5GHz

Propagation Loss Lp = α + β log10 ( d )


log10 ( d )
β = 44.9 − 6.55log10 (h )

urban α = α 0 = 69.55 + 26.16log10 ( f ) − 13.82 log10 (hT ) − a (hR )


suburban α = α 0 − 2 log10 ( f / 28) − 5.4
2

rural α = α 0 − 4.78log102 ( f ) + 18.33log10 ( f ) − 40.94


where
f = frequency in MHz
hT, hR = transmitter antenna elevation over average terrain (in
meters)

a ( hR ) corrective factor for receiver antenna


Receiver antenna correcting factor

Small to medium city

a ( hR ) = (1.1 log10 ( f ) − 0.7 ) hR − (1.56log10 ( f ) − 0.8) dB


Large city

a ( hR ) = 3.2 ( log10 (11.75hR ) ) − 4.97 dB


2
COST 231 Model: Urban Model

Propagation Loss
Lp = α + β log10 (d ) + CM
β = 44.9 − 6.55log10 (h )

α = α 0 = 46.3 + 33.9 log10 ( f ) − 13.82 log10 (hT ) − a (hR )

where
⎧0 dB medium sized city and suburbs
CM = ⎨
⎩3 dB metropolitan area

Restrictions:
1.5GHz < f < 2GHz
30m < hT < 200m
1m < hR < 10m
1km < d < 20km
Example:

PT

PR = ?

d = 500m
Base Subscriber
Station
⎛d ⎞
Channel: L p = 10γ log10 ⎜
⎜ d ⎟⎟ + L0 + χ
Given:

d = 1m
⎝ 0⎠
0

L0 = 45dB
γ =3
σ = 6dB
Transmitted Power:

1.0 Watt = 30dBm

Bandwidth: 10MHz
Noise: N 0 = −174dBm / Hz thermal

Then:

Received Power: PR = 30 − L p = 30 − (10 × 3 × log10 500 + 45) + χ = −96dBm + χ

Noise at the Receiver: PNoise = −174 + 10 log10 107 = −104dBm

SNR at the receiver: SNR = −96 + χ − (−104) = 8 + χ dB


random
Probability that the SNR is sufficiently large
2
+∞ − 1 ⎛ x ⎞
⎜ ⎟ ⎛ a ⎞
P (χ > a ) =
1 1
∫e
2⎝ σ ⎠
dx = erfc⎜ ⎟
2π σ a
2 ⎝ 2σ ⎠
+∞
2
∫e
−t 2
Where we define erfc( x) = dt
π x
⎛ a −8 ⎞
P(SNR > a ) = P(8 + χ > a ) = erfc⎜
1 ⎟
2 ⎜ 2 6⎟
⎝ ⎠
(1/2)erfc(x)
1

0.9

BPSK 75% of 0.75


0.8

the time 0.7

0.6

0.5

0.4

0.3

0.2

16QAM 10% of 0.10 0.1

the time 0
-1 -0.5 0 0.5 1 1.5 2
x

Required for low BER: BPSK: a=3dB 16QAM: a=14.7dB


3. Small Scale Fading due to Multipath.
a. Spreading in Time: different paths have different lengths;

Receive
Transmit
x (t ) = δ (t − t0 ) y (t ) = L + hkδ (t − t0 − τ k ) + ...

time t0 τ 1 τ 2 τ3
t0

Example for 100m path difference we have a time delay


100 102
τ= = = 3 μ sec
1
c 3 × 108
Typical values channel time spread:

x (t ) = δ (t − t0 )

t0 τ 1 τ 2 τ MAX
t0 channel

Indoor 10 − 50 n sec
Suburbs 2 × 10 −1 − 2 μ sec
Urban 1 − 3 μ sec
Hilly 3-10 μ sec
b. Spreading in Frequency: motion causes frequency shift (Doppler)

x ( t ) = X T e j 2π f c t Receive
Transmit
j 2π ( f c +Δf )t
y (t ) = YR e
time

v
for each path time

Doppler Shift

fc f c + Δf
Frequency (Hz)
Put everything together

x(t ) Transmit Receive y (t )

time

time

Each path has … … attenuation… …shift in time …

⎧ j 2π ( Fc + ΔFk )( t −τ k ) ⎫
y (t ) = Re ⎨ ∑ ak x (t − τ k )e ⎬
⎩ k ⎭
paths …shift in frequency …

(this causes small scale time variations)


2. Models of Fading Channels

2.1. Statistical Models of Fading Channels


2.2. Non Line of Sight (Rayleigh) and Line of Sight (Rice) Channels
2.3. Simulink Example
2.1 Statistical Models of Fading Channels

each reflector has several


paths all with different time
Several Reflectors: delays and doppler shifts

x (t )
Transmit
Receive

y ( t ) = ∑ yl (t )
v l
For each path with NO Line Of Sight (NOLOS):

yl ( t )
r average time delay τl
v
• each time delay τ l + εk

v
• each doppler shift ΔFk = cos(θ k )
λ

⎧⎛ ⎞⎫
yl (t ) = Re ⎨⎜ ∑ ak e j 2π ( Fc + ΔFk )( t −τ l −ε k )
x (t − τ l − ε k ) ⎟ ⎬
⎩⎝ k ⎠⎭
Some mathematical manipulation …

⎧⎛ ⎞ j 2π Fct ⎫
y (t ) = Re ⎨⎜ ∑ ak e j 2πΔFk t − j 2π ( Fc + ΔFk )τ k
e x (t − τ k ) ⎟ e ⎬
⎩⎝ k ⎠ ⎭
= Re {r (t )e j 2π Fct } = rI (t ) cos(2π Fct ) − rQ (t )sin(2π Fct )

In Phase and Quadrature Components

r (t ) = rI (t ) + jrQ (t ) ≅ ∑ ak e j 2πΔFk t − j 2π ( Fc +ΔFk )(τ l +ε k )


e x (t − τ l )
k

… leading to this: Assume x (t ) ≅ x (t − ε k )

r (t ) = cl (t ) x (t − τ l )

with cl (t ) = ∑ ak e j 2πΔFk t − j 2π ( Fc +ΔFk )(τ l +ε k )


e random, time varying
k
Statistical Model for the time varying coefficients
v v
M j 2π cos θ k t − j 2π ( Fc + cos θ k )(τ l +ε k )
cl (t ) = ∑ ak e λ
e λ

k =1
random random
By the CLT cl (t ) is gaussian with:

E{cl (t )} = 0 since θk random uniformly distributed in [0, 2π ]


v
E {cl (t )c (t + Δt )} = ∑ E{| ak | }e
M − j 2π cos θ k Δt
* 2 λ
l
k =1
Pl
Assume E{| ak | } =
2

M
Then
v
⎧ − j 2π λv cosθ Δt ⎫
E {cl (t )cl (t + Δt )} = Pl
M − j 2π cos θ k Δt
1
*
∑e λ
= Pl E ⎨ e ⎬
M k =1 ⎩ ⎭
2π v
1 − j 2π cos θ Δt
= Pl
2π ∫e
0
λ
dθ = Pl J 0 (2π FD Δt )
Each coefficient cl (t ) is complex, gaussian, WSS with autocorrelation

E {cl (t )cl* (t + Δt )} = Pl J 0 (2π FD Δt )

⎧ 2 Pl 1
And PSD
⎪π F if | F |< FD
Sl ( F ) = ⎨ D 1 − ( F / FD ) 2
⎪0
⎩ otherwise

with FD maximum Doppler frequency.

S l (F ) This is called Jakes


spectrum.

FD F
Bottom Line. This:
x(t ) y (t )

time
time
v
τ1
τl
time τN

… can be modeled as:


τ1
L c1 (t )


y (t )
x(t ) τl
L cl (t )
time
time
τN
cN (t )
delays
For each path

cl (t ) = Pl g (t )
• unit power
• time invariant
• time varying (from autocorrelation)
• from power distribution
Parameters for a Multipath Channel (No Line of Sight):

Time delays: [τ 1 τ2 L τL] sec

Power Attenuations: [P1 P2 L PL ] dB

Doppler Shift: FD Hz
Non Line of Sight (NOLOS) and Line of Sight (LOS) Fading Channels
1. Rayleigh (No Line of Sight). E{cl (t )} = 0
Specified by:

Time delays T = [τ 1 ,τ 2 ,...,τ N ]

Power distribution P = [ P1 , P2 ,..., PN ]


Maximum Doppler FD

2. Ricean (Line of Sight) E{cl (t )} ≠ 0


Same as Rayleigh, plus Ricean Factor K
K
Power through LOS PLOS = PTotal
1+ K

1
Power through NOLOS PNOLOS = PTotal
1+ K
Simulink Example

M-QAM Modulation

Rayleigh Fading Channel


Bernoulli Rectangular -K-
Binary QAM
Parameters
Transmitter Channel -K-
Bernoulli Binary Rectangular QAM Attenuation
Gain
Generator Modulator
Baseband

Multipath Rayleigh Rayleigh


Fading Channel Fading

-K-
B-FFT
Receiver
Spectrum Gain
Scope

Bit Rate
Set Numerical Values:
velocity
carrier freq.
v
Recall the Doppler Frequency: FD = FC
c
3 × 108 m / sec

Easy to show that: (FD )Hz ≈ (v )km / h (FC )GHz

modulation

power

channel
Typical Received Power Spectrum

Bernoulli Rectangular -K-


Binary QAM
Transmitter Channel -K-
Bernoulli Binary Rectangular QAM Attenuation
Gain
Generator Modulator
Baseband

Multipath Rayleigh Rayleigh


Fading Channel Fading

-K-
B-FFT
Receiver
Spectrum Gain
Scope

Doppler freq: FD = 70 Hz

Symbol rate: FS = 10 MHz

Bit rate: Fb = 20MHz


Bits/Symbol: 2 (QPSK)

− FS / 2 FS / 2
Similar Example, different parameters

Bernoulli Rectangular -K-


Binary QAM
Transmitter Channel -K-
Bernoulli Binary Rectangular QAM Attenuation
Gain
Generator Modulator
Baseband

Multipath Rayleigh Rayleigh


Fading Channel Fading

-K-
B-FFT
Receiver
Spectrum Gain
Scope

Doppler freq: FD = 2 Hz

Symbol rate: FS = 10 MHz

Bit rate: Fb = 20MHz


Bits/Symbol: 2 (QPSK)

− FS / 2 FS / 2
Channel Parameterization

1. Time Spread and Frequency Coherence Bandwidth


2. Flat Fading vs Frequency Selective Fading
3. Doppler Frequency Spread and Time Coherence
4. Slow Fading vs Fast Fading
1. Time Spread and Frequency Coherence Bandwidth

Recall that the Channel Spreads in Time (due to Multipath):

Received Power
x (t ) = δ (t − t0 ) 0

−10

t0 channel −20
τ MAX time
τ RMS
FT

Channel “Flat” up to the


Coherence Bandwidth

1 frequency
Coherence Bandwidth Bc =
5 × τ RMS
2. Flat Fading vs Frequency Selective Fading

1
• Based on Channel Time Spread: Bc =
5 × τ RMS

F F F
Frequency
Signal coherence
Bandwidth

Flat Fading Just attenuation, no distortion

Signal Bandwidth
<
> Frequency Coherence

Frequency Selective
Distortion!!!
Fading
Example: Flat Fading

Channel : Delays T=[0 10e-6 15e-6] sec


Power P=[0, -3, -8] dB
Symbol Rate Fs=10kHz
Doppler Fd=0.1Hz
Modulation QPSK

Very low Inter Symbol


Interference (ISI)

Spectrum: fairly uniform


Example: Frequency Selective Fading

Channel : Delays T=[0 10e-6 15e-6] sec


Power P=[0, -3, -8] dB
Symbol Rate Fs=1MHz
Doppler Fd=0.1Hz
Modulation QPSK

Very high ISI

Spectrum with deep


variations
3. Doppler Frequency Spread and Time Coherence
M
y (t ) = ∑ cl (t ) x(t − τ l )
l =1

c l (t ) ≅ c l (t + Δ t ) if | Δ t |≤ TC < 1 / F D


⎪⎪
⎬ same
x (t ) y (t ) ⎪ response

⎪⎭
different
response

TC
9
Coherence Time: TC ≈
16π FD Max Doppler
4. Slow Fading vs Fast Fading

9
TC ≈
• Based on Doppler Spread Delay and Time Coherence:
16π FD

t t
Time
Symbol coherence
period

Slow Fading Channel almost time invariant

Symbol period
<
> Time Coherence

Fast Fading Channel quickly changing


Summary of Time/Frequency spread of the channel

Frequency Spread S (t , F )
Time
F
Coherence
FD
9
TC ≈ t
16π FD τ mean Time Spread

τ RMS

Frequency
Coherence

1
Bc =
5 × τ RMS
Channel Estimation from Data

1. Recall Impulse Response Identification from


Correlation
2. Estimation of Time Spread and Doppler Shift
3. Simulink/Matlab Example
4. Stanford University Interim (SUI) Channel Models
Estimation of Channel Characteristics from Input - Output data.
1. For Linear Time Invariant (LTI) systems:

+∞
y[n]
x[n]
h[n]
y[n] = h[n] * x[n] = ∑ h[k ]x[n − k ]
m = −∞

Excite the system with white noise and unit variance

{
Rxx [m] = E x[n]x*[n − m] = δ [m] }
m
and compute the crosscorrelation between input and output

{
R yx [m] = E y[n]x*[n − m] }
∑ h[k ]E{x[n − k ]x [n − m]} = ∑ h[k ]δ [m − k ] = h[m]
+∞ +∞
= *

k = −∞ k = −∞
In matlab:

x[n] y[n]
?

1. Get data (same length for simplicity):


y

2. Compute crosscorrelation between input and output:

h=xcorr(x,y);

If x[n] is white noise, h[n] is the impulse response.


2. For a Linear Time Varying Channel:

x[n] y[n] +∞
h[m, n] y[n] = ∑ h[k , n]x[n − k ]
k = −∞
Known:
1. Sampling frequency Fs
2. Upper bound on max Doppler Frequency FD max
Fs
1. Collect Data and partition in blocks of length N << :
FD max
n=0 n=N n = 2N
L
n = lN
L n = NB × N

x
y
L L
N × Ts << TD min

xN=reshape(x,N,length(x)/N);
yN=reshape(x,N,length(y)/N);
xN,yN= [ L
] N

NB

2. Estimate impulse response in each block l


m
hN=xcorr(xN,yN);
hN=
[ L
]
NB
h[m, n] n =lN
3. Compute Power Spectrum on each row, to determine time variability of the
channel (If the channel is Time Invariant all columns of hN are the same):

l
m

hN= [ ] L

h[m, n] n =lN
k (freq.)
m (time)
S=fft(hN’);
S=S’.*conj(S’);
⇒ S=
[ ]S [m, k ] N

NB
4. Take the sum over rows for Doppler Spread and sum over columns for
Time Spread (fftshift each vector to have “zero” term (sec or Hz) in the
middle
Sf
St

( Fs / N )
f =k
t = m / Fs NB

Time Resolution: Δt = 1 / FS
FS 1
Frequency Resolution: ΔF = = Hz
N × N B total data length(sec)

Therefore if we want to a resolution in the doppler spread of (say) 1Hz,


we need to collect at least 1 sec of data.
Example: % channel
Fs=10^6; % sampling freq. In Hz
P=[0,-2,-3]; % attenuations in dB
T=[0, 10, 15]*10^(-6); % time delays in sec
fd=70; %doppler shift in Hz

Rayleigh
Bernoulli Rectangular y
Fading
Binary QAM
To Workspace1
Bernoulli Binary Rectangular QAM Multipath Rayleigh
Generator Modulator Fading Channel
Baseband

To Workspace

test_scattering.mdl
Channel Freq. Response:
Tmax=10^(-4) sec; [St, Sf,t,f]=scattering(x,y,Fs,Tmax, FDmax);
FDmax=150Hz;
-3
x 10 Time Spread
9

St(t) 8

6
Time Spread
5

-3
1 x 10 Frequency Spread
1.2

0
-1.5 -1 -0.5 0 0.5 1
Sf(f)
time (sec) -4 1
x 10

15μ sec
0.8

Frequency Spread
0.6

0.4

0.2

0
-1000 -800 -600 -400 -200 0 200 400 600 800 1000
frequency (Hz)

− 70 Hz + 70 Hz
Stanford University Interim (SUI) Channel Models

Extension of Work done at AT&T Wireless and Erceg etal.

Three terrain types:


• Category A: Hilly/Moderate to Heavy Tree density;
• Category B: Hilly/ Light Tree density or Flat/Moderate to Heavy Tree density
• Category C: Flat/Light Tree density

Six different Scenarios (SUI-1 – SUI-6).


Found in

IEEE 802.16.3c-01/29r4, “Channel Models for Wireless Applications,”


http://wirelessman.org/tg3/contrib/802163c-01_29r4.pdf
V. Erceg etal, “An Empirical Based Path Loss Model for Wireless
Channels in Suburban Environments,” IEEE Selected Areas in
Communications, Vol 17, no 7, July 1999
Lab 3

In this project you want to identify the time and frequency spreads of a channel. Refer to
the simulink model Lab3.mdl for the setup.
You know that the mobile channel you are trying to model has a maximum doppler
frequency not exceeding 50Hz and a maximum time spread smaller than 20
microseconds. In order to have a clear picture of the channel spread in time and
frequency we want a time resolution of 1 microsecond and a frequency resolution of
1Hz;
1. Based on the time and frequency resolutions, determine a suitable symbol rate of the
transmitted sequence and an adequate data length in time;
2. With the above parameters, run the model Lab3.mdl to collect the transmitted and
received data. Use the program scattering.m to estimate the time and frequency
spreads of the channel. Compare the result with the parameters of the channel in the
simulink block;
3. Just to compare, try different values of symbol rate and data length and see how the
resolutions in time and frequency are affected.
4. Multi Carrier Modulation and OFDM

1. Single Carrier and Multi Carrier Modulation


2. Orthogonal Frequency Division Multiplexing (OFDM)
3. Example: basics of IEEE 802.11a (WiFi)
Single Carrier and Multi Carrier Modulation

1. Transmission of Data through Frequency Selective and Time


Varying Channels
2. Single Carrier Modulation in Flat Fading Channels
3. Single Carrier Modulation in Frequency Selective Channels
4. Simulink Example of Single Carrier Modulation
5. The Multi Carrier Approach
1. Transmission of Data Through Frequency Selective Time Varying
Channels

We have seen a wireless channel is characterized by time spread and


frequency spread.

Frequency Spread S (t , F )

F
FMAX
t Time Spread
t MAX
2. Single Carrier Modulation in Flat Fading Channels:
• if symbol duration >> time spread then there is almost no Inter Symbol
Interference (ISI).

channel
TS

1 0 time 1 0
phase still recognizable

Problem with this: Low Data Rate!!!


• this corresponds to Flat Fading

channel
Frequency Frequency
1 / TS
Flat Freq. Response

Frequency
3. Single Carrier Modulation in Frequency Selective Channels:
• if symbol duration ~ time spread then there is considerable Inter
Symbol Interference (ISI).
channel

time
? ?
1 0 phase not recognizable
One Solution: we need equalization
channel equalizer

time time

1 0 1 0

Channel and
Equalizer
Problems with equalization:
• it might require training data (thus loss of bandwidth)
• if blind, it can be expensive in terms computational effort
• always a problem when the channel is time varying
4. The Multi Carrier Approach:
• let symbol duration >> time spread so there is almost no Inter Symbol
Interference (ISI);
• send a block of data using a number of carriers (Multi Carrier)
“symbol” “symbol”
1 0

time channel

0 1

time

1 0

time
Compare Single Carrier and Multi Carrier Modulation

SC
Frequency
Frequency
L 1 0 1 1 L
1 Flat Fading Channel:
One symbol Easy Demod
channel
MC
L 0 1 0 1 1 1 L

Frequency Frequency
subcarriers

0 1 0 1 1 1
Each subcarrier sees
Block of a Flat Fading
symbols Channel: Easy
Demod
Orthogonal Frequency Division Multiplexing (OFDM)

1. Basic Structure of Multi Carrier Modulation


2. “Orthogonal” Subcarriers and OFDM
3. Generating the OFDM Symbol using the IFFT
In MC modulation each “MC symbol” is defined on a time interval and it contains a
block of data
OFDM Symbol

L data data data data L


time
TSymbol

data
t
Tg Tb
guard interval data interval data

⎧ N2F ⎫ ⎧ NF

⎪ j 2π ( FC + kΔF )t ⎪ ⎪ j 2πFC t 2
j 2πkΔFt ⎪
s (t ) = Re ⎨ A ∑ ck e ⎬ = Re ⎨e A ∑ ck e ⎬
⎪ k =− N F ⎪ ⎪ N
k =− F ⎪
⎩ 2 ⎭ ⎩ 2 ⎭
0 ≤ t ≤ TSymbol
•Each data point ck is modulated by a subcarrier

NF NF
Fk = FC + kΔF , k = − ,..., , k ≠0
2 2
•Subcarrier k = 0 is not used since its magnitude and phase would be influenced
by the carrier FC

| S (F ) | Fk = FC + kΔF

F
− Fc − BW
2
− Fc − Fc + BW
2 Fc − BW
2 Fc Fc + BW
2

carrier

BW = N F × ΔF
We leave a “guard time”
between blocks to allow TX RX
multipath
Guard Time
Tg
Data Block the “guard time” is long
Data Block
Tb enough, so the multipath in
one block does not affect the
L L
next block
TSymbol
data+guard
}
RX L L
TX
NO Inter Symbol Interference!
Modulated Signal: {
s (t ) = Re e j 2πFct x(t ) }
FC = carrier frequency

FT

− FC FC F F

Baseband Complex Signal: FT

k=
NF

∑ce
2
j 2πkΔF ( t −Tg )
x(t ) = A k
0 ≤ t ≤ TSymbol
k =−
NF
2
k ≠0
kΔF = subcarrier frequency offset
just a gain

ck = data
Limitations of OFDM

Overhead TSymbol
(no data)
data
t
Tguard Tb

•The Guard Time (or Cyclic Prefix) does not carry data and
therefore it represents a loss of power
Tb 1
Pdata = Psymbol = Psymbol
Tb + Tguard ⎛ Tguard ⎞
1 + ⎜⎜ ⎟⎟
⎝ Tb ⎠

•To minimize overhead Tguard << Tb

ie the longer the data frame the better!


However, as expected, the channel (not the sky!) is the limit.

Frequency Spread S (t , F )

F
FMAX < kHz
t Time Spread
t MAX ≈ μ sec

OFDM Symbol Duration: Tb >> t MAX to minimize CP overhead


FS
OFDM Freq. Spacing: ΔF = >> FMAX to ensure orthogonality
N

Are these two compatible?


FS 1 1
Since = = we have: t MAX << Tb << 1 / FMAX
N NTS Tb
10 −6 sec 10 −3 sec roughly!!!
2. “Orthogonal” Subcarriers and OFDM

t
guard interval Tg Tb data interval

1
ΔF Choose: ΔF =
Tb

FC F
Fk = FC + kΔF
Orthogonality:
t 0 +Tb t 0 +Tb
1 1 ⎧1 if k = l
∫e ∫e
j 2πFk t − j 2πFl t j 2π ( k − l ) ΔFt
e dt = dt = ⎨
Tb t0
Tb t0 ⎩0 if k ≠ l
Since the channel is Linear and Time Invariant (at least for the duration
of the frame), the exponentials e j 2πFk t are still orthogonal at the
receiver in steady state, ie after the transient has died.
Transmitted Received
subcarrier channel subcarrier
j 2πFk t
e
h(t )
t 0 Tg Tg + Tb
0
Tg + Tb
transient steady state
response response

H ( Fk )e j 2πFk t
Tg ≤ t ≤ Tg + Tb

still orthogonal at the receiver!!!


Each OFDM symbol is generated in discrete time.
Let
• FS be the sampling frequency;
• N > N F be the number of data samples in each symbol;
• ΔF = 1 / (N TS ) = FS / N the subcarriers spacing
• A=1/N
Then:

NF NF
2 2
1 1
∑c e ∑c e
j 2πk ΔFF ( n − L ) jk 2Nπ ( n − L )
x(nTS ) = k
s
= k n = 0,.., L + N − 1
N k =−
NF N k =−
NF
2 2

With Tg = L × TS the guard time.


4. Generating the OFDM symbol using the IFFT
OFDM Symbol: discrete time
# samples
# subcarriers
guard L data N > NF

TIME:
0 Tg Tb t
Sampling Interval TS = 1 / FS

Sampling Frequency FS > Bandwidth

Freq spacing ΔF = FS / N

FREQUENCY:
− FS / 2 0 FS / 2 F
N F N F FS
− F S
2 N 2 N
This can be written as

NF
2
1
∑c e
jk 2Nπ n
x[n + L] = k
N k =−
NF
2
NF
2 −1
1 1
∑c e ∑c e
jk 2Nπ n j ( N + k ) 2Nπ n
= k + k
N k =1 N k =−
NF
2
N −1
=IFFT {X [k ]}
1
∑ X [k ]e
jk 2Nπ n
=
N k =0

Where:
X [ k ] = ck , k = 1,..., N F / 2 positive subcarriers

X [ N + k ] = ck , k = −1,...,− N F / 2 negative subcarriers

X [k ] = 0, otherwise
Guard Time with Cyclic Prefix (CP)

x[ L],..., x[ L + N − 1] = IFFT {X [k ], k = 0,..., N − 1}

0 L L + N −1

CP IFFT{ X }
14243 14243
N

CP from the periodicity: x[0] = x[ N ]


x[n] = x[ N + n] ⇒ x[1] = x[ N + 1]
...
x[ L − 1] = x[ L + N − 1]
OFDM Symbol
x[0] = x[ N ]
Cyclic
M
Prefix
x[ L − 1] = x[ N + L − 1]
k n
0 0 0 x[L]
c1 1

M M
cN F / 2 (N F / 2 )
0

M IFFT
data
c− N F / 2
0
M
N − (N F / 2)

M
c−1 N−
N − 11 N −1 x[ L + N − 1]
Summary of OFDM
… and relevant parameters
Channel (given parameters):
1. Max Time Spread t_MAX in sec
2. Doppler Spread F_D in Hz
3. Bandwidth BW in Hz

OFDM (design parameters):


1. Sampling Frequency Fs>BW in Hz
2. Cyclic Prefix L > t_MAX * Fs, integer
3. FFT size (power of 2) 4*L<N<<Fs/F_D, integer
4. Number of Carriers NF=[N*BW/Fs], integer
Test in Simulation:

w[n]
⎧ X m [0] Ym [0]

⎪ X [k ] M M
m-th data
OFDM OFDM
block
⎨ m TX h[n] RX
Ym [k ]
(data, pilots ⎪ M M
and nulls) ⎪⎩ X m [ N − 1] Ym [ N − 1]

Recall that for every transmitted block of data we receive

Ym [k ] = H m [k ] X m [k ] + Wm [k ]

With H m [ k ] the frequency response of the channel within the time block

In order to estimate X m [k ] we need to know the channel.


A way to avoid it is to use differential encoding:

Data: d m [k ] X m [k ] = d m [k ] X m −1[k ]

X m−1[k ] Delay
one
frame

With QPSK it is equivalent to accumulating the phase

∠ X m [k ] = ∠ X m −1[k ] + ∠ d m [k ]
At the receiver

Y [k ] H m [k ] X m [k ] + Wm [k ]
dˆm [k ] = m = ≅ d m [k ]
Ym −1[k ] H m −1[k ] X m −1[k ] + Wm −1[k ]

Provided:
a. The channel changes slowly H m [ k ] ≅ H m −1[ k ] ≠ 0
b. High SNR

Ym [k ]
div d m [k ]

Delay Ym−1[k ]
one
frame
Lab 4: Single Carrier vs. OFDM Modulation

Goal: In this Lab we want to compare Single Carrier (SC) modulation


with Orthogonal Frequency Division Multiplexing (OFDM), with
Differential Modulation .

1. Using the Simulink model test_SC.mdl see the received signal for
various values of the symbol rate

FS = 2.0, 20.0, 200.0, 2000.0 kHz

As the symbol rate increases, notice the effect of Inter Symbol


Interference in the scattering plot.

2. Repeat the same with the Simulink model test_OFDM.mdl and see
the received signal for the same values of the symbol rate. Notice how
you can increase the data rate and still be able to demodulate the
received signal.
Example: IEEE 802.11a (WiFi)

1. Parameters
2. Simulink Example
3. “Frame based” and “Sample based”
signals
Parameters of IEEE802.11a:

Channel (given parameters):


1. Max Time Spread t_MAX=0.5 microsec
2. Doppler Spread F_D=50Hz
3. Bandwidth BW=16MHz

OFDM (design parameters):


1. Sampling Frequency Fs=20MHz
2. Cyclic Prefix L=16 > 0.5*20=10
3. FFT size (power of 2) N=64<<20e06/50
4. Number of Carriers NF=52=[64*16/20]
Sub-carriers: (48 data + 4 pilots) + (12 nulls) = 64

NULL
0 0 x0
c1 1
M M
c26 26
M
N F = 52 NULL M N = 64
c− 26 38
M
M M
c−1 63 63 x63
IFFT
Frequency Time
Pilots at: -21, -7, 7, 21
Frequencies:

ΔF = 20 MHz / 64 = 312.5kHz

L L
38 63 1 26 k Subcarriers index
( 64 − 26 )

−8.125 8.125 F ( MHz )

16.25MHz

DATA
F (MHz )
FCARRIER − 10 FCARRIER FCARRIER + 10

20 MHz = 1 / Ts
Time Block:

Ts = TFFT / 64 = 50 ×10 −9 sec

time
TG = 0.8μ sec TFFT = 3.2 μ sec

TFRAME = 4.0 μ sec


Overall Implementation (IEEE 802.11a with 16QAM).
1. Map encoded data into blocks of 192 bits and 48 symbols:

data Encode Buffer Map to al


Interleave (192 bits) 16QAM
…010011010101…
1110 +1+j3
0111 -1+j
48 … 1000 48
+3-j3
… …
+1-j
1101

4
4x48=192 bits
Overall Implementation (IEEE 802.11a with 16QAM).
2. Map each block of 48 symbols into 64 samples
frequency domain time domain
null 0 0 xm [0]
xm [1]
24 data ⎧
1 1
+1+j3 ⎫ ⎨ M 2
… ⎬ 2 pilots ⎩
26

-3-j
+3-j3 ⎫

null ⎨
⎩ M
27
− 27 + 64 MM
… ⎬ 24 data ⎧ − 26 + 64
+1-j ⎭ ⎨
2 pilots ⎩ M 62 xm [62]
− 1+ 64 63 xm [63]

am [ l ] X m [k ] IFFT xm [ n ]
l = 1: 48 k = 0 : 63 n = 0 : 63

L L
− 26 −1 1 26 k
Simulink Example

To make it simpler:
1. let the number of carrier be the same as the FFT length, ie
N=NF;
2. Use Differential QPSK Encoding and Decoding, so that we do
not need to estimate the channel’s frequency response.
Initial Callback function:

% OFDM parameters (IEEE802.11a)


Fs=20e6; % symbol data rate (uncoded) in Hz
N=64; % FFT sample size
L=16; % Cyclic Prefix sample length

% Channel Parameters
% 1. Doppler Spread
FC=5.0; % carrier freq. in GHz
v=50; % speed in km/h
FD=v*FC; % doppler freq in Hz

%2. Time Spread


tau=[0, 0.1, 0.4]*1e-6; % time delays in seconds
P=[0, -2, -4]; % attenuations in dB

% Additive Noise
SNRdB=20; % dB
Simulink Implementation of OFDM IEEE802.11a

Recall how we compute the IFFT at the Modulator OUT:

Block of 80 samples
IN:

Block of 52 data x(49)


Recall: vectors in
points (data + pilots) Matlab begin at n=1
M
NULL x(1) x(64)
0 0 x(1)
d1 1
M M
d 26 26 CP M
M
NULL M M
d 27 38
M
M M
d 52 63 63 x(64)
x(64)
IFFT
Vector operations.
OFDM Modulator:

Concatenate Transmitted Frame


in a vector
0 1
52 data points 26 26
52 0 11 64 80
(include the pilots) 26 26

Split IFFT ADD CP


Data
OFDM Modulator:

Simulink > Signal Routing > Selector

Simulink > Commonly


Used Blocks > demux
Simulink > Math Operations > Matrix
Concatenate

repeat last 16 entries


[49:64, 1:64]
OFDM Demodulator:

Received Frame
Received Data
1
26 26
80 64 11 52
26 26

Remove FFT Concatenate


CP in a vector
Simulink > Commonly Used
Signal Processing > Blocks > Terminator
Signal Management >
Signal Attributes

Simulink > Math Operations > Matrix


Simulink > Signal Routing > Selector demux Concatenate
Put Everything Together: M=4 (QPSK)
f_D=doppler freq.

Differential enc/dec
3. “Frame based” and “Sample based”

In Simulink a signal can be


• Frame based
• Sample based

This is particularly important when the signals are vectors.


• Some blocks want the input to be Frame based, others want it Sample
based, others don’t care
• When you have to process a large number of data, it is more efficient to
process blocks of samples, using Frames, rather than one sample at a
time.
“Frame based”

Frame Based [Nx1]

Each vector is part (a “frame”) of the same signal

N
“Sample based”

Sample Based [Nx1]

There are N different signals. Each element of the vector


belongs to a different signal.

N
Typical Example: the FFT block

[Nx1] [Nx1] [Nx1]


To
FFT Frame

frame sample frame


IEEE 802.16 Standard

IEEE 802.16 2004:


Part 16: Air Interface for Fixed Broadband Wireless Access
Systems
From the Abstract:
• It specifies air interface for fixed Broadband Wireless Access (BWA) systems
supporting multimedia services;
• MAC supports point to multipoint with optional mesh topology;
• multiple physical layer (PHY) each suited to a particular operational environment:
IEEE 802.16-2004 Standard

Table 1 (Section 1.3.4) Air Interface Nomenclature:

• WirelessMAN-SC, Single Carrier (SC), Line of Sight (LOS), 10-66GHz, TDD/FDD


• WirelessMAN-SCa, SC, 2-11GHz licensed bands,TDD/FDD
• WirelessMAN OFDM, 2-11GHZ licensed bands,TDD/FDD
• WirelessMAN-OFDMA, 2-11GHz licensed bands,TDD/FDD
• WirelessHUMAN 2-11GHz, unlicensed,TDD

MAN: Metropolitan Area Network


HUMAN: High Speed Unlicensed MAN
IEEE 802.16e 2005:
Part 16: Air Interface for Fixed and Mobile Broadband
Wireless Access Systems
Amendment 2: Physical and Medium Access Control Layers
for Combined Fixed and Mobile Operation in Licensed
Bands
and
Corrigendum 1

Scope (Section 1.1):


• it enhances IEEE 802.16-2004 to support mobility at vehicular speed, for combined
fixed and mobile Broadband Wireless Access;
• higher level handover between base stations;
• licensed bands below 6GHz.
IEEE 802.16-2004: Reference Model (Section 1.4), Figure 1

External Data

By Layers: CS-SAP SAP=Service Access Point

Service Specific Convergence Section 5


Sublayer (CS)

MAC-SAP

MAC MAC Common Part Convergence Section 6


Sublayer (CS)

Security Sublayer Section 7

PHY-SAP

PHY Physical Layer Section 8


Parameters for IEEE 802.16 (OFDM only)

802.16-2004 802.16e-2005
Frequency Band 2GHz-11GHz 2GHz-11GHz fixed
2GHz-6GHz mobile
OFDM carriers OFDM: 256 OFDM: 256
OFDMA: 2048 OFDMA: 128, 256, 512,1024,
2048
Modulation QPSK, 16QAM, 64QAM QPSK, 16QAM, 64QAM
Transmission Rate 1Mbps-75Mbps 1Mbps-75Mbps
Duplexing TDD or FDD TDD or FDD
Channel Bandwidth (1,2,4,8)x1.75MHz (1,2,4,8)x1.75MHz
(1,4,8,12)x1.25MHz (1,4,8,12)x1.25MHz
8.75MHz 8.75MHz
IEEE802.16 Structure

data
Error
randomization Correction M-QAM OFDM TX
Coding mod mod

data Error
De-rand. Correction M-QAM OFDM RX
Decoding dem dem

Choices:

Coding rates M-QAM OFDM Channel


carriers B/width
1/2 2 1.25 MHz
256
2/3 4 5 MHz
512
3/4 16 10 MHz
1024
5/6 64 …
2048
OFDM and OFDMA (Orthogonal Frequency Division Multiple Access)

• Mobile WiMax is based on OFDMA;


• OFDMA allows for subchannellization of data in both uplink and downlink;
• Subchannels are just subsets of the OFDM carriers: they can use contiguous or
randomly allocated frequencies;
• FUSC: Full Use of Subcarriers. Each subchannel has up to 48 subcarriers evenly
distributed through the entire band;
• PUSC: Partial Use of Subcarriers. Each subchannel has subcarriers randomly
allocated within clusters (14 subcarriers per cluster) .
Section 8.3.2: OFDM Symbol Parameters and Transmitted Signal

OFDM Symbol Ts

Tg Tb
guard data
(CP)

Tg 1 1 1 1
= , , ,
Tb 4 8 16 32

Cyclic Prefix has a variable length. It represents a loss of

LCP = 10 log(Tb /(Tb + Tg ) )


An OFDM Symbol is made of
• Data Carriers: data
• Pilot Carriers: synchronization and estimation
• Null Carriers: guard frequency bands and DC (at the modulating carrier)

pilots data

frequency

channel Guard
Guard
band
band
N guards = to provide frequency guards between channels
N nulls = N guards + 1 (DC subcarrier is always zero)
N pilots = pilots for channel tracking and synchronization
N data = data subcarriers
N used = N pilots + N data
Recall the OFDM symbol is of the form

⎧ N
k = used

⎪ j 2πf ct j 2πkΔf ( t −Tg ) ⎪
∑Nused ck e
2

s (t ) = Re⎨e ⎬
⎪ k =− 2 ⎪
⎩ k ≠0 ⎭

| S( f ) |

f
− f c − BW
2 − fc − f c + BW
2 f c − BW
2 fc f c + BW
2

carrier
OFDM Subcarrier Parameters:

FFT size 256 128 512 1024 2048

N_used 200 108 426 850 1702

N_nulls 56 20 86 174 346

N_pilots 8 12 42 82 166

N_data 192 96 384 768 1536

144444424444443
Fixed and
Fixed Mobile
WiMax WiMax
In 802.16 2004 we have N FFT = 256
N used = 200

Fs − BW BW Fs

2 2 2 2
Frequency Spacing Δf = 1 / data_symbol_length = 1 / Tb

Sampling frequency Fs = N FFT Δf


N used
Bandwidth BW = N used Δf = Fs
N FFT
Since we want the sampling rate to be integer multiple of a fixed rate (say
8kHz), the formula for the sampling rate is

Fs = floor (n × BW / 8,000)× 8,000


8 86 144 316 57 256
With n a factor (Table 213) of the order n= , , , , ,≈
7 75 125 275 50 200
IEEE 802.16, with N=256
X [k ]
k

n
↓ x[n + L]
data
0 0
pilots 12
13
nulls 24 M
38
24
63
24
88
12 100
101

M
IFFT M
155
12 156
168
24
193
24
218
24

12
243 M
255 255
Implementation of WiMax 2004 in Simulink

Data in 192x1

NFFT=256
NCP=64
5. Error Correcting Coding

1. Channel Capacity and Error Correction Coding


2. Block Coding
3. Code Shortening and Puncturing
4. Simulink Implementation of Block Codes
5. Convolutional Codes
6. Simulink Implementation of Convolutional Codes
7. Concatenated Codes in IEEE802.16
1. Channel Capacity and Error Correction Coding

1.1 Channel Capacity


1.2 Error Correction Coding
1.3 Minimum SNR Requirement
and Shannon Limit
1. Channel Capacity
Problem: given a AWGN Channel, defined in terms of
• Signal to Noise Ratio (SNR)
• Bandwidth B
and a desired Bit Error Rate (BER),
what is the maximum data rate we can transmit?
noise

..01010110… MOD channel DEM ..01010010…


Errors!

Transmitted Received
Define the Channel Capacity:

C = B log 2 (1 + SNR ) bits/sec

Significance: if the transmitted data rate R<C then we can always


find a coding scheme to make the bit error rate arbitrarily small.

Example:

SNRdB=20dB
⇒ ( )
C = 10 7 log 2 1 + 10 20 /10 = 66.5Mbits / sec
B=10MHz

Problem: How do we encode the data to obtain an acceptable error rate?


Use Error Correction Coding!
2. Error Correction Coding

Purpose: detect and Correct Errors by adding redundant information.


How to Define an Encoder:
• code rate
Ru
rc = <1
Re

rc
encoder
Ru Re > Ru
data rate Encoded data
rate
• number of errors corrected

# bits in error
BER =
total # of bits
Relation to Channel Capacity
SNR

rc rc
encoder channel decoder
Ru < C C C Ru
Given BER

• a data rate Ru < C


•a desired Bit Error Rate (BER) arbitrarily small
you can always find a code with coding rate
Ru
rc ≤ <1
C

with desired BER.


Clearly the Complexity goes up with the coding rate.
Example: see two situations with the same BER = 10 −5 and
Eb / N 0 ≈ 4dB

A. Convolutional Encoder with rate rc = 1 / 2

B. Block Code (65520, 61425) low density parity check, with coding
rate r = 61425 = 15
c
65520 16

Code
Complexity
$$$

1/ 2 15 / 16 rc code rate
3. Minimum SNR Requirements
For a given Coding Rate, what is the minimum Eb / N 0 we can have?
Shannon Limit
1

0.9

0.8

0.7

0.6
coding rate

0.5

0.4

0.3

0.2

0.1

0
-2 -1 0 1 2 3 4 5 6 7 8
EbN0 dB

− 1.6dB

Eb
Notice: > −1.6dB always!!!
N0
2. Block Coding

2.1 Parameters of Block Codes


2.2 Probability of Error
2.3 Reed Solomon Codes (non binary data)
2.3 Simulink Implementation
1. Parameters of Block Codes

It encodes k blocks of data symbols into n blocks of encoded symbols:


raw data encoded data

encoder
(n, k , t )
k symbols n> k symbols
k
Code Rate rc =
n

Parameters: (n, k , t )

⎛ d min − 1 ⎞
t ≤ floor ⎜ ⎟ Max. number of errors corrected
⎝ 2 ⎠
where d min ≤ n − k + 1 Minimum distance between codewords
L C
t
A
d min
D

B L
codewords
non -codewords

receive
decode
transmit
C A
A channel decoder

D B Error !!!
d (C , A) ≤ t
where
d ( D, A) > t
2. Probability of Error

If the code corrects up to t errors, the probability that the wrong


codeword is decoded is given by

n
⎛n⎞ j
⎜ ⎟ k
(
Pe ≤ ∑ ⎜ ⎟ p (1 − p ) ≤ (2 − 1) 4 p (1 − p )
n− j
)d min / 2

j =t +1 ⎝ j ⎠
“n-j” bits right
“j” bits wrong

with p the probability of error for one bit.

For BPSK, QPSK: (


p = Q 2 Ec / N 0 ) Ec = Energy of Coded Bit =
k
n
Eb

Bit Error Probability for HDD


codeword error
n
⎛n⎞ j Pe
Pb ≈ ∑ j ⎜⎜ ⎟⎟ p (1 − p ) ≈
n− j

j =t +1 ⎝ j ⎠ k bits per codeword


Some Probabilities of Error for BPSK:

Probability of Error: BPSK coded and uncoded


-2

-2.5 Uncoded
-3
Golay (24,12,3)
-3.5
BCH (127,64,10)
log10(Prob of error)

-4

-4.5

-5

-5.5

-6

-6.5

-7
4 5 6 7 8 9 10 11
Eb/N0 dB
3. Reed Solomon Codes (non Binary Data)

(n, k , t ) ⎛ 2m − k ⎞
t = floor ⎜⎜ ⎟⎟
n = 2m − 1 ⎝ 2 ⎠
coded symbols k<n uncoded errors corrected
symbols

1 symbol = m bits
Good for Burst Error Correction at relatively high SNR

Example: (255,239,8)

239 symbols RS 255 symbols

= 239 symbols 16
data parity
Based on polynomials:

uncoded block
coded block
RS
u[0],..., u[k − 1] c[0],..., c[n − 1]

u ( X ) = u[0] + u[1] X + ... + u[k − 1] X k −1 c( X ) = c[0] + c[1] X + ... + c[n − 1] X n −1

c( X ) = g ( X )u ( X )
encoder u( X )
errors
g( X ) e( X )
quotient
u( X ) y( X )
e( X )
remainder
g(X ) y ( X ) = c ( X ) + e( X )
= g ( X )u ( X ) + e( X )
3. Code Shortening and Puncturing

3.1 Code Shortening


3.2 Code Puncturing
3.3 RS Coding in IEEE802.16
1. Code Shortening

Start with a block code, say RS (n=255, k=239, t=8).


We can generate a different code by Shortening:
1. Shortened to k’ data bytes by adding 239-k’ null symbols
2. At the output eliminate the corresponding 239-k’ terms

k’ (k’+16,k’,8) k’ 16

k’ 00000 (255, 239,8) k’ 00000 16


239 symbols 255 symbols
By shortening Reed Solomon (255,239,8) we obtain codes

(k '+16, k ' ,8), 0 < k ' ≤ 239

All these codes correct up to 8 errors (bytes).

k’ (k’+16,k’,8) k’ 16
2. Code Puncturing

By puncturing we eliminate L parity bytes to obtain a code correcting


8-T errors. Therefore we determine L from

}
parity bytes

(N − k ) = 8 − T ⇒
16 − L
= 8−T ⇒ L = 2T
2 2
Puncturing Reed Solomon Codes (k '+16, k ' ,8), 0 < k ' ≤ 239

1. The last 16 bytes are parity bytes

Code: k’ (k’+16,k’,8) k’ 16
(k '+16, k ' ,8)

2. For a (k '+16 − 2T , k ' ,8 − T ) code, correcting 8-T errors, just eliminate


the first 2T bytes of the parity check.

(k '+16 − 2T , k ' ,8 − T ) k’ (k’+16,k’,8-T) k’


16-2T parity
RS codes used in IEEE802.16: (k '+16 − 2T , k ' ,8 − T )

(32,24,4) k’=24, T=4


(40,36,2) k’=36, T=6
(64,48,8) k’=48, T=0
(80,72,4) k’=72, T=4
(108,96,6) k’=96, T=2
(120,108,6) k’=108, T=2
4. Simulink Implementation of Block Codes

4.1 Shortened Codes


4.2 Punctured Codes
Simulink Implementation of Shortened RS Codes

Let’s implement the code (52,36,8) by shortening


1. Shortened to k’=36 data bytes (=36x8=288 bits) by adding 239-k’
null symbols at the beginning of the block
2. At the output eliminate the first 239-k’ terms

239 − 36 = 203 203


239 255
416 bits
288 bits symbols
bits to 36 RS 52
symbols to bits

8 bits/symbol 8 bits/symbol
RS Encoder
Raw data
288 bits Encoded data
416 bits
RS Decoder
Raw data
288 bits Received data
416 bits
Put Everything together:
It is easier to create subsystems:

RS encoder MQAM Mod

Channel
RS decoder MQAM Demod

Select each group of blocks and use


Edit > Create Subsystem
It cannot be undone!
Masked Subsystems

In Simulink we can create customized blocks, where we can enter


parameters values.

Example: Reed Solomon Encoder and Decoder

RS
Encoder n'
datablock
RS encoded
data Decoder data
RS Encoder:

1. edit

[239-k+1:255]

2. right click on subsystem and select Mask Subsystem


3. Edit Mask:

add parameters
You can customize the icon

When you “click” on the icon, you get the following:

the two
parameters from
previous slide
RS Decoder:

2. right click on subsystem and select Mask Subsystem


3. Edit Mask:
Simulink Implementation of (40,36,2).

1. Start with the previous code (52,36,8);


2. Puncture it by eliminating 2T=12 (ie T=6) bytes in the parity
RS (40,36,2) encoder Sequence Operations>Puncture

Eliminate last 12 bytes

same vector
RS (40,36,2) decoder Sequence Operations>Insert Zero

Insert 12 zeros
Convolutional Encoders

1. Definition of Convolutional Encoders


2. Puncturing
3. Simulink Implementation
Convolutional Encoders

raw data
L L
k M CC n
M

k
Rate
n
L L
Coded data

It continuously updates k data symbols into n>k coded symbols.


Example: a 2/3 encoder
y1

x1
z −1 z −1 z −1 z −1

y2

x2
z −1 z −1 z −1

y3
⎡ a11 a12 a13 ⎤
Polynomial description: [ y1 y3 ] = [x1 x2 ] ⎢
a23 ⎥⎦
y2
⎣a21 a22

y1

1 0 0 1 1 → a11 = (10)8 (011)8 = 23


x1
z −1 z −1 z −1 z −1
→ a12 = (11)8 (101)8 = 35
1 1 1 0 1
y2

0 1 0 1 → a22 = (0)8 (101)8 = 5


x2
z −1 z −1 z −1
1 0 1 1 → a23 = (1)8 (011)8 = 13
y3
Therefore the code is described by the matrix (all entries are octal)
no connection x1 → y3

⎡23 35 0 ⎤
[ y1 y2 y3 ] = [x1 x2 ] ⎢ ⎥
⎣ 0 5 13⎦

no connection x2 → y1

The parameters are then:

CONSTRAINED_LENGTH = [4,3]
CODEGENERATOR=[23,35,0; 0,5,13]

which call the function “poly2trellis”


In IEEE802.16e the Convolutinal Code has rate ½ and constrained
length 7:
y1

x
z −1 z −1 z −1 z −1 z −1 z −1

[ y1 , y2 ] = x[a1 , a2 ] y2
a1 = (1)8 (111)8 (001)8 = 171
a2 = (1)8 (011)8 (011)8 = 133
constrained length = 7
Note: in some books (as in [Costello]) the binary coefficients are
determined in reverse order.
Example: the code in the previous page is defined by he polynomials
(begin counting from the right) as

g1 = (1)8 (001)8 (111)8 = 117


g 2 = (1)8 (011)8 (011)8 = 155
Punctured Codes

From an (k,n) convolutional code make a code with higher rate (less
correcting capabilities), by periodically eliminating output bits.

Example in IEEE 802.16e:

The code [171,133] seen before is a (1,2) code:

K, x[n],K K , y1[n], y2 [n],K


encoder
Rate 2/3:
K , y1[n − 1], y2 [n − 1], y1[n], y2 [n],K
K, x[n − 1], x[n],K
encoder

We can represent it as a matrix with 2 rows:

⎡1 0⎤
P=⎢ ⎥
⎣1 1⎦
Since:
1 0
K , y1[n − 1], y2 [n − 1], y1[n], y2 [n],K
1 1
Rate 3/4:

K , y1[n − 2], y2 [n − 2], y1[n − 1], y2 [n − 1], y1[n], y2 [n],K


K, x[n − 2], x[n − 1], x[n],K
encoder

We can represent it as a matrix with 2 rows:

⎡1 0 1⎤
P=⎢ ⎥
⎣1 1 0⎦
Since:
1 0 1
K , y1[n − 2], y2 [n − 2], y1[n − 1], y2 [n − 1], y1[n], y2 [n],K
1 1 0
Rate 5/6:
K, x[n − 4], x[n − 3], x[n − 2], x[n − 1], x[n],K

encoder

K , y1[n − 4], y2 [n − 4], y1[n − 3], y2 [n − 3], y1[n − 2], y2 [n − 2], y1[n − 1], y2 [n − 1], y1[n], y2 [n],K

We can represent it as a matrix with 2 rows:


⎡1 0 1 0 1⎤
P=⎢ ⎥
⎣1 1 0 1 0⎦
Since:
1 0 1 0 1
K , y1[n − 4], y2 [n − 4], y1[n − 3], y2 [n − 3], y1[n − 2], y2 [n − 2], y1[n − 1], y2 [n − 1], y1[n], y2 [n],K
1 1 0 1 0
Simulink Implementation
Implementation of Concatenated Codes using Simulink
AWGN_RSCC_masked.mdl
Variable DataRates with Concatenated Codes in IEEE802.16

• It is highly desirable to be able to set the system to a number of different data and
coding rates to adapt to channel conditions;
•IEEE802.16 achieves variable data rates by a combination of mechanisms:
• coding (shortening, puncturing)
• data block length (subchannelization)
• different rates have to be easily achieved by changing appropriate parameters
without major reconfigurations.
Recall from previous units:

k nRS n
Raw Data in RS CC
Encoded Data out
encoder encoder

RS parameters CC parameters

• encoder/decoder
• reduction
• puncturing
RS Encoder (k + 16 − 2T , k ,8 − T )

239 255 k + 16
nRS = k + 16 − 2T
Zero RS select puncture
k Pad (255,239,8)

k pRS = [11,...,1,0,...,0]
23 123
k + 16 − 2T 2T
Convolutional Encoder with coding rate rCC

nRS
CC
2nRS n=
nRS puncture rCC
[171,133]

rCC = 1 / 2, P = [1,1]
rCC = 2 / 3, P = [1,1,0,1]
rCC = 3 / 4, P = [1,1,0,1,1,0]
rCC = 5 / 6, P = [1,1,0,1,1,0,0,1,1,0]
By combining the two codes we obtain a number of data rates (section 8.3.3.2 of the
standard):

Rate ID M- Data Coded Coding RS Code CC


QAM block k block n rate coding
(bytes) (bytes) k/n rate
0 2 12 24 1/2 (12,12,0) 1/2

1 4 24 48 1/2 (32,24,4) 2/3

2 4 36 48 3/4 (40,36,2) 5/6

3 16 48 96 1/2 (64,48,8) 2/3

4 16 72 96 3/4 (80,72,4) 5/6

5 64 96 144 2/3 (108,96,6) 3/4

6 64 108 144 3/4 (120,108,6) 5/6


Example:
take Rate_ID=2
Rate ID M-QAM Data block k Coded Coding rate RS Code CC coding
(bytes) block n k/n rate
(bytes)
2 4 36 48 3/4 (40,36,2) 5/6

40
36
RS
40
CC
= 48
Raw Data in 5/6
encoder encoder
Encoded Data out

RS parameters CC parameters

k = 36
pRS = [11,...,1,0,...,0] pCC = [1,1,0,1,1,0,0,1,1,0]
23 123
36 + 16 − 2 × 6 = 40 2 × 6 = 12
This yields a table of parameters for each “Rate_ID”:

Rate M- Data Coded CC


ID QAM block pRS pCC block n coding
k (bytes) rate
(bytes)
0 2 12 No RS [1,1] 24 1/2

1 4 24 [ones(1,32),zeros(1,8)] [1,1,0,1] 48 2/3

2 4 36 [ones(1,40),zeros(1,12)] [1,1,0,1,1,0,0,1,1,0] 48 5/6

3 16 48 1 [1,1,0,1] 96 2/3

4 16 72 [ones(1,80),zeros(1,8)] [1,1,0,1,1,0,0,1,1,0] 96 5/6

5 64 96 [ones(1,108),zeros(1,4)] [1,1,0,1,1,0] 144 3/4

6 64 108 [ones(1,120),zeros(1,4)] [1,1,0,1,1,0,0,1,1,0] 144 5/6


All parameters can be
computed from the
matlab program
coding.m
The Coding Rates and the MQAM modulation parameters are designed in such a way
that, in all cases

Symbol Block
8* n
= 192 symbols
log 2( M )

From Data
Source To IFFT
RS CC MQAM

k nRS n
bytes:

Row Data Coded Data Coded Data


Block Block Block
In all cases of NFFT=256,512,1024,2048 the number of data symbols transmitted is a
multiple of 192.

Recall this table:

FFT size 256 128 512 1024 2048

N_used 200 108 426 850 1702

N_nulls 56 20 86 174 346

N_pilots 8 12 42 82 166

N_data 192 96 384 768 1536

2x192 4x192 8x192


Put Everything together for IEEE802.16 2004 with AWGN Channel

WiMax256.mdl
IEEE802.16 Implementation

In addition to OFDM Modulator/Demodulator and Coding we need

• Time Synchronization: to detect when the packet begins


• Channel Estimation: needed in OFDM demodulator
• Channel Tracking: to track the time varying channel (for mobile only)

In addition we need
• Frequency Offset Estimation: to compensate for phase errors and noise in the
oscillators
• Offset tracking: to track synchronization errors
Basic Structure of the Receiver
Time Synchronization:
Channel Estimation: detect the beginning of
estimate the frequency the packet and OFDM
response of the channel symbol

Received
Signal

Demodulated
Data

WiMax Demodulator
Time Synchronization

In IEEE802.16 (256 carriers, 64 CP) Time and Frequency Synchronization are


performed by the Preamble.
Long Preamble: composed of 2 OFDM Symbols
Short Preamble: only the Second OFDM Symbol

First OFDM Symbol Second OFDM Symbol L


320 samples 320 samples

4 repetitions of a short 2 repetitions of a long


pulse+CP pulse + CP

64 64 64 64 64 64 128 128

Tg Td Tg Td
The standard specifies the Down Link preamble as QPSK for subcarriers between -100
and +100:

⎧± 1 ± j , k = −100,...,−1,+1,...,+100
PALL [k ] = ⎨
⎩0, otherwise

Using the periodicity of the FFT:

PALL [k ], k = 1,...,100 PALL [k ] = PALL [256 + k ], k = −100,...,−1

1 100 156 255


• Short Preamble, to obtain the 4 repetitions, choose only subcarriers multiple of 4:

⎧2 PALL
*
[k ], if k mod 4 = 0
P4 [k ] = ⎨
⎩0, otherwise
P4 [k ] p4 [ n]
FFT
L 64 64 64 64
0 255
0 4 8 252 255

Add Cyclic Prefix: p4 [ n]


64 64 64 64 64
0 255 319
• Long Preamble: to obtain the 2 repetitions, choose only subcarriers multiple of 2 :

⎧ 2 PALL [k ], if k mod 2 = 0
P2 [k ] = ⎨
⎩0, otherwise
P2 [k ] p2 [ n]
FFT
L 128 128

2 4 6 8 0 255
0 252 255
254 p2 [ n]
Add Cyclic Prefix:
64 128 128
1
424
3 319
0
CP
Several combinations for Up Link, Down Link and Multiple Antennas.
We can generate a number of preambles as follows:

With 2 Transmitting Antennas:

⎧ 2 PALL [k ], if k mod 2 = 0
P [k ] = ⎨
2
0

⎩0, otherwise

⎧ 2 PALL [k ], if k mod 2 = 1
P [k ] = ⎨
2
1

⎩0, otherwise

With 4 Transmitting Antennas:

⎧ 2 P *
[k ], if k mod 4 = 0
m=0 P40 [k ] = ⎨ ALL
⎩0, otherwise

⎧ PALL [ k + 2 − m], if k mod 4 = m


*
m = 1,2,3 P4 [k ] = ⎨
m

⎩0, otherwise
Time Synchronization from Long Preamble

1. Coarse Time Synchronization using Signal Autocorrelation

Received signal:
preamble OFDM Symbols

64 128 128 L
n0
Compute Crosscorrelation Coefficient: 2
127

∑ y[
l =0
n − l ] y *
[n − 128 − l]
ry2 [n] =
y[n] ⎛ 127 2⎞ ⎛
127
2⎞
⎜ ∑ y[n − l] ⎟ × ⎜ ∑ y[n − 128 − l] ⎟
xcorr ⎝ l =0 ⎠ ⎝ l =0 ⎠
z −128
Time Synchronization from Long Preamble

1. Coarse Time Synchronization using Signal Autocorrelation

Received signal:
preamble OFDM Symbols

64 128 128 L
n0
Compute Autocorrelation : 2
127

∑ y[
l =0
n − l ] y *
[n − 128 − l]
ry2 [n] =
y[n] ⎛ 127 2⎞ ⎛
127
2⎞
⎜ ∑ y[n − l] ⎟ × ⎜ ∑ y[n − 128 − l] ⎟
xcorr ⎝ l =0 ⎠ ⎝ l =0 ⎠
z −128
Effect of Periodicity on Autocorrelation:

y[n]

64 128 128 L n
n0

y[n − 128]
64 128 128 Ln
ry2 [n] MAX when
1 y[n] = y[n − 128]

n0 n
n0 − 64
127 2
Compute it in Simulink:
∑ y[
l =0
n − l ] y *
[n − 128 − l]

ry2 [n]
y[n]
1 DF FIR
2
|u| u
In1 >= 0.8 1
Conj.
Product Abs Math Sync
Digital Filter Divide
-128 Function Compare
u
z To Constant

Delay

-128
z
DF FIR
Delay1
|u| u2 max
Product1
Abs1 Square Digital Filter2 MinMax
-C-

Constant

⎛ 127 2 ⎞⎛
127
2⎞
⎜ ∑ y[n − l] ⎟⎜ ∑ y[n − 128 − l] ⎟
⎝ l =0 ⎠⎝ l =0 ⎠
Example: perfect channel (no spread in time)

ry [n]

The packet begins 64


somewhere in here
2. Fine Time Synchronization using Cross Corelation with Preamble

127 2


y[n]
y[ n − l ] p *
[l ]
l =0
xcorr ryp [n] =
⎛ 127 2 ⎞⎛
127
2⎞
p[n] ⎜ ∑ y[n − l] ⎟⎜ ∑ p[l] ⎟
⎝ l =0 ⎠⎝ l =0 ⎠

Since the preamble is random (almost like white noise), it has a short autocorrelation:

y[n]
64 128 128 L n 1
ryp2 [n]

n0
p[n]
128
n0
0 127 n n0 − 128
… with dispersive channel

127 2


y[n]
y[ n − l ] p *
[l ]
l =0
xcorr ryp [n] =
⎛ 127 2 ⎞⎛
127
2⎞
p[n] ⎜ ∑ y[n − l] ⎟⎜ ∑ p[l] ⎟
⎝ l =0 ⎠⎝ l =0 ⎠

Since the preamble is random, almost white, recall that the crosscorrelation yields the
impulse response of the channel

y[n] | h[n] |
64 128 128 L n
ryp [n]
1
n0
p[n]
128
n0
0 127 n n0 − 128
Compare the two (non dispersive channel):

Autocorrelation of ry
received data

Crosscorrelation with
preamble
ryp
Synchronization with Dispersive Channel

Let L be the length of the channel impulse response


64 − L

Channel impulse
response
In order to determine the starting point, compute the energy on a sliding window and
choose the point of maximum energy

y[n]

p[n]
xcorr Σ Maximum
ryp [n] c[n] energy

ryp [n] 1 c[n]

n − M +1
n
M=max length of M −1
channel = length of CP c[n] = ∑ ryp [n − k ]
k =0
Example

y[n]

p[n]
xcorr Σ
ryp [n] c[n]

Impulse response
of channel
Auto
correlation

y[n]

max

Cross
correlation Σ
p[n] c[n]
Autocorrelation (saw
previously)

Detect
Cross correlation
MAX

Sum
Channel Estimation

Recall that, at the receiver, we need the frequency response of the channel:

w[n]
⎧ X m [0] Ym [0]

⎪ X [k ] M OFDM OFDM M
m-th data block ⎨ m TX h[n] RX
Ym [k ]
⎪ M M
⎪⎩ X m [ N − 1] Ym [ N − 1]

Transmitted: Received:

Ym [k ] = H [k ] X m [k ] + W [k ]
X m [k ]

H [k ]
channel freq.
response
W [k ]
From the Preamble: at the beginning of the received packet. The transmitted signal in
the preamble is known at the receiver: after time synchronization, we take the FFT of
the received preamble

Estimated initial time

Received Preamble: 64 128 128

256 samples
L
FFT
L
Y [ 0] Y [k ] Y [255]

Y [k ] = H [k ] X p [k ] + W [k ], k = 0,...,255
Y [k ] = H [k ] X p [k ] + W [k ], k = 0,...,255

Solve for H [k ] using a Wiener Filter (due to noise):

Y [k ] X *preamble [k ]
Hˆ [k ] =
| X p [k ] |2 +σ w2
noise covariance

Problem: when X p [k ] = 0 we cannot compute the corresponding


frequency response H [k ]

X p [k ] = ±1 ± j k = 2,4,...,100
if
k = 156,158,...,254
Fact: by definition,

X p [k ] = 0 otherwise (ie DC, odd values,


frequency guards)
Two solutions:
1. Compute the channel estimate

Y [k ] X *preamble [k ]
Hˆ [k ] =
| X p [k ] |2 +σ w2
only for the frequencies k such that

X p [k ] ≠ 0

and interpolate for the other frequencies. This might not yield good results and the
channel estimate might be unreliable;
known

L Linterpolate
k
2. Recall the FFT and use the fact that we know the maximum length L of the
channel impulse response

Y [k ] = H [k ] X p [k ] + W [k ]

Since the the preamble is such that either | X p [k ] |= 0 or | X p [k ] |= 2

For the indices where | X p [k ] |= 2 we can write:


⎛ L −1 − jk n⎞
Y [k ] X p [k ] = ⎜⎜ ∑ h[n]e
* N ⎟ 2 + W [k ] X *p [k ]
⎟ for k = 2,4,...,100
⎝ n = 0 ⎠ k = 156,158,...,254
so that we have 100 equations and L=64 unknowns.
This is solved by a matrix multiplication
h = Finv YX *p( )
64 × 1 100 × 1
Simulink Implementation

Trigger when preamble is detected

Y [k ]
h[n]
Channel Data in
Estimate out
y[n]
H [k ]
X *p [k ]
Example:

Spectrum of
Received Signal

As expected, it
does not match in
NOT TO the Frequency
SCALE Guards

Estimated
Frequency
Response of
Channel
Start after processing WiMax-2004 Demodulator
preamble
WiMax256.mdl

Standard OFDM
Demod (256 carriers)

data

Error Correction
Decoding Ch.
Channel Tracking

In mobile applications, the channel changes and we need to track it.


IEEE802.16-2005 tracks the channel by embedding pilots within the data.

In the FUSC (Full Use of Sub Carriers) scheme, the pilots subcarriers are chosen
within the non-null subcarriers as

9k + 3m + 1

with m = [symbol_index ] mod 3 = 0,1,2


⎧0,...,191 for N FFT = 2048
⎪0,...,95 for N
⎪ FFT = 1024
k =⎨
⎪0,...,47 for N FFT = 512
⎪⎩0,...,11 for N FFT = 128
subcarrier
0 1 4 7L k

OFDM
Symbol
nulls

DC
m (null)

pilots
data
nulls
Expand the
Demodulator
Demodulator

Channel
tracking
Multiple Antenna Systems (MIMO)

M M
TX M M RX

NT NR
Transmit Receive
Antennas Antennas
NT × N R
Different paths
Two cases:
1. Array Gain: if all paths are strongly correlated to which other the SNR can be
increased by array processing;
2. Diversity Gain: if all paths are uncorrelated, the effect of channel fading can be
attenuated by diversity combining
Receive Diversity:

h1
M y1

hN R M RX
TX
s
yNR

NT = 1 NR NR
Transmit Different paths Receive
Antennas Antennas

⎡ y1 ⎤ ⎡ h1 ⎤ ⎡ w1 ⎤
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ M = M
⎥ ⎢ ⎥ S E s + N 0⎢ M ⎥
⎢ y N ⎥ ⎢hN ⎥ ⎢ wN ⎥
⎣ R⎦ ⎣ R⎦ ⎣ R⎦
Energy per Noise PSD
symbol
Assume we know the channels at the receiver. Then we can decode the signal as

NR NR NR
y = ∑ hi* yi = ES ∑ | hi |2 s + N 0 ∑ hi* wi
i =1 i =1 i =1

signal noise

and the Signal to Nose Ratio

⎛ NR 2 ⎞ ES
SNR = ⎜⎜ ∑ | hi | ⎟⎟
⎝ i =1 ⎠ N0
NR
In the Wireless case the channels are random, therefore ∑| h |
i =1
i
2
is a random variable

Now there are two possibilities:


1. Channels strongly correlated. Assume they are all the same for simplicity

h1 = h2 = ... = hN R = h
Then
NR

∑ i
| h
i =1
| 2
= N R | h | 2
= N χ
R 2
2

assuming { }
E | h |2 = 1

and

(
SNR = N R | h |
ES ⎛
2
) 1 2 ⎞ ES
= ⎜ NR χ2 ⎟
N0 ⎝ 2 ⎠ N0
From the properties of the Chi-Square distribution:

mSNR = E{SNR} = N R
ES
better on average …
N0

= var{SNR} =
N R ES
σ SNR … but with deep fades!
2 N0

Define the coefficient of variation σ SNR 1


μ var = =
mSNR 2

In this case we say that there is no diversity.


Recall the Chi-Square distribution:

1. Real Case. Let


y = x + x + ... + x
2
1
2
2
2
n
xi ≈ N (0,1) real , i.i.d .
Then y = χ n2
E{ y} = n
with
var{ y} = 2n
2. Complex Case. Let
y =| x1 |2 + | x2 |2 +...+ | xn |2
xi = ai + jbi ≈ CN (0,1) complex gaussian, i.i.d .
1 2
Then y= χ 2n
2
with
E{ y} = n
1
var{ y} = n
2
2. Channels Completely Uncorrelated.

⎛ NR 2 ⎞ ES
SNR = ⎜⎜ ∑ | hi | ⎟⎟
⎝ i =1 ⎠ N0
NR
1 2
Since: ∑i =1
| hi | = χ 2 N R
2

⎛ 1 2 ⎞ ES
SNR = ⎜ χ 2 N R ⎟
⎝2 ⎠ N0 Diversity of order N R

with
E{SNR} = N R
ES
N0
σ SNR 1
var{SNR} =
N R ES μ var = =
2 N0 mSNR 2 NR
Example: overall receiver gain with receiver diversity.

15

10 N R = 10
5
NR = 2
0

-5

NR = 1
-10

-15

-20

-25
0 20 40 60 80 100 120 140 160 180 200
Transmitter Diversity
h1
M y

s TX M hN R RX

NR = 1
NT NT
Transmit
Receive
Antennas Different paths Antennas

⎛ ES NT

y = ⎜⎜ ∑ hi ⎟⎟ s + N 0 w Equivalent to one channel,
with no benefit.
⎝ NT i =1 ⎠
Total energy equally distributed
on transmit antennas
However there is a gain if we use Space Time Coding.
Take the case of Transmitter diversity with two antennas

h1
x1[n]
y[n]
TX h2 RX

x2 [ n ]
Given two sequences s1[n], s2 [n]
code them within the two antennas as follows

x1 s1 −s * y[2n] =
ES
(h1s1 + h2 s2 ) + N 0 w1
2
2
x2 s2 s1*

2n 2n + 1
y[2n + 1] =
ES
2
( )
− h1s2* + h2 s1* + N 0 w2
This can be written as:

⎡ y[2n] ⎤ ES ⎡ h1 h2 ⎤ ⎡ s1 ⎤ ⎡ w1 ⎤
⎢ y *[2n + 1]⎥ = ⎢h* * ⎥⎢ ⎥
− h1 ⎦ ⎣ s2 ⎦
+ N0 ⎢ * ⎥
⎣ ⎦ 2 ⎣ 2 ⎣ w2 ⎦

To decode, notice that

⎡ z1 ⎤ ⎡ h1* h2 ⎤ ⎡ y[2n] ⎤ ⎛ ES ⎞ s
2 ⎡ 1⎤ ⎡ w%1 ⎤
⎢z ⎥ = ⎢ *
⎣ 2 ⎦ ⎣ h2
⎥⎢ * ⎥ = ⎜⎜
− h1 ⎦ ⎣ y [2n + 1]⎦ ⎝ 2
|| h || ⎟⎟ ⎢ ⎥ + ( )
N 0 || h || ⎢ ⎥
⎣ w% 2 ⎦
⎠ ⎣ s2 ⎦

Use a Wiener Filter to estimate “s”:

( )
sˆ1 = K h1* y[2n] + h2 y *[2n + 1]
K=
2 / ES
= K (h y[2n] − h y [2n + 1])
with
sˆ1 *
2 1
*
| h1 |2 + | h2 |2 +2 N 0 / ES
It is like having two independent channels

ES N 0 || h || w% 1
|| h ||2
2 z1
s1

s2 z2
ES
|| h ||2
2
N 0 || h || w% 2

|| h ||2 ES 1 2
SNR = || h || =| h1 | + | h2 | = χ 4
2 2 2

2 N0 2

Apart from the factor ½, it has the same SNR as the receive diversity of order 2.
WiMax Implementation

h1

h2

Subscriber
Station
Base Station

Down Link (DL): BS -> SS Transmit Diversity


Uplink (UL): SS->BS Receive Diversity
Down Link: Transmit Diversity

Use Alamouti Space Time Coding:

Transmitter:

X 2m IFFT TX
Data in Xn
Error
M-QAM buffer STC
Coding
IFFT TX
X 2 m −1

Block to be Space Time Coding


transmitted
X 2m − X 2*m −1

X 2 m −1 X 2*m

2m 2m + 1 time
Receiver:

Y2 m
X 2m
Xn FFT RX
Data out
Error Un-
M-QAM STD
Correction
buffer
FFT RX
X 2 m −1
Y2 m +1
Space Time Decoding:

( )
For each subcarrier k
compute: Xˆ 2 m [k ] = K H1*[k ]Y2 m [k ] + H 2 [k ]Y2*m +1[k ]
Xˆ 2 m −1 (
[k ] = K H *[k ]Y [k ] − H [k ]Y * [k ]
2 2m 1 2 m +1 )
2 / ES
with K=
| H1[k ] |2 + | H 2 [k ] |2 +2 N 0 / ES
Preamble, Synchronization and Channel Estimation with
Transmit Diversity (DL)

The two antennas transmit two preambles at the same time, using different sets of
subcarriers

p0 [ n ]
EVEN subcarriers
CP 128
+ +
64 128 128
L L
0 319
n k
− 100 0 − 100
p1[n]
CP -
128 +
ODD subcarriers
64 128 128

frequency
time
Both preambles have a symmetry:

p0 [n] = p0 [n − 128]
n = 128,...,319
p1[n] = − p1[n − 128]

p0 [ n ] received signal from


h0 [n] the two antennas

y[n]
h1[n]
p1[n]

Problems:
• time synchronization
• estimation of both channels
One possibility: use symmetry of the preambles

+
y0 [n] = 2h0 [n] * p0 [n]
64 128
+
y[n]
n0 + 128
64 256 z −128

n0
+
y1[n] = 2h1[n] * p1[n]
64 128

n0 + 128

The two preambles can be easily separated


MIMO Channel Simulation

Take the general 2x2 channel

e jϕ 3 e jϕ1
x1[n] Rayleigh y1[n]
ρT ρT
ρT ρT

x2 [ n ] Rayleigh y 2 [ n]
e jϕ 4 e jϕ 2
τ = [τ 1 L τ N ] sec
P = [ P1 L PN ] dB

0 ≤ ρT ≤ 1 Correlation at the transmitter


0 ≤ ρ R ≤ 1 Correlation at the receiver
OFDM Transceiver
Power
Amp
I
DAC LPF
M IFFT M P/S
DAC LPF
MOD BPF MOD BPF

Q
FIF FC − FIF
oscillator

oscillator
FIF FC − FIF
I
ADC LPF
M FFT M S/P
ADC LPF
DEM BPF DEM BPF

Q
Low Noise
Amp
Problems!!!

Non Linearities
Quantization Errors I/Q Imbalance

Power
Amp
I
DAC LPF
M IFFT M P/S
DAC LPF
MOD BPF MOD BPF

Q
FIF FC − FIF
oscillator
Peak to Average
Power Ratio
Frequency Drift
• Peak to Average Power Ratio (PAR)

A Single Carrier QPSK signal has a constant amplitude, since only the phase is
modulated.
A Multi Carrier OFDM signal has a random amplitude.
Example: see an OFDM signal with 1024 subcarriers. Plot 1,000 OFDM
symbols
0.015

Pmax=0.014

0.01

0.005

Pave=2e-4
0
0 2 4 6 8 10 12
5
x 10

Pmax/Pave=66.88=18dB
Effects:
• On the ADC: larger number of bits to accommodate large dynamics
• On the Power Amplifier: it has to be linear within a wider range

Remedies:
• the signal needs to be clipped to avoid saturating the amplifier
• the output power of the signal has to be reduced
Cause of large peaks:
OFDM signal is a sum of sinusoids. When all in phase, the sum can be large (peak
value) with respect to the average.

N −1
1
∑ Y [k ]e
jk 2Nπ n
y[n] =
N k =0

Assume all subcarriers Y[k] are i.i.d.:

{ } { } { }
N −1
1 1
Average Power: E | y[n] |2 = 2
N
∑ E
k =0
| Y [ k ] | 2
=
N
E | Y [ k ] |2

Peak Power when all subcarriers are aligned: {


E | y[n] | Y [k ] =| Y | ≤ Y
2
} 2

PPeak
∝N It increases with the number of subcarriers
PAve
How bad is PAR?
Probability Distribution of PAR

By the Central Limit Theorem the received signal y[ n] is gaussian


The amplitude is Rayleigh distributed and the power is Chi-square.
Therefore we can compute the Cumulative Density Function analytically:

(
Pr {PAR > z} = 1 − (1 − e )
− z 2.8 N
)
fairly accurate for number of carriers N ≥ 64
0
log10 P(PAR > z ) )
-1
N=128,256,512,1024
-2

-3

-4

-5

-6

-7
2 4 6 8 10 12 14
z dB

Notice:
1. The probability that PAR=N, the number of subcarriers, is almost zero;
2. The probability that PAR>4=12dB is of the order of 10 −4.5 − 10 −3.5
Remedies:
1. Data randomizing: if there is an error due to PAR, resend the data and most
likely it will be fine
2. Clipping: easy thing to do, at the expenses of introducing errors
3. Coding: potentially the best, but still not reliable solutions (not in the standard)
4. A number of iterative techniques: too complex for real time implementation
Effects of PAR on Digital to Analog
Converters (DAC)

For a fixed number of bits, we need to compromise between two sources of


errors:

vin [n] vout (t ) vin [n] vout (t )


DAC ⇔ ZOH

ηQCL

In the DAC there are two sources of errors:


• Quantization Error;
• Saturation error due to clipping
Compromise between Number of Bits in DAC and Clipping Level

VMAX
VMAX

Vmin Vmin
t t
Small clipping error, Large Large clipping error, Small
Quantization Noise Quantization Noise

We choose Clipping Level for best compromise between clipping error and
quantization noise.
ideal
vin [n] vout (t ) vin [n] vout (t )
DAC ⇔ ZOH

ηQCL

Total SNR due to Q and CL: SNRQCL = SNR + SNR( −1


Q CL )
−1 −1

12 × 2 2b
SNR due to Q : SNRQ =
(2μ ) 2
3 μ2 /2
SNR due to CL : SNR
CL = π
8 μe

where μ = ACLIP / σ
σ = E {| x[n] |2 }
b = number of bits per sample
See both combined:
MAX around μ = ACLIP / σ = 4 − 5

65

SNR( dB ) 60
b = 12
55
b = 11
50
b = 10
45

40
b=9

35 b=8

30 number of bits
25

20

15
2 3 4 5 6 7 8

μ = ACLIP / σ

Choose max clipping value: {


VMAX ≈ 4 E vin [n]
2
}
We have seen that the probability that PAR>4=12dB is very small.
Effects of PAR on Power Amplifiers

Rapp’s model of a Power Amplifier:

x(t ) y (t ) = g ( x(t ) )
g
1
Pout
g ( x) =
(1 + x )
1
2p 2p

p of the order of 3

Pave PMAX
Pin
Input
Back Off
(IBO)
Ideally you want the Input Back Off (IBO) to be larger than the PAR.

PMAX
IBO = 10 log10 > PAR
Pave

PAR ≤ 10log10 N

This can be excessive and very inefficient.


Example: with N=256 carriers you need a IBO of

IBO = PAR = 256 = 24dB

to guarantee that the amplifier always operates in the linear region.


Remedies: Clipping

⎧ Ae j∠ x[ n ] if | x[n] |> A
x[n] xCL [n] = ⎨
clip ⎩ x[n] if | x[n] |≤ A

| x[n] − xCL [n] |

| x[n] | A time

FT
time
wide band noise

frequency
x [n] = ∑ ai e jφi δ [n − ni ]
~
i

| x[n] | A

time
ni

xCL [n] = x[n] − ~


x [ n]
x[n]
clip Filter

xW [n] = x[n] * w[n] − ∑ ai e jφi w[n − ni ]


X (F ) i

≅ x[n] − ∑ ai e jφi w[n − ni ]


~
X (F )
i

W (F )

F
It has two effects:
1. Additive Noise in the demodulated subcarriers
2. It generates out of band noise, so we need to add a Low Pass Filter

The latter is not allowed, since it interferes with neighboring channels.


Example:
See one of OFDM symbol with the following parameters (this is not random but
chosen with high PAR):
FFT length N=256
Data Carriers: Nused=200
Large peak value
Modulation: 4QAM

0.4

| x[n] | 0.35

0.3

0.25

0.2

0.15

0.1

0.05

0
0 50 100 150 200 250 300

n
Clip it to 5dB (no filtering):

See the Frequency Spectrum:

nulls nulls
data
F
f =
1 Nused / 2 0 Nused / 2 1 FS
− −
2 N N 2
unfiltered clipped signal
5

-5
Large values in
the freq. guards -10

-15

-20

-25
-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5
Choose a filter with this characteristics:
f pass = Nused / (2 N )
1
f pass < f stop < 1 / 2

f pass 0 .5 f
f stop
In matlab: use firpm

h=firpm(M, [0,fpass,fstop,0.5]*2, [1,1,0,0]);

filter order, say M=40

window
1.2 FT of window
h[n] | H( f )|
10

1
0

0.8
-10

0.6
-20

0.4
-30

0.2 -40

0 -50

-0.2 -60
-15 -10 -5 0 5 10 15 -0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5
Clipped and Filtered:

Clipped only (no filter)

filtered and unfiltered clipped signal


10

-10

-20

-30
dB

-40

-50

-60

-70

-80
-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5
F/Fs
Negative effect on data!!!

1.5

0.5

-0.5

-1

-1.5
-1.5 -1 -0.5 0 0.5 1 1.5
Peak Cancellation
Detect and Cancel the peak to reduce out of band noise.

Detect Generate LPF


peak impulses

t0 t
| x(t ) | (x(t ) − Ae j∠ x ( t 0 )
)δ (t − t ) (x(t ) − Ae
0
j∠ x ( t 0 )
)g (t − t )
0
A 0 0

It spreads the error to


neighboring values.
t0
Larger in band noise
t
Effects:
• The LPF completely controls the out of band noise. It can be completely eliminated;
• It reduced PAR and therefore the Input Back Off.
• It causes an increase of in band noise and therefore a higher BER.
Effect of I/Q Imbalance

Ideally the received signal is of the form

N −1
y[n ] = ∑ Y [k ]e
jk 2Nπ n
= y I [n ] + jyQ [n ]
k =0

In practice the I and Q components have different gains, as

jϕQ
y [n ] = AI e jϕ I y I [n ] + jAQ e yQ [n ]
= Ae jϕ ( (1 + δ )e jε y I [n ] + j (1 − δ )e − jε yQ [n ])

AI + AQ AI − AQ
A= δ=
with AI + AQ
2
ϕ I + ϕQ ϕ I − ϕQ
ϕ = ε=
2 ϕ I + ϕQ
The two parameters δ ,ε express the magnitude and phase of the I/Q imbalance.
Assume them small:

(1 + δ )e jε ≅ (1 + δ )(1 + jε ) ≅ 1 + δ + jε
(1 − δ )e − jε ≅ (1 − δ )(1 − jε ) ≅ 1 − δ − jε

After a bit of algebra:

y [n ] = Ae jϕ ( y[n ] + (δ + jε ) y *[n ])
N −1
y[n ] = ∑ Y [k ]e
jk 2Nπ n
Substitute:
k =0

⎛ N −1 N −1
− jl 2Nπ n ⎞
y [n ] = Ae ⎜ ∑ Y [k ]e + (δ + jε ) ∑ Y [l]e
jϕ jk 2Nπ n *
to obtain: ⎟
⎝ k =0 l =0 ⎠
⎛ N −1 jk 2Nπ n ⎞
= Ae ⎜ ∑ (Y [k ] + (δ + jε )Y [ N − k ]) e
jϕ *

⎝ k =0 ⎠
The effect is subcarrier N-k leaking into subcarrier k

Y [k ] Y [N − k ]

k
N −k

δ + jε
It is as having extra noise added to the signal:

I/Q Imbalance
y[n ]
L
noise
The factor | δ + jε | is called Negative Frequency Rejection and it can be
modeled as covariance of additive noise.

I/Q Imbalance
w2 [n]
Define:
y[n ]
y[n] σ y2
SNRi = 10 log 2
σi
w1[n]
noise

Implementation Loss:

10 log 2
σ y2
σ1 + σ 2
2
σ y2 ⎛ σ 22 ⎞
(
− 10 log 2 = −10 log⎜⎜1 + 2 ⎟⎟ = −10 log 1 + 10
σ1 ⎝ σ1 ⎠
SNR1− SNR2
10
)
Example: let

SNRnoise = 20dB
SNRIQ = 35dB

Implementation Loss (
− 10 log 1 + 10
20−35
10
) = −0.135
Total SNR: SNRnoise + IL = 20 − 0.135 = 18.65dB
Frequency Synchronization

• Drifts and errors in the oscillator frequencies cause a frequency offset, like a doppler
shift;
• This causes loss of subcarriers orthogonality and Inter Carrier Interference (ICI).
• The effect of ICI can be modeled as additive noise, which can be quantified
30

SNR
25

20
dB

15

10

5
0 0.02 0.04 0.06 0.08 0.1
epsilon

Fact: to maintain satisfactory SNR we need to limit the frequency offset


to
| ΔF |
ε= ≤ 4%
FS / N
• Frequency Synchronization from Long Preamble.

x[n]
CP xP xP
n
n0 N = 128 N = 128

If there is a frequency offset (due to oscillator drifts or doppler shift) the


received signal has an extra phase term

y[n ] = y0 [n ]e j 2π Δf n

with Δf the digital frequency offset. Take the two received parts of the long
preamble:

y1[n ] = y0 [n ]e j ( 2π Δf n +α ) + w1[n ]
y2 [n ] = y0 [n ]e j(
2π Δf ( n + N ) +α )
+ w2 [n ] n = 0,..., N − 1
Comparing the two in vector form:

y2 = y1e j 2πΔf N + w

yi = [ yi [0] L yi [ N − 1]]
T
where

Then:

y1*T y2 =|| y1 ||2 e j 2π Δf N + y1*T w

which yields the estimate of the frequency offset

1 ⎛ Im { y1*T y2 } ⎞
Δf = arctan ⎜ ⎟
2π N ⎜ Re { y1 y2 } ⎟
*T
⎝ ⎠

Since, | arctan |< π then the frequency offset has to be at the most Δf <
1
2N
with N being the FFT length.

You might also like