Lab 1: Matlab/Simulink Code. 3. Digital Communications Fundamentals. 3.1
General Structure of a Digital Communication System. 3.2 Channel Losses and ...
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: WCDMA, 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, NOLOS
SC, 256OFDM, 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 Mod
Wireless Channel
TX
RX
• Design •Test • Automatically Generate Code
… 00010101011101010100101111 0010101010010010101001001001….
Digital Dem
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 Fs = 10kHz
⇒ ω0 = 2π
2, 000 Hz 2π = rad 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); plot(x);
x=[10*cos(0.1), … , 10*cos((2*pi/5)*100+0.1)]
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
where
j = −1
Imaginary Part
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)
x
Given a finite sequence of data
x[n], n = 0,..., N − 1
0
1. Define the FFT
X = FFT {x} N −1
where
X [k ] = ∑ x[n]e
− jk
2π n N
n =0
k = 0,..., N − 1
2. … and the IFFT (Inverse FFT)
x = IFFT { X } where
1 x[n] = N
N −1
∑ X [k ]e k =0
jk
2π n N
n = 0,..., N − 1
n
N −1
Meaning:
X [k ], k = 0,..., N − 1 is the component of the spectrum due to frequency
F F =k s N
sampling frequency data length
Example: Let
| X [k ] |
Fs = 10kHz N = 1024 0
220
F = 220
1023
10 kHz = 2.15kHz 1024
k
Example: example_of_fft.m Data length N=1024;
This corresponds to the “negative frequency” (disregard)
Sampling Frequency Fs=10kHz 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
Freq. = 1kHz
0
1000
2000
3000
4000
5000 Hz
6000
7000
8000
9000 10000
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 signal
output 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]
convolution
Input data
x 0
Impulse response
*
N −1
h M −1
0
=
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 ] x [ n − m] ∑
n = −∞
Again, you deal with signals of finite length
x[n], n = 0,..., N − 1
1 rx [m] = N
N −1
* x [ n ] x [n − m], m = − N + 1,..., N − 1 ∑ n =0
Example: White Noise with standard deviation σ x
⎧ 2 1 ⎪σ x = rx [m] = ⎨ N ⎪≈ 0, ⎩
N −1
rx [m]
2 | [ ] | , if m = 0 x n ∑ n =0
otherwise
m
white noise sequence
Example: xcorr_of_white_noise.m
4 3 2
% data sigx=sqrt(2)
1 0 -1
x=sigx*randn(1,1000); plot(x);
-2 -3 -4
% autocorrelation N=length(x);
0
100
200
300
400
500
600
700
800
900
1000
autocorrelation of x 1.8 1.6 1.4
rx=xcorr(x)/N; max_lag=length(x)-1; m=-max_lag:max_lag;
1.2 1 0.8 0.6 0.4
plot(m,rx)
0.2 0 -0.2 -1000
-800
-600
-400
-200
0 200 time lag
400
600
800
1000
2. Cross Correlation. To see if two signals are “correlated” with each other
ryx [m] =
+∞
* y [ n ] x [ n − m] ∑
n = −∞
With finite length signals:
x[n], n = 0,..., N − 1 y[n], n = 0,..., M − 1
1 ryx [m] = M
M −1
* y [ n ] x [n − m], m = − max( N , M ) + 1,..., max( N , M ) − 1 ∑ n =0
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
h=[1, 0, 0.2, -0.5, 2, -0.1]; % impulse response
2
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
2
1.5
1
zoom in 0.5
0
-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 128 samples
Length
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
destination
source of information
Carrier frequency
..01010110…
Carrier frequency
..01010010… Errors!
I Q
Digital Mod bits
symbols
pulses
Q
I
Discrete Time
channel
TX
RX
I Q
pulses
noise, disturbances, other users Continuous Time
Digital Dem
decision symbols Q
I
Discrete Time
bits
1.2 Goals
• Bit Error Rate within acceptable values; • Stay within the available resources:
Transmitted Power
TX ..01010110…
Channel Bandwidth Noise Interference Variability …
channel
Receiver Complexity
RX ..01010010… Errors!
1.3 Parameters FS =
bits
Nb =
bits symbol
ES =
Joules symbol
PT = ES FS Watts
symbols xI [n]
a[n]
symbols sec
Digital Modulator
DAC
xQ [n] DAC
pulses
xI (t )
xQ (t )
RF A=
bits aˆ[n]
symbols Digital Demodulator
y I [n]
PR PT
channel
PW = Watts ADC
yQ [n]
y I (t ) yQ (t )
w(t )
RF
ADC
Bit Error Rate
P SNR = R PW
pulses PR = A × PT Watts
Bits to Symbols: the Constellation Mapping in 802.16 (Gray Code)
Q (Im) I (Re)
BPSK [b0 ]
N b = 1 bit/symbol
−1
b0 →
+1
0
1
Q b1 → 0
4-QAM (QPSK) [b0 , b1 ]
N b = 2 bits/symbol
I 1 b0 →
−1
1
+1
0
Q 01
16-QAM [b0 , b1 , b2 , b3 ]
00 b1 , b0 →
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 )
pulse
symbol
x[n]
x(t ) DAC
nTS
gT (t )
t
n t
pulse
symbol
y[n] n
y (t ) ADC
g R (t )
t +∞
∑ x[n]g (t − nT )
n = −∞
S
nTS
t
Bandwidth, Symbol Rate and Transmitted Power
FS = 1 / TS Symbol Rate
g (t ) G (F ) TS
F (Hz )
t (sec)
B
Symbol interval
Energy per symbol Transmitted Power
Bandwidth +∞
+∞
−∞
−∞
ES = ∫ | g (t ) |2 dt = ∫ | G ( F ) |2 dF PT =
ES = ES × FS TS
Typical: Raised Cosine G (F )
g (t )
1.5
1 0.8
0.6
1
a=0.6 a=0.3
0.4
a=0.0
a=0.0 a=0.3 a=0.6
0.2
0.5
0
-0.2
-0.4 -4
-3
-2
-1
0 t
1
2
3
0≤ • smaller bandwidth • more ISI
4
0 -1.5
B −1 = α ≤ 1 FS
-1
-0.5
0 f
F FS
• larger bandwidth • less ISI
0.5
1
1.5
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 channel
A=
PR PT
Received Power PR = A × PT Watts w(t )
Noise N0 2
Noise Power Spectral Density B
B
F
PW = N 0 × B Watts
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
temperature in kelvin
Boltzman’s constant
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 SNR = ⎜ ⎝ B
⎞⎛ ES ⎞ ⎛ FS ⎜ ⎟ = Nb ⎜ ⎟⎜ ⎟ ⎠⎝ N 0 ⎠ ⎝ B
⎞⎛ Eb ⎞ ⎟⎟ ⎟⎜⎜ ⎠⎝ 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: A cos(2πFc t )
Transmitted
xI [n]
Q
DAC
gT (t )
I
DAC
xQ [n]
gT (t )
xQ (t )
yT (t ) − A sin (2πFc t )
A cos(2πFc t )
Received Q
xI (t )
y I [n] I
g R (t ) Ts
g R (t )
yQ [n]
y I (t ) yQ (t ) − A sin (2πFc t )
channel
y R (t )
Recall: Complex Numbers and Complex Exponentials amplitude
j = −1
phase (angle)
Ae
jα
= A cos(α ) + j A sin(α ) 1 424 3 1 424 3 Real Part Im
Imaginary Part
A α
Re
As a consequence:
Ae
j 2πFC t
= 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] Im
Ae j 2πFct gT (t )
DAC
Re{.}
yT (t ) Re
channel
y R (t )
y[n] = y I [n] + jyQ [n] 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 A j 2πFct e 2
x[n] = xI [n] + jxQ [n] DAC
gT (t )
Re
channel y[n] = y I [n] + jyQ [n] g R (t )
Im
Ts
Re
A − j 2πFct e 2
3.2 Baseband Channel Representation A j 2πFct e 2
x(t )
x(t )
gT (t )
gT (t )
C (F )
Real channel − FC
y (t )
FC
F
Complex Baseband channel
⇐ same ⇒ y (t )
g R (t )
A − j 2πFct e 2
A C+ ( F − FC ) 2 F
g R (t )
Advantage: all signals at lower frequencies, therefore much easier to simulate and analyze.
Digital Transmitter/Receiver with Baseband Channel:
Binary source of information
Complex
Encoder
Digital Modulator
x[n]
complex
Received Data Binary
Decoder
Digital Demodulator
Complex
y[n]
Baseband Channel
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 ⎞ ⎟⎟ = −162.4 − (−174) = 11.6dB SNR = ⎜⎜ ⎝ N 0 ⎠ dB 4. Finally
(Eb / N 0 )dB = 11.6 − 10 log10 2 = 8.6dB
4.2 Probability of Symbol Error in AWGN
( ) P ≈ 2Q ( 2 ) PS = Q 2 NEb0
BPSK: 4-QAM:
Eb N0
S
⎛ ⎛ 3 log M 2 PS ≈ 4Q⎜ ⎜ ⎜ ⎝ M −1 ⎝
M-QAM:
⎞⎛⎜ Eb ⎞⎟ ⎞⎟ ⎟⎜ ⎠⎝ N 0 ⎟⎠ ⎟⎠
Probability of Bit Error with Gray Coding:
M-QAM: where
Pb ≈
1 PS log 2 ( M )
1 Q( x) = 2π
+∞
−t e ∫
2
dt
x
⎛ x ⎞ = 12 erfc⎜ ⎟ ⎝ 2⎠
Symbol Error Rates (Exact Values) Symbol Error Rate
-1
10
BPSK 4QAM 16QAM 64QAM
-2
Prob. bit Error
10
-3
10
-4
10
-5
10
-6
10
-5
0
5
10 Eb/No dB
15
20
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
>>Bernoulli
Binary
QAM
Baseband Channel ⎞ ⎛ 1 PT ⎜ w[n] ⎟⎟ y[n] = A × ⎜ PT x[n] + SNR PR ⎠ ⎝
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 Symbol Error Rate
-1
10
BPSK 4QAM 16QAM 64QAM
-2
Prob. bit Error
10
-3
10
-4
10
-5
10
-6
10
-5
0
5
10 Eb/No dB
15
20
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 obstacles
1. Large Scale Fading: due to distance and multipath
3. Small Scale Fading: due to 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 antenna
⎛ λ ⎞ Prec = ⎜ ⎟ Ptransm ⎝ 4π d ⎠ c wavelength λ = F 2
d
Receive antenna
Path Loss in dB:
⎛ Ptransm ⎞ L = 10log10 ⎜ ⎟ = 20log10 ( F ( MHz )) + 20log10 (d (km )) + 32.45 ⎝ Prec ⎠
Free Space Attenuation
Lp
20dB / dec
ΔL p = 20dB
d0
10d 0
L p1 − L p 2 = 20dB ⇒ Prec1 = Prec 2 / 100
Valid for: • Satellite Communicationss • Point to Point LOS Microwave • Reference for Path Loss Models
log10 ( d ) distance
Multipath Models: Two Ray Reflection
Typical of open environments such as rural roads • Small to medium distances
1 + e − j Δφ
l hT
xT
constructive/distructive interference
xR
hR
Δφ = 2π • Large distances
xT + xR − l
λ
d
l hT
xT
xR
hR
monotonic
Two Ray Model Power Received -20 -40
f=3GHz
-60
f=30GHz
-80
Prec Ptrans
Prec/Ptran s in dB
f=0.3GHz
−40dB / dec
-100
independent of frequency
-120 -140 -160
Prec hT2 hR2 ≈ 4 Ptrans d
-180 -200 -220 0 10
10
1
2
10
3
10 d in meters
4
10
Assume: reflecting surface a pure dielectric
5
10
Compare the two: Free Space:
L p = −20 log10 (πλ / 4) + 20 log10 (d ) 40dB
Lp 20dB
Two Ray Approximation:
L p = −20 log10 (hT hR ) + 40 log10 (d ) 10−2
hT
hR
10−1 100 10
log10 ( d )
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 ⎝ d0 ⎠ Path loss exponent
dB
Reference distance • indoor 1-10m
Values for Exponent
γ
• outdoor 10-100m :
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 )
β = 44.9 − 6.55log10 (h ) urban
log10 ( d )
α = α 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
Restrictions:
⎧0 dB medium sized city and suburbs CM = ⎨ ⎩3 dB metropolitan area 1.5GHz < f < 2GHz 30m < hT < 200m 1m < hR < 10m 1km < d < 20km
Example:
PT
PR = ?
Base Station
d = 500m
Subscriber
Given:
⎛d ⎞ Channel: L p = 10γ log10 ⎜ ⎜ d ⎟⎟ + L0 + χ ⎝ 0⎠ d = 1m 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
P (χ > a ) = Where we define
1 2π σ
+∞ − 1 ⎛ x ⎞ ⎜ ⎟ 2⎝ σ ⎠
∫e a
erfc( x) =
2
+∞
2
dx =
∫e
−t 2
1 ⎛ a ⎞ erfc⎜ ⎟ 2 ⎝ 2σ ⎠
dt
π x ⎛ a −8 ⎞ 1 ⎟ P(SNR > a ) = P(8 + χ > a ) = erfc⎜ ⎜ 2 6⎟ 2 ⎝ ⎠ (1/2)erfc(x) 1 0.9
BPSK 75% of the time
0.75
0.8 0.7 0.6 0.5 0.4 0.3 0.2
16QAM 10% of the time
0.10
Required for low BER:
0.1 0 -1
-0.5
0
BPSK: a=3dB
0.5 x
1
1.5
2
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 )
t0
y (t ) = L + hkδ (t − t0 − τ k ) + ...
t0 τ 1 τ 2
time
Example for 100m path difference we have a time delay
100 102 1 τ= = = 3 μ sec 8 c 3 × 10
τ3
Typical values channel time spread:
x (t ) = δ (t − t0 )
t0
channel
Indoor
10 − 50 n sec
Suburbs
2 × 10 −1 − 2 μ sec
Urban Hilly
1 − 3 μ sec 3-10 μ sec
t0 τ 1 τ 2 τ MAX
b. Spreading in Frequency: motion causes frequency shift (Doppler) x ( t ) = X T e j 2π f c t
Receive
Transmit
y (t ) = YR e
j 2π ( f c +Δf )t
time
v for each path
Doppler Shift
fc
f c + Δf
Frequency (Hz)
time
Put everything together
Transmit
x(t )
Receive
y (t )
time
v
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
Several Reflectors:
each reflector has several paths all with different time delays and doppler shifts
x (t ) Transmit
v
Receive
y ( t ) = ∑ yl (t ) l
For each path with NO Line Of Sight (NOLOS):
r v
average time delay
• each time delay
τl
τ l + εk
• each doppler shift ΔFk =
v
λ
cos(θ k )
⎧⎛ ⎞⎫ j 2π ( Fc + ΔFk )( t −τ l −ε k ) yl (t ) = Re ⎨⎜ ∑ ak e x (t − τ l − ε k ) ⎟ ⎬ ⎠⎭ ⎩⎝ k
yl ( t )
Some mathematical manipulation …
⎧⎛ ⎞ j 2π Fct ⎫ j 2πΔFk t − j 2π ( Fc + ΔFk )τ k y (t ) = Re ⎨⎜ ∑ ak e 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
Assume
… leading to this:
x (t ) ≅ x (t − ε k )
r (t ) = cl (t ) x (t − τ l ) with
cl (t ) = ∑ ak e k
j 2πΔFk t − j 2π ( Fc +ΔFk )(τ l +ε k )
e
random, time varying
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
By the CLT cl (t ) is gaussian with:
E{cl (t )} = 0
since
θk
random uniformly distributed in [0, 2π ]
E {cl (t )c (t + Δt )} = ∑ E{| ak | }e M
* l
Assume Then
random
random
2
− j 2π
v
λ
cos θ k Δt
k =1
Pl E{| ak | } = M 2
1 * E {cl (t )cl (t + Δt )} = Pl M
M
∑e
− j 2π
v
λ
cos θ k Δt
k =1
1 = Pl 2π
2π
∫e 0
− j 2π
v
λ
⎧ − j 2π λv cosθ Δt ⎫ = Pl E ⎨ e ⎬ ⎩ ⎭
cos θ Δt
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 ) 1 ⎧ 2 Pl ⎪π F Sl ( F ) = ⎨ D 1 − ( F / FD ) 2 ⎪0 ⎩
And PSD
with
FD
if | F |< FD otherwise
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 x(t ) time
c1 (t )
τl
L
cl (t )
τN
delays
cN (t )
∑
y (t )
time
For each path
cl (t ) = Pl g (t ) • unit power • time invariant • from power distribution
• time varying (from autocorrelation)
Parameters for a Multipath Channel (No Line of Sight):
Power Attenuations:
[τ 1 [P1
Doppler Shift:
FD
Time delays:
τ2 L τL]
P2 L PL ]
sec dB 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
2. Ricean (Line of Sight)
FD
E{cl (t )} ≠ 0
Same as Rayleigh, plus Ricean Factor
K K PTotal 1+ K
Power through LOS
PLOS =
Power through NOLOS
PNOLOS =
1 PTotal 1+ K
Simulink Example M-QAM Modulation
Bernoulli Binary
Rectangular QAM
Bernoulli Binary Generator
Rectangular QAM Modulator Baseband
Channel Transmitter Attenuation Gain
Multipath Rayleigh Fading Channel
-KB-FFT Spectrum Scope
Bit Rate
Rayleigh Fading Channel Parameters
-K-
Receiver Gain
-K-
Rayleigh Fading
Set Numerical Values: velocity carrier freq.
Recall the Doppler Frequency:
Easy to show that:
v FD = FC c
3 × 108 m / sec
(FD )Hz ≈ (v )km / h (FC )GHz
modulation power
channel
Typical Received Power Spectrum
Bernoulli Binary
Rectangular QAM
Bernoulli Binary Generator
Rectangular QAM Modulator Baseband
-KChannel Transmitter Attenuation Gain
Multipath Rayleigh Fading Channel
-K-
Rayleigh Fading
-KB-FFT Spectrum Scope
Receiver Gain
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 Binary
Rectangular QAM
Bernoulli Binary Generator
Rectangular QAM Modulator Baseband
-KChannel Transmitter Attenuation Gain
Multipath Rayleigh Fading Channel
-K-
Rayleigh Fading
-KB-FFT Spectrum Scope
Receiver Gain
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
1
frequency
τ RMS
FT
Channel “Flat” up to the Coherence Bandwidth
Coherence Bandwidth
Bc =
5 × τ RMS
2. Flat Fading vs Frequency Selective Fading • Based on Channel Time Spread:
F
Bc =
1 5 × τ RMS
Frequency coherence
Signal Bandwidth
Flat Fading
Signal Bandwidth
< >
F
F
Just attenuation, no distortion
Frequency Coherence
Frequency Selective Fading
Distortion!!!
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
x (t )
| Δ t |≤ TC < 1 / F D
y (t )
⎫ ⎪ ⎪⎪ ⎬ same ⎪ response ⎪ ⎪⎭ different response
TC Coherence Time:
TC ≈
9 16π FD
Max Doppler
4. Slow Fading vs Fast Fading
• Based on Doppler Spread Delay and Time Coherence:
t
Time coherence
Symbol period
Slow Fading
Symbol period
< >
TC ≈
9 16π FD
t
Channel almost time invariant
Time Coherence
Fast Fading
Channel quickly changing
Summary of Time/Frequency spread of the channel
Frequency Spread Time Coherence
TC ≈
9 16π FD
S (t , F )
F FD
t
τ mean
τ RMS Frequency Coherence
Bc =
1 5 × τ RMS
Time Spread
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:
x[n]
y[n]
y[n] = h[n] * x[n] =
h[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:
y[n]
x[n]
?
1. Get data (same length for simplicity):
y
x 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
1. Collect Data and partition in blocks of length N time spread then there is almost no Inter Symbol Interference (ISI). channel
TS
1
0
time
Problem with this: Low Data Rate!!!
1 0 phase still recognizable
• this corresponds to Flat Fading
channel 1 / TS
Frequency
Frequency 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
1
time
0
1
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
0
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” 1
“symbol” 0
time 0
1
time 1
0
time
channel
Compare Single Carrier and Multi Carrier Modulation SC Frequency
Frequency
L
1
1
One symbol
L Frequency 0 1 0 1 1 1
Block of symbols
1
1
L
Flat Fading Channel: Easy Demod
channel
MC
subcarriers
0
0 1 0 1 1 1
L
Frequency Each subcarrier sees a Flat Fading 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
L
data
time
TSymbol
data t Tg guard interval
Tb data interval
data
NF ⎧ ⎫ ⎧ N2F ⎫ 2 ⎪ j 2πFC t ⎪ j 2π ( FC + kΔF )t ⎪ j 2πkΔFt ⎪ s (t ) = Re ⎨ A ∑ ck e A ∑ ck e ⎬ ⎬ = Re ⎨e N ⎪ ⎪ ⎪ k =− N F ⎪ 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 ) |
− Fc −
BW 2
− Fc
− Fc +
BW 2
Fk = FC + kΔF
Fc −
BW 2
Fc
Fc +
carrier BW = N F × ΔF
BW 2
F
We leave a “guard time” between blocks to allow multipath
TX
Guard Time Tg Data Block
the “guard time” is long enough, so the multipath in one block does not affect the next block
Data Block
Tb
L
RX
L TSymbol data+guard
}
RX
L
L
TX
NO Inter Symbol Interference!
{
}
s (t ) = Re e j 2πFct x(t )
Modulated Signal:
FC = carrier frequency
FT − FC
F
FC
F
FT
Baseband Complex Signal: k=
x(t ) = A
NF 2
∑ce
j 2πkΔF ( t −Tg )
k
k =− k ≠0
0 ≤ t ≤ TSymbol
NF 2
kΔF = subcarrier frequency offset
just a gain
ck = data
Limitations of OFDM TSymbol
Overhead (no data)
data t Tguard
Tb
•The Guard Time (or Cyclic Prefix) does not carry data and therefore it represents a loss of power Pdata
Tb = Psymbol = Tb + Tguard
•To minimize overhead
1 ⎛ Tguard 1 + ⎜⎜ ⎝ Tb
Tguard > t MAX ΔF =
FS >> FMAX N
to minimize CP overhead to ensure orthogonality
Are these two compatible? Since
FS 1 1 = = N NTS Tb
we have:
t MAX NF
TIME: 0
Tg
Tb
t
Sampling Interval TS = 1 / FS Sampling Frequency FS > Bandwidth
Freq spacing ΔF = FS / N
FREQUENCY:
− FS / 2 N F − F S 2 N
0
N F FS 2 N
FS / 2
F
This can be written as 1 x[n + L] = N
NF 2
∑c e
jk 2Nπ n
k
k =−
NF 2
NF 2
1 = N
∑c e
1 = N
N −1
k =1
jk 2Nπ n
k
∑ X [k ]e
1 + N
jk 2Nπ n
−1
∑c e
j ( N + k ) 2Nπ n
k
k =−
NF 2
=IFFT {X [k ]}
k =0
Where: X [ k ] = ck ,
k = 1,..., N F / 2
X [ N + k ] = ck ,
k = −1,...,− N F / 2
X [k ] = 0,
otherwise
positive subcarriers negative subcarriers
Guard Time with Cyclic Prefix (CP) x[ L],..., x[ L + N − 1] = IFFT {X [k ], k = 0,..., N − 1} 0
L + N −1
L
CP
IFFT{ X }
14243
14243
N
CP from the periodicity:
x[n] = x[ N + n]
⇒
x[0] = x[ N ] x[1] = x[ N + 1] ... x[ L − 1] = x[ L + N − 1]
OFDM Symbol
Cyclic Prefix
0
c1
0
M
x[L]
M
(N F / 2 )
0
0
IFFT
M
c− N F / 2 c−1
x[ L − 1] = x[ N + L − 1]
1
cN F / 2
data
M
n
k 0
x[0] = x[ N ]
M
N − (N F / 2)
M
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 demux Simulink > Math Operations > Matrix Concatenate
repeat last 16 entries [49:64, 1:64]
OFDM Demodulator:
Received Frame
Received Data 80
Remove CP
64
1 26 11 26
FFT
26 52 26
Concatenate in a vector
Signal Processing > Signal Management > Signal Attributes
Simulink > Signal Routing > Selector
demux
Simulink > Commonly Used Blocks > Terminator
Simulink > Math Operations > Matrix Concatenate
M=4 (QPSK)
Put Everything Together:
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]
To Frame
FFT frame
[Nx1]
[Nx1]
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 Service Specific Convergence Sublayer (CS)
SAP=Service Access Point Section 5
MAC-SAP MAC
MAC Common Part Convergence Sublayer (CS)
Security Sublayer
Section 6
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 OFDMA: 2048
OFDM: 256 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,4,8,12)x1.25MHz 8.75MHz
(1,2,4,8)x1.75MHz (1,4,8,12)x1.25MHz 8.75MHz
IEEE802.16 Structure data randomization
data De-rand.
Error Correction Coding
Error Correction Decoding
M-QAM mod
OFDM mod
M-QAM dem
OFDM dem
TX
RX
Choices: Coding rates
M-QAM
1/2
2
2/3
4
3/4
16
5/6
64
OFDM carriers
Channel B/width
256
1.25 MHz
512
5 MHz
1024
10 MHz
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 guard
Tb 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 Guard band
channel
Guard 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 2 ⎪ j 2πf ct j 2πkΔf ( t −Tg ) ⎪ s (t ) = Re⎨e ⎬ ∑Nused ck e k =− 2 ⎪ ⎪ k ≠0 ⎩ ⎭ | S( f ) |
− f c − BW 2
− fc
− f c + BW 2
f c − BW 2
fc carrier
f c + BW 2
f
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 WiMax
Fixed and Mobile WiMax
In 802.16 2004 we have
N FFT = 256 N used = 200
Fs − BW − 2 2
BW 2
Fs 2
Frequency Spacing Δf = 1 / data_symbol_length = 1 / Tb Sampling frequency Bandwidth
Fs = N FFT Δf BW = N used Δf =
N used 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 With n a factor (Table 213) of the order
8 86 144 316 57 256 n= , , , , ,≈ 7 75 125 275 50 200
IEEE 802.16, with N=256 data pilots nulls
X [k ]
k
n
↓
↓
0 12
x[n + L]
0
13
M
24 38 24 24 12
63 88 100 101 M
12 24
M
IFFT
155 156 168 193
24 218 24 12
M
243 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 k symbols Code Rate
Parameters:
k rc = n
(n, k , t ) ⎛ d min − 1 ⎞ t ≤ floor ⎜ ⎟ ⎝ 2 ⎠
where
d min ≤ n − k + 1
Max. number of errors corrected Minimum distance between codewords
L
C
t A
d min
D
L
B
codewords non -codewords
receive
decode A
transmit C A
channel
decoder
D where
d (C , A) ≤ t d ( D, A) > t
B
Error !!!
2. Probability of Error If the code corrects up to t errors, the probability that the wrong codeword is decoded is given by
⎛n⎞ j d min / 2 n− j k ⎜ ⎟ ( ) Pe ≤ ∑ ⎜ ⎟ p (1 − p ) ≤ (2 − 1) 4 p (1 − p ) j =t +1 ⎝ j ⎠ n
“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 Eb n
Bit Error Probability for HDD
⎛n⎞ j Pe n− j Pb ≈ ∑ j ⎜⎜ ⎟⎟ p (1 − p ) ≈ k j =t +1 ⎝ j ⎠ n
codeword error
bits per codeword
Some Probabilities of Error for BPSK:
Probability of Error: BPSK coded and uncoded -2
Uncoded
-2.5 -3
Golay (24,12,3)
log10(Prob of error)
-3.5
BCH (127,64,10)
-4 -4.5 -5 -5.5 -6 -6.5 -7
4
5
6
7 8 Eb/N0 dB
9
10
11
3. Reed Solomon Codes (non Binary Data)
(n, k , t )
⎛ 2m − k ⎞ ⎟⎟ t = floor ⎜⎜ ⎝ 2 ⎠
n = 2m − 1
coded symbols
errors corrected
k Create Subsystem It cannot be undone!
MQAM Mod
Channel MQAM Demod
Masked Subsystems In Simulink we can create customized blocks, where we can enter parameters values. Example: Reed Solomon Encoder and Decoder
RS Encoder
datablock data
RS Decoder
n'
encoded 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
Rate
M k n
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
[ y1
Polynomial description:
y2
y3 ] = [x1
⎡ a11 x2 ] ⎢ ⎣a21
a12 a22
a13 ⎤ a23 ⎥⎦
y1
0
1
x1
z −1
0
1
z −1
1
1
z −1
→ a11 = (10)8 (011)8 = 23
1
→ a12 = (11)8 (101)8 = 35
z −1
0
1
1
y2
x2
0
0
1 z −1
1
z −1
0
1
→ a22 = (0)8 (101)8 = 5
1
→ a23 = (1)8 (011)8 = 13
z −1
1
y3
Therefore the code is described by the matrix (all entries are octal) no connection x1 → y3
[ y1
y2
y3 ] = [x1
⎡23 35 0 ⎤ 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
[ y1 , y2 ] = x[a1 , a2 ] a1 = (1)8 (111)8 (001)8 = 171 a2 = (1)8 (011)8 (011)8 = 133 constrained length = 7
z −1
z −1
z −1
z −1
y2
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
encoder
K , y1[n], y2 [n],K
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: 0
1
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
1
0
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:
0
1
0
1
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 Raw Data in
RS encoder
nRS
RS parameters
CC encoder
CC parameters
• encoder/decoder • reduction • puncturing
n Encoded Data out
RS Encoder
(k + 16 − 2T , k ,8 − T ) 239
k
Zero Pad
255 RS (255,239,8)
k + 16
nRS = k + 16 − 2T
select
puncture
k
pRS = [11,..., 1,0,...,0] 23 123 k + 16 − 2T
2T
Convolutional Encoder with coding rate rCC
nRS
CC [171,133]
2nRS puncture
nRS n= rCC
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
MQAM
Data block k (bytes)
Coded block n (bytes)
Coding rate k/n
RS Code
CC coding 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 (bytes)
Coded block n (bytes)
Coding rate k/n
RS Code
CC coding rate
2
4
36
48
3/4
(40,36,2)
5/6
36 Raw Data in
RS encoder
40
CC encoder
40 = 48 5/6 Encoded Data out
RS parameters
k = 36
pRS = [11,..., 1,0,...,0] 23 123 36 + 16 − 2 × 6 = 40 2 × 6 = 12
CC parameters
pCC = [1,1,0,1,1,0,0,1,1,0]
This yields a table of parameters for each “Rate_ID”:
Rate ID
MQAM
Data block k
pRS
pCC
Coded block n (bytes)
coding rate
CC
(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
8* n = 192 symbols log 2( M )
Symbol Block
From Data Source
To IFFT RS
bytes:
k Row Data Block
CC
nRS Coded Data Block
MQAM
n Coded Data 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 Channel Estimation: estimate the frequency response of the channel
Time Synchronization: detect the beginning of the packet and OFDM 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 320 samples
320 samples
2 repetitions of a long pulse + CP
4 repetitions of a short pulse+CP
64
Tg
64
64
Td
64
64
64
Tg
128
128
Td
L
The standard specifies the Down Link preamble as QPSK for subcarriers between -100 and +100:
⎧± 1 ± j , PALL [k ] = ⎨ ⎩0,
k = −100,...,−1,+1,...,+100 otherwise
Using the periodicity of the FFT:
PALL [k ], k = 1,...,100
1
PALL [k ] = PALL [256 + k ], k = −100,...,−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 ] = ⎨ otherwise ⎩0,
P4 [k ]
p4 [ n]
FFT
L 0
4
8
64
64
64
0
252 255
255
p4 [ n]
Add Cyclic Prefix:
64 0
64
64
64
64
64 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 ] = ⎨ otherwise ⎩0,
P2 [k ]
p2 [ n]
FFT
L 0
2 4 6
8
128
252 255 254
128
0
255
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 ] = ⎨ otherwise ⎩0, 0 2
⎧ 2 PALL [k ], if k mod 2 = 1 P [k ] = ⎨ otherwise ⎩0, 1 2
With 4 Transmitting Antennas:
m=0
* ⎧ P 2 [k ], if k mod 4 = 0 P40 [k ] = ⎨ ALL otherwise ⎩0,
m = 1,2,3
* ⎧ P m ALL [ k + 2 − m], if k mod 4 = m P4 [k ] = ⎨ otherwise ⎩0,
Time Synchronization from Long Preamble 1. Coarse Time Synchronization using Signal Autocorrelation Received signal: preamble 64
128
OFDM Symbols
L
128
n0 Compute Crosscorrelation Coefficient: 127
ry2 [n] =
y[n]
z −128
xcorr
* − y [ n l ] y [n − 128 − l] ∑ l =0
2
127 ⎛ 127 2⎞ 2⎞ ⎛ ⎜ ∑ y[n − l] ⎟ × ⎜ ∑ y[n − 128 − l] ⎟ ⎠ ⎝ l =0 ⎠ ⎝ l =0
Time Synchronization from Long Preamble 1. Coarse Time Synchronization using Signal Autocorrelation Received signal: preamble 64
128
OFDM Symbols
L
128
n0 Compute Autocorrelation : 127
ry2 [n] =
y[n]
z −128
xcorr
* − y [ n l ] y [n − 128 − l] ∑ l =0
2
127 ⎛ 127 2⎞ 2⎞ ⎛ ⎜ ∑ y[n − l] ⎟ × ⎜ ∑ y[n − 128 − l] ⎟ ⎠ ⎝ l =0 ⎠ ⎝ l =0
Effect of Periodicity on Autocorrelation:
y[n] 64
128
L
128
n
n0 y[n − 128] 64
128
128
ry2 [n]
Ln MAX when
y[n] = y[n − 128]
1
n0 − 64
n0
n
127
* y [ n − l ] y [n − 128 − l] ∑
Compute it in Simulink:
2
l =0
ry2 [n]
y[n] DF FIR
1
|u|
In1 Conj. -128 z
u
2 >= 0.8
Product
Abs
Digital Filter
u
Math Function
Divide
Compare To Constant
1 Sync
Delay
-128 z |u|
u2
Abs1
Square
DF FIR
Delay1
max Product1 MinMax
Digital Filter2 -CConstant
127 ⎛ 127 2 ⎞⎛ 2⎞ ⎜ ∑ y[n − l] ⎟⎜ ∑ y[n − 128 − l] ⎟ ⎠ ⎝ l =0 ⎠⎝ l =0
Example: perfect channel (no spread in time)
ry [n]
The packet begins somewhere in here
64
2. Fine Time Synchronization using Cross Corelation with Preamble 127
* y [ n l ] p [l ] − ∑
y[n]
ryp [n] =
xcorr p[n]
2
l =0
127 ⎛ 127 2 ⎞⎛ 2⎞ ⎜ ∑ 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
L
128
n0
ryp2 [n]
n
1
p[n] 128
0
127
n
n0 − 128
n0
… with dispersive channel 127
* y [ n l ] p [l ] − ∑
y[n] ryp [n] =
xcorr p[n]
2
l =0
127 ⎛ 127 2 ⎞⎛ 2⎞ ⎜ ∑ 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] 64
128
L
128
n0
| h[n] | ryp [n]
n
1
p[n] 128
0
127
n
n0 − 128
n0
Compare the two (non dispersive channel):
Autocorrelation of received data
ry
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]
Σ
xcorr p[n]
ryp [n]
c[n]
ryp [n] 1
n − M +1
n M=max length of channel = length of CP
c[n]
M −1
c[n] = ∑ ryp [n − k ] k =0
Maximum energy
Example
y[n]
Σ
xcorr p[n]
ryp [n]
Impulse response of channel
c[n]
Auto correlation
y[n] max
Cross correlation
p[n]
Σ
c[n]
Autocorrelation (saw previously)
Detect MAX
Cross correlation
Sum
Channel Estimation Recall that, at the receiver, we need the frequency response of the channel:
m-th data block
⎧ X m [0] ⎪ ⎪ X [k ] M ⎨ m ⎪ M ⎪⎩ X m [ N − 1]
w[n] OFDM TX
h[n]
Transmitted:
M
OFDM RX
M
Ym [0] Ym [k ] Ym [ N − 1]
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 ] = H [k ] X p [k ] + W [k ], k = 0,...,255
Y [k ]
Y [255]
Y [k ] = H [k ] X p [k ] + W [k ], k = 0,...,255 Solve for
H [k ]
using a Wiener Filter (due to noise):
Hˆ [k ] =
Y [k ] X *preamble [k ] | X p [k ] |2 +σ w2 noise covariance
X p [k ] = 0 frequency response H [k ]
Problem: when
we cannot compute the corresponding
X p [k ] = ±1 ± j Fact: by definition,
X p [k ] = 0
if
k = 2,4,...,100 k = 156,158,...,254
otherwise (ie DC, odd values, frequency guards)
Two solutions: 1. Compute the channel estimate
Hˆ [k ] =
Y [k ] X *preamble [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 For the indices where
| X p [k ] |= 2
| X p [k ] |= 0
| X p [k ] |= 2
we can write:
2π L −1 − jk n⎞ ⎛ * N ⎟ 2 + W [k ] X *p [k ] Y [k ] X p [k ] = ⎜⎜ ∑ h[n]e ⎟ 0 = n ⎠ ⎝
(
h = Finv YX *p 64 × 1
k = 2,4,...,100
for
so that we have 100 equations and L=64 unknowns. This is solved by a matrix multiplication
or
100 × 1
k = 156,158,...,254
)
Simulink Implementation
Trigger when preamble is detected
h[n]
Channel Estimate out
Y [k ] Data in y[n]
H [k ] X *p [k ]
Example:
Spectrum of Received Signal
NOT TO SCALE
As expected, it does not match in the Frequency Guards
Estimated Frequency Response of Channel
Start after processing preamble
WiMax-2004 Demodulator 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
OFDM Symbol
m
k
nulls DC (null)
pilots data nulls
Expand the Demodulator
Demodulator
Channel tracking
Multiple Antenna Systems (MIMO)
M TX
M
M
M RX
NT
NR
Transmit Antennas
Receive 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
TX
s NT = 1 Transmit Antennas
y1
M
hN R
M RX
yNR NR Different paths
NR Receive Antennas
⎡ w1 ⎤ ⎡ y1 ⎤ ⎡ h1 ⎤ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ M M E s N M + = 0⎢ ⎥ ⎢ ⎥ ⎢ ⎥ S ⎢ wN ⎥ ⎢ y N ⎥ ⎢hN ⎥ ⎣ R⎦ ⎣ R⎦ ⎣ R⎦ Energy per symbol
Noise PSD
Assume we know the channels at the receiver. Then we can decode the signal as
NR
NR
NR
i =1
i =1
i =1
y = ∑ hi* yi = ES ∑ | hi |2 s + N 0 ∑ hi* wi signal and the Signal to Nose Ratio
⎛ NR 2 ⎞ ES SNR = ⎜⎜ ∑ | hi | ⎟⎟ ⎝ i =1 ⎠ N0
noise
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
2 2 2 | h | = N | h | = N χ ∑ i R R 2 i =1
assuming
{ }
E | h |2 = 1
and
(
)
ES ⎛ 1 2 ⎞ ES SNR = N R | h | = ⎜ NR χ2 ⎟ N0 ⎝ 2 ⎠ N0 2
From the properties of the Chi-Square distribution:
mSNR = E{SNR} = N R
σ SNR
ES N0
N R ES = var{SNR} = 2 N0
Define the coefficient of variation
better on average …
… but with deep fades!
μ var =
In this case we say that there is no diversity.
σ SNR mSNR
1 = 2
Recall the Chi-Square distribution: 1. Real Case. Let
y = x + x + ... + x 2 1
Then with
y = χ n2
2 2
2 n
xi ≈ N (0,1) real , i.i.d .
E{ y} = n 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 .
Then with
1 2 χ 2n 2 E{ y} = n
y=
1 var{ y} = n 2
2. Channels Completely Uncorrelated.
Since:
⎛ NR 2 ⎞ ES SNR = ⎜⎜ ∑ | hi | ⎟⎟ ⎝ i =1 ⎠ N0 NR 1 2 2 | hi | = χ 2 N R ∑ 2 i =1 ⎛ 1 2 ⎞ ES SNR = ⎜ χ 2 N R ⎟ ⎠ N0 ⎝2
with
E{SNR} = N R var{SNR} =
Diversity of order N R
ES N0
N R ES 2 N0
μ var =
σ SNR mSNR
=
1 2 NR
Example: overall receiver gain with receiver diversity.
15
N R = 10
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
s
TX M
y
hN R
RX
NR = 1
NT
NT
Transmit Antennas
⎛ ES y = ⎜⎜ ⎝ NT
Different paths
⎞ hi ⎟⎟ s + N 0 w ∑ i =1 ⎠
Receive Antennas
NT
Total energy equally distributed on transmit antennas
Equivalent to one channel, with no benefit.
However there is a gain if we use Space Time Coding. Take the case of Transmitter diversity with two antennas
h1
x1[n] TX
y[n] RX
h2
x2 [ n ]
s1[n], s2 [n]
Given two sequences
code them within the two antennas as follows
x1 x2
s1 s2
−s
* 2
s1*
2n 2n + 1
ES (h1s1 + h2 s2 ) + N 0 w1 y[2n] = 2 ES − h1s2* + h2 s1* + N 0 w2 y[2n + 1] = 2
(
)
This can be written as:
⎡ y[2n] ⎤ ⎢ y *[2n + 1]⎥ = ⎦ ⎣
ES 2
⎡ h1 ⎢h* ⎣ 2
h2 ⎤ ⎡ s1 ⎤ ⎡ w1 ⎤ + N0 ⎢ * ⎥ * ⎥⎢ ⎥ − h1 ⎦ ⎣ s2 ⎦ ⎣ w2 ⎦
To decode, notice that
⎡ z1 ⎤ ⎡ h1* ⎢z ⎥ = ⎢ * ⎣ 2 ⎦ ⎣ h2
⎞ s h2 ⎤ ⎡ y[2n] ⎤ ⎛ ES 2 ⎡ 1⎤ = ⎜⎜ || h || ⎟⎟ ⎢ ⎥ + ⎥⎢ * ⎥ − h1 ⎦ ⎣ y [2n + 1]⎦ ⎝ 2 ⎠ ⎣ s2 ⎦
(
⎡ w%1 ⎤ N 0 || h || ⎢ ⎥ ⎣ w% 2 ⎦
)
Use a Wiener Filter to estimate “s”:
( ) = K (h y[2n] − h y [2n + 1])
sˆ1 = K h1* y[2n] + h2 y *[2n + 1] sˆ1
* 2
*
1
with
2 / ES K= | h1 |2 + | h2 |2 +2 N 0 / ES
It is like having two independent channels
s1
ES || h ||2 2
N 0 || h || w% 1
z1
s2 ES || h ||2 2
|| h ||2 ES SNR = 2 N0
z2 N 0 || h || w% 2 1 2 || h || =| h1 | + | h2 | = χ 4 2 2
2
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: Data in
Error Coding
X 2m
Xn M-QAM
buffer
IFFT
TX
STC IFFT
TX
X 2 m −1 Block to be transmitted
Space Time Coding
X 2m
− X 2*m −1
X 2 m −1
X 2*m
2m
2m + 1
time
Receiver:
Y2 m Data out
Error Correction
Xn M-QAM
X 2m
FFT
Un-
RX
STD
buffer
FFT
X 2 m −1
RX
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ˆ [k ] = K H *[k ]Y [k ] − H [k ]Y * [k ] 2 m −1
with
K=
(
2
2m
1
2 / ES | H1[k ] |2 + | H 2 [k ] |2 +2 N 0 / ES
2 m +1
)
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
0
319
p1[n] CP 64
128 128
time
+
L
n
L 0
− 100
ODD subcarriers
128
frequency
k
− 100
Both preambles have a symmetry:
p0 [n] = p0 [n − 128] p1[n] = − p1[n − 128]
p0 [ n ]
n = 128,...,319
h0 [n]
received signal from the two antennas
y[n]
p1[n]
h1[n]
Problems: • time synchronization • estimation of both channels
One possibility: use symmetry of the preambles
y0 [n] = 2h0 [n] * p0 [n]
+ +
y[n] 64
n0
256
64 128 n0 + 128
z −128 −
+
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]
y1[n]
Rayleigh
ρT
ρT
ρT
ρT Rayleigh
x2 [ n ] e jϕ 4
τ = [τ 1 L τ N ] sec P = [ P1 L PN ] dB
0 ≤ ρT ≤ 1 Correlation at the transmitter 0 ≤ ρ R ≤ 1 Correlation at the receiver
y 2 [ n] e jϕ 2
OFDM Transceiver
M
IFFT
I
DAC
M
Power Amp LPF
P/S
MOD
BPF
MOD
BPF
LPF
DAC
Q
FC − FIF
FIF oscillator
FIF
M
FFT
M
ADC
I
LPF
S/P
DEM
oscillator
BPF
FC − FIF DEM
BPF
LPF
ADC
Q Low Noise Amp
Problems!!!
Non Linearities Quantization Errors
M
IFFT
M
DAC
I
I/Q Imbalance Power Amp LPF
P/S
MOD
BPF
MOD
BPF
LPF
DAC
Q
FC − FIF
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.
1 y[n] = N
N −1
∑ Y [k ]e
jk 2Nπ n
k =0
Assume all subcarriers Y[k] are i.i.d.:
Average Power:
{
}
1 E | y[n] |2 = 2 N
N −1 k =0
Peak Power when all subcarriers are aligned:
PPeak ∝N PAve
{
}
2 E | Y [ k ] | = ∑
{
{
1 E | Y [ k ] |2 N
}
E | y[n] | Y [k ] =| Y | ≤ Y 2
It increases with the number of subcarriers
} 2
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 fairly accurate for number of carriers
)
− z 2.8 N
N ≥ 64
)
log10 P(PAR > z ) )
0
-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 ) DAC
⇔
vin [n]
vout (t ) 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
t Small clipping error, Large Quantization Noise
Vmin Large clipping error, Small Quantization Noise
We choose Clipping Level for best compromise between clipping error and quantization noise.
t
vin [n]
vout (t ) DAC
ideal
⇔
vin [n]
vout (t )
ZOH
ηQCL Total SNR due to Q and CL: SNR due to Q :
(
12 × 2 2b SNRQ = (2μ ) 2 CL
=
π 8
3 μ2 /2
μe
μ = ACLIP / σ
σ = E {| x[n] |2 } b = number of bits per sample
)
−1 −1 CL
SNRQCL = SNR + SNR
SNR due to CL : SNR
where
−1 Q
See both combined: MAX around
μ = ACLIP / σ = 4 − 5
65
SNR( dB )
60
b = 12
55
b = 11
50
b = 10
45
b=9
40 35
b=8
30
number of bits
25 20 15
2
Choose max clipping value:
3
4
5
μ = ACLIP / σ
{
6
VMAX ≈ 4 E vin [n]
7
2
8
}
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 )
g g ( x) =
y (t ) = g ( x(t ) )
Pout
1
(1 + x ) 2p
1 2p
p of the order of 3 Pave PMAX
Input Back Off (IBO)
Pin
Ideally you want the Input Back Off (IBO) to be larger than the PAR.
IBO = 10 log10
PMAX > 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 xCL [n] = ⎨ if | x[n] |≤ A ⎩ x[n]
x[n] clip
| 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
ni
time
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 (F )
≅ x[n] − ∑ ai e jφi w[n − ni ] i
F
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
−
0
1 Nused / 2 − N 2
Nused / 2 N
unfiltered clipped signal 5
0
-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
1 2
f =
F FS
Choose a filter with this characteristics:
f pass = Nused / (2 N )
1
f pass < f stop < 1 / 2 f pass
f stop
0 .5
f
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 )|
1
10
0
0.8 -10
0.6
-20
0.4
-30
0.2
-40
0
-50
-0.2 -15
-10
-5
0
5
10
15
-60 -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 0 -10 -20
dB
-30 -40 -50 -60 -70 -80 -0.5
-0.4
-0.3
-0.2
-0.1
0 F/Fs
0.1
0.2
0.3
0.4
0.5
Negative effect on data!!!
1.5
1
0.5
0
-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 peak
Generate impulses
LPF
t0
| x(t ) |
A
(x(t ) − Ae 0
j∠ x ( t 0 )
t
)δ (t − t ) 0
(x(t ) − Ae 0
j∠ x ( t 0 )
)g (t − t ) 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
k =0
= y I [n ] + jyQ [n ]
In practice the I and Q components have different gains, as
y [n ] = AI e jϕ I y I [n ] + jAQ e
jϕQ
yQ [n ]
= Ae jϕ ( (1 + δ )e jε y I [n ] + j (1 − δ )e − jε yQ [n ]) with
A=
ϕ =
AI + AQ
δ=
2 ϕ I + ϕQ
ε=
2
AI − AQ AI + AQ
ϕ I − ϕQ ϕ 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
Substitute:
y[n ] = ∑ Y [k ]e
jk 2Nπ n
k =0
to obtain:
N −1 ⎛ N −1 jk 2Nπ n − jl 2Nπ n ⎞ * + (δ + jε ) ∑ Y [l]e y [n ] = Ae ⎜ ∑ Y [k ]e ⎟ l =0 ⎝ k =0 ⎠ jϕ
⎛ N −1 jk 2Nπ n ⎞ * = Ae ⎜ ∑ (Y [k ] + (δ + jε )Y [ N − k ]) e ⎟ ⎝ k =0 ⎠ jϕ
The effect is subcarrier N-k leaking into subcarrier k
Y [N − k ]
Y [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] y[n ]
Define:
y[n]
σ y2 SNRi = 10 log 2 σi
w1[n] noise
Implementation Loss:
(
σ y2 σ y2 ⎛ σ 22 ⎞ − 10 log 2 = −10 log⎜⎜1 + 2 ⎟⎟ = −10 log 1 + 10 10 log 2 2 σ1 + σ 2 σ1 ⎝ σ1 ⎠
SNR1− SNR2 10
)
Example: let
SNRnoise = 20dB SNRIQ = 35dB Implementation Loss
Total SNR:
(
− 10 log 1 + 10
20−35 10
) = −0.135
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
dB
20
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
n0
xP
xP
N = 128
N = 128
n
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 where
yi = [ yi [0] L yi [ N − 1]]
T
Then:
y1*T y2 =|| y1 ||2 e j 2π Δf N + y1*T w which yields the estimate of the frequency offset
⎛ Im { y1*T y2 } ⎞ 1 Δf = arctan ⎜ ⎟ * T ⎜ Re { y1 y2 } ⎟ 2π N ⎝ ⎠ Since,
| arctan |< π then the frequency offset has to be at the most
with N being the FFT length.
Δf