Modeling_a_4G_LTE_System_in_MATLAB_Houma (1)
Modeling_a_4G_LTE_System_in_MATLAB_Houma (1)
– Simulation acceleration
– Path to implementation
Summary
2
4G LTE and LTE
Distinguishing Features
Motivation
– Very high capacity & throughput
– Support for video streaming, web
browsing, VoIP, mobile apps
A true global standard
– Contributions from all across globe
– Deployed in AMER, EMEA, APLA
A true broadband
mobile standard
– From 2 Mbps (UMTS)
– To 100 Mbps (LTE)
– To 1 Gbps (LTE Advanced)
3
How is this remarkable advance
Academics
– Researchers contributing to future standards
– Professors
– Students
Practitioners
– System Engineers
– Software designers
– Implementers of wireless systems
Challenge in interaction and cooperation between these two groups
MATLAB is their common language
5
Challenges
From specification to implementation
7
Where does MATLAB fit in addressing these
8
Case Study:
Downlink physical layer of LTE (Release 10)
codewords layers antenna ports
MIMO OFDMA
Adaptation
of
everything
1
LTE Physical layer model
Reference: 3GPP TS 36 211 v10 (2010-12)
in
1
LTE Physical layer model in
a0 , a1,..., aA1
Transport block CRC attachment
b0 , b1 ,...,
Code block segmentation Code block CRC attachment
bB1
Channel
coding
Rate matching
MIMO OFDMA
er 0 , er1 ,..., er Er 1
Code block concatenation
1
Overview of Turbo
Performance: Approach
the channel capacity
(Shannon bound)
Represents an
evolution of
convolutional coding
1
Overview of Turbo
Based on an iterative
decoding scheme
1
MATLAB
=
comm.ViterbiDecod
er(… ‘InputFormat’,
1
MATLAB
= comm.QPSKDemodulator(
‘DecisionMethod’,’Log-Likelihood
=
comm.ViterbiDecoder
(…
1
MATLAB
= comm.TurboEncoder
= comm.QPSKDemodulator(
‘DecisionMethod’,’Log-Likelihood
ratio’
=
comm.TurboDecod
er(…
1
OFDM
1
OFDM & Multi-path
Multi-path propagation leads to frequency selective fading
Frequency-domain equalization is less complex and perfectly matches OFDM
We need to know channel response at each sub-carrier – We need pilots
H(ω
{ℎ2, 𝑑2}
) Frequency-selective fading
G(ω)H(ω)
1
{ℎ0,
Multi-
𝑑0 }
path
{ℎ1, 𝑑1}
ω
y(n) = 𝑛= ℎ𝑛 x( 𝑛 − 𝑑𝑛)
∑𝑁
Y(ω) = H(ω)X(ω) ω
1
OFDM & Multi-path
If G(ω) ≈ 𝐻−1(ω) G(ω) Y(ω) ≈ (ω)
Frequency-domain
equalization
2
How Does LTE Implement OFDM?
…
Frequency
Nmax=20
48
Interpolate
vertically
(Frequency)
Resource
element
Pilots
Resource block
Interpolate horizontally
(Time)
Resource grid
…
0.5
2
1.5 2
Time (msec)
2
How to Implement LTE OFDM in MATLAB
Depending on
Channel
switch prmLTEPDSCH.Nrb Bandwidth = 6*numRb + mod(v+vsh, 6) + 1;
Set Frequency-
domain
Case 100, N=2048; FFT size
= mean([hp(:,1,1,n) hp(:,3,1,n)])
2
MIMO Overview
h1,1
ℎ11 ℎ12 ℎℎ ℎℎ
2213 32 ℎ
4233 ℎ43
h23ℎ11,42
H= ℎ21 ℎ24 ℎ34
h2,1
h4,4
Channel
2
Multiple Input Multiple Output
2
Where is MIMO being used?
2
Spatial Multiplexing
Y = HX + n
2
Y=𝐻 ∗ + 𝑛
MIMO-OFDM overview
ℎ1 ℎ2 ℎ3 ℎ4
ℎ1 ℎ2 ℎ3 ℎ4
𝐻= ℎ ℎ3 ℎ3 ℎ3
3
1 2 3 4
X ℎ4 ℎ4 ℎ4 ℎ4
Dimension =4; Rank =3; Y
H = singular (not invertible)
Time 𝑡𝑛
subcarrier
2
� V arity:
� a 1. Precode input with pre-selected V
=
l 2. Transmit over antennas based on Rank
u
�
e
�
� D
e
c
�
� o
m
� p
�
o
� s
i
S
t
i
i
n
o
g
n
u
l
a To
r avoid
singul
3
Adaptive MIMO: Closed-loop Pre-coding and Layer Mapping
Base station
Layer
Precoding(*) OFDM
Mappin
g
Channel Rank
Estimation
Rank
Indicator
Precoder
Precoder Matrix Matrix mobile
Indicator
3
Adaptive MIMO in MATLAB
In Receiver:
Detect V = Rank of the H Matrix V= prmLTEPDSCH.numLayers;
= Number of layers
Switch V
3
Link Adaptation Overview
Examples of link adaptations
– Adaptive modulation
QPSK, 16QAM, 64QAM
– Adaptive coding
Coding rates from (1/13) to (12/13)
– Adaptive MIMO
2x1, 2x2, …,4x2,…, 4x4, 8x8
– Adaptive bandwidth
Up to 100 MHz (LTE-A)
3
LTE Physical layer model in MATLAB
MIMO OFDMA
Adaptation
of
everything
3
Simulation Acceleration
System Objects
Parallel
User’s Code Computing
MATLAB to C
GPU
processing
2
GPU Processing
Communications System Toolbox
GPU System objects
Alternative implementation for
comm.gpu.TurboDecoder
many System objects take
comm.gpu.ViterbiDecoder
advantage of GPU processing comm.gpu.LDPCDecoder
comm.gpu.ViterbiDecoder
Use Parallel Computing Toolbox to
comm.gpu.PSKDemodulator
execute many communications comm.gpu.AWGNChannel
algorithms directly on the GPU
Easy-to-use syntax
3
Example: Turbo
Impressive coding gain
High computational complexity
Bit-error rate performance as a function of number of iterations
=
= comm.gpu.TurboDecoder(…
comm.TurboDecoder(
‘NumIterations’, N,…
…
3
Simulation acceleration with GPU System
VERIFICATION
Automatic code generation for rapid on- target prototyping of Har
IMPLEMENTATION
INTEGRATION
3
Automatic Translation of MATLAB to C
3
HDL Workflow
Verification
Continuous
Model Elaboration
– Develop Hardware Friendly Architecture
– Convert to Fixed-Point
Determine Word Length Model Elaboration
Determine Binary Point Location
Implement Design
– Generate HDL code using HDL Coder Implement
– Import Custom and Vendor IP Code Generation
Verification
– Software co-simulation with HDL simulator Verification
– Hardware co-simulation
3
Key Points
3
– Hardware-in-the-loop verification