Professional Documents
Culture Documents
Modeling A 4G-Lte System in Matlab: Houman Zarrinkoub Phd. Product Manager Signal Processing & Communications Mathworks
Modeling A 4G-Lte System in Matlab: Houman Zarrinkoub Phd. Product Manager Signal Processing & Communications Mathworks
Simulation acceleration
Path to implementation
Summary
2
4G LTE and LTE Advanced
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 possible?
4
What MATLAB users care about LTE standard?
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
6
Where does MATLAB fit in addressing these challenges?
7
Case Study:
Downlink physical layer of LTE (Release 10)
codewords layers antenna ports
MIMO OFDMA
Adaptation of
everything
10
LTE Physical layer model in MATLAB
a0 , a1 ,..., a A 1
Transport block
CRC attachment
b0 , b1 ,..., b B 1
Channel coding
Rate matching
MIMO OFDMA
er 0 , er1 ,..., er Er 1
Code block
concatenation
Represents an evolution of
convolutional coding
= comm.ConvolutionalEncoder(
= comm.ViterbiDecoder(
InputFormat, Hard,
13
MATLAB Demo
= comm.QPSKDemodulator(
DecisionMethod,Log-Likelihood ratio
= comm.ViterbiDecoder(
InputFormat, Soft,
14
MATLAB Demo
= comm.TurboEncoder
= comm.QPSKDemodulator(
DecisionMethod,Log-Likelihood ratio
= comm.TurboDecoder(
NumIterations, 6,
15
OFDM Overview
16
OFDM & Multi-path Fading
H()
Frequency-selective fading
*2 , 2 }
G()H()
Multi-path
1
*0 , 0 }
*1 , 1 } y(n) = =0 x( )
Y() = H()X()
Frequency-domain equalization If G( ) 1 ( ) G( ) Y( ) ( )
17
How Does LTE Implement OFDM?
Frequency
Nmax=2048
Interpolate vertically
(Frequency)
Resource element
Pilots
Resource block
Interpolate horizontally
(Time)
Resource grid
0.5 1 1.5 2
Time (msec)
18
How to Implement LTE OFDM in MATLAB
Depending on
switch prmLTEPDSCH.Nrb Channel Bandwidth = 6*numRb + mod(v+vsh, 6) + 1;
Transmitter:
Case 25, N=512; Place pilots in regular intervals
Set Frequency-domain
FFT size
Case 100, N=2048;
= mean([hp(:,1,1,n) hp(:,3,1,n)])
19
MIMO Overview
h2,1 11 12 13 h1,2
14
22 23 24
X H= 21 Y
31 32 33 34
41 42 43 44
h4,4
Channel
Multiple Input Multiple Output
20
Where is MIMO being used?
21
Spatial Multiplexing
Divide the data stream into independent sub-streams and use multiple
transmit antennas
Y = HX + n
22
MIMO-OFDM overview Y= +
1 2 3 4
2 3 4
= 1
31 32 33 34
41 42 43 44
X
Dimension =4; Rank =3; Y
H = singular (not invertible)
=
Singular Value Decomposition
subcarrier
To avoid singularity:
1. Precode input with pre-selected V
Time 2. Transmit over antennas based on Rank
23
Adaptive MIMO: Closed-loop Pre-coding and Layer Mapping
Base station
Layer
Precoding(*) OFDM
Mapping
Channel Rank
Estimation
Rank Indicator
Precoder Matrix
Estimation mobile
Precoder Matrix Indicator
24
Adaptive MIMO in MATLAB
In Receiver:
Detect V = Rank of the H Matrix V= prmLTEPDSCH.numLayers;
= Number of layers
Switch V
25
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)
26
LTE Physical layer model in MATLAB
MIMO OFDMA
Adaptation of
everything
27
Simulation Acceleration
System
Objects
Parallel
Users Code Computing
MATLAB to C
GPU
processing
29
GPU Processing with
Communications System Toolbox
GPU System objects
Alternative implementation for many
comm.gpu.TurboDecoder
System objects take advantage of
comm.gpu.ViterbiDecoder
GPU processing
comm.gpu.LDPCDecoder
Use Parallel Computing Toolbox to comm.gpu.ViterbiDecoder
execute many communications comm.gpu.PSKDemodulator
algorithms directly on the GPU comm.gpu.AWGNChannel
Easy-to-use syntax
30
Example: Turbo Coding
Impressive coding gain
High computational complexity
Bit-error rate performance as a function of number of iterations
= comm.TurboDecoder(
comm.gpu.TurboDecoder(
NumIterations, N,
31
Simulation acceleration with GPU System objects
= comm.gpu.TurboDecoder(
NumIterations, N,
32
Path to implementation
C/C++ and HDL Code Generation
VERIFICATION
Automatic code generation for rapid on-
IMPLEMENTATION target prototyping of Hardware/Software
INTEGRATION
34
Automatic Translation of MATLAB to C
e
at
er
it
Algorithm Design and
Code Generation in
verify
MATLAB accel /
erate
35
HDL Workflow
Continuous Verification
Model Elaboration Model
Develop Hardware Friendly Architecture
Convert to Fixed-Point
Determine Word Length Model
Determine Binary Point Location Elaboration
Implement Design
Generate HDL code using HDL Coder Implement
Import Custom and Vendor IP Code Generation
Verification
Software co-simulation with HDL simulator
Hardware co-simulation Verification
36
Key Points
37