Sei sulla pagina 1di 43

Modeling a 4G-LTE System in MATLAB

Senior Application Engineer MathWorks

2012 The MathWorks, Inc. 1

Agenda

4G LTE and LTE Advanced standards MATLAB and communications system design Case study: A 4G LTE system model in MATLAB
Modeling & simulation Simulation acceleration Path to implementation

Summary
2

LTE and LTE Advanced: an evolution


2G 2.5G 3G 3.5G 3.9G 4G beyond

IEEE standards

802.11a

802.11b

802.11g

802.11n

802.16d

802.16e 802.16m

W-CDMA (UMTS)

HSDPA HSPA+

European standards

GSM HSUPA

LTE

GPRS

Edge

LTE Advanced

IS-54

IS-136

North American standards


IS-95 CDMA2000 1x-EV Do

1990

2000

2004

2010

time
3

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 To be deployed in AMER, EMEA, APLA

A true broadband mobile standard


From 2 Mbps To To 1 Gbps (UMTS) (LTE Advanced) 100 Mbps (LTE)

How is this remarkable advance possible?

Integration of enabling technologies with sophisticated mathematical algorithms


OFDM MIMO (multiple antennas) Turbo Coding

Smart usage of resources and bandwidth


Adaptive modulation (QPSK, 16QAM, 64QAM) Adaptive coding (1/3, , Turbo Coding) Adaptive MIMO (2x1, 2x2, 4x2, 4x4, 8x8, ) Adaptive bandwidth (Up to 100 MHz)

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

Challenges: From specification to implementation

Simplify translation from specification to a model as blue-print for implementation Introduce innovative proprietary algorithms Dynamic system-level performance evaluation Accelerate simulation of large data sets Address gaps in the implementation workflow
7

Where does MATLAB fit in addressing these challenges?


MATLAB is the ideal language for algorithm design & system modeling Communication System Toolboxes extends breadth of MATLAB modeling tools MATLAB and Simulink are ideal environment for dynamic & large scale simulations Accelerate simulation with a variety of options in MATLAB Address implementation workflow gaps with
Automatic MATLAB to C/C++ and HDL code generation Hardware-in-the-loop verification
8

Case Study: Downlink physical layer of LTE (Release 10)

codewords

layers

antenna ports

Scrambling

Modulation mapper Layer mapper Precoding

Resource element mapper

OFDM signal generation

Scrambling

Modulation mapper

Resource element mapper

OFDM signal generation


2012 The MathWorks, Inc. 9

Modeling and simulation

2012 The MathWorks, Inc. 10

LTE Physical layer model in standard

Turbo Channel Coding

Downlink Shared Channel


Transport channel Physical channel

MIMO

OFDMA

Adaptation of everything

Reference: 3GPP TS 36 211 v10 (2010-12)


11

LTE Physical layer model in MATLAB


a0 , a1 ,..., a A 1

Transport block CRC attachment


b0 , b1 ,..., b B 1

Code block segmentation Code block CRC attachment


cr 0 , cr1 ,..., cr K r 1

Turbo Channel Coding

Channel coding
( (i ( d r i ) , d r1) ,..., d r i ) 0 D
r 1

Rate matching

MIMO

OFDMA

er 0 , er1 ,..., er Er 1
Code block concatenation

f 0 , f1 ,..., f G 1

codewords

layers

antenna ports

Scrambling

Modulation mapper Layer mapper Precoding

Resource element mapper

OFDM signal generation

Adaptation of everything
Scrambling Modulation mapper

Resource element mapper

OFDM signal generation

>> Open LTE system model


12

1. Overview of Turbo Coding


Error correction & coding technology of LTE standard Performance: Approach the channel capacity (Shannon bound) Represents an evolution of convolutional coding Based on concatenation of 2 Convolutional Coders and an Interleaver

13

Turbo Decoder
Uses iterative parallel concatenated decoding scheme
Uses two a posteriori probability (APP) decoders An Interleaver and a Deinterleaver

Performance depends on number of iterations

14

MATLAB Demo

= comm.ConvolutionalEncoder( = comm.ViterbiDecoder( InpuFormat, Hard,

15

MATLAB Demo

= comm.QPSKDemodulator( DecisionMethod,Log-Likelihood ratio

= comm.ViterbiDecoder( InpuFormat, Soft,

16

MATLAB Demo

= comm.TurboEncoder = comm.QPSKDemodulator( DecisionMethod,Log-Likelihood ratio = comm.TurboDecoder( NumIterations, 6,

17

LTE Downlink transport channel processing


3GPP TS 36.212 v10.0.0

Turbo Channel Coding


a0 , a1 ,..., a A 1

Transport block CRC attachment


b0 , b1 ,..., b B 1

Code block segmentation Code block CRC attachment


cr 0 , cr1 ,..., cr K r 1

Channel coding
( (i ( d r i ) , d r1) ,..., d r i ) 0 D
r 1

= comm.CRCEncoder(

Rate matching

er 0 , er1 ,..., er Er 1
Code block concatenation

= comm.TurboEncoder(

f 0 , f1 ,..., f G 1

>>Communications System Toolbox example (commlteDLSCH)


18

2. OFDM overview

Orthogonal Frequency Division Multiplexing


Multicarrier modulation scheme (FFT-based)

Sample the spectrum at uniform intervals called sub-carriers


Transmit data independently at each sub-carrier

Most important feature


Robust against multi-path fading Using low-complexity frequency-domain equalizers

19

OFDM & Multi-path Fading


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 }
Multi-path

Frequency-selective fading G()H()

*0 , 0 } *1 , 1 } y(n) =
=0

x( )

Y() = H()X()
Frequency-domain equalization

If G( ) 1 ( )

G( ) Y( ) ( )
20

How does LTE implement OFDM?


Frequency Nmax=2048

Resource element Interpolate vertically (Frequency)

Pilots

Resource block

Resource grid

0.5 1 1.5

Interpolate horizontally (Time)

2 Time (msec) 21

Expressing LTE OFDM Structure in MATLAB

switch prmLTEPDSCH.Nrb Case 25, N=512;

Depending on Channel Bandwidth

= 6*numRb + mod(v+vsh, 6) + 1;
Transmitter: Place pilots in regular intervals

Set Frequency-domain FFT size

Case 100, N=2048; = mean([hp(:,1,1,n) hp(:,3,1,n)])


Create OFDM signal

X=ifft(tmp,N,1);

= mean([hp(k,2,1,:) hp(k,4,1,:)])
Receiver: Estimate channel by interpolating in time & frequency
22

3. MIMO overview

Multiple Input Multiple Output Using multiple transmit and receive antennas
h1,1 h2,1 X
11 H= 21 31 41 12 22 32 42 13 h1,2 14 23 24 33 34 43 44

Y = H*X + n

h4,4 Channel Multiple Input Multiple Output


23

Where is MIMO being used?

Several wireless standards


802.11n: MIMO extensions of WiFi as of 2008 802.16e: As of 2005 in WiMax Standard 3G Cellular: 3GPP Release 6 specifies transmit diversity mode

4G LTE

Two main types of MIMO


Spatial multiplexing Space-Time Block Coding (STBC)

24

Spatial Multiplexing

A MIMO technique used in LTE standard Divide the data stream into several sub-streams and use multiple transmit antennas Orders of magnitude improvement in capacity
If channel fading profiles are independent, channel capacity grows linearly

MIMO Receiver essentially solves this system of linear equations

Y = HX + n

25

MIMO-OFDM overview
subcarrier

Y= + 11 21 = 31 41 1 1 = 31 41 12 22 32 42 2 2 32 42 13 23 33 43 3 3 33 43 14 24 34 44 4 4 34 44

subcarrier

What if 2 rows are linearly dependent?

X
subcarrier

Dimension =4; Rank =3; H is singular matrix (not invertible) subcarrier

=
To avoid singularity, pre-code input X Transform it with one of pre-selected V Time
26

MIMO Pre-coding in MATLAB

Choose one of Pre-coding matrices

Switch CodeBookIndex

Case 9, un = [1 j 1 j];

Transform Input with that Precoder


Out = Wn * in(:,numTx);
27

4. Link Adaptation overview

Examples of link adaptations Adaptive modulation (QPSK, 16QAM, 64QAM) Adaptive coding

Base rate 1/3 Turbo Coding Effective coding rate from (1/13) to (12/13)

Adaptive MIMO (2x1, 2x2, ,4x2,, 4x4, 8x8) Adaptive bandwidth


LTE: Up to 20 MHz LTE-A Up to 100 MHz

28

Adaptive MIMO: closed-loop pre-coding and layer mapping

Layer Mapping Base station

Precoding(*)

OFDM

RI (Rank Indicator)

Channel Rank Estimation

PMI (Precoder Matrix Indicator)

Precoder Matrix Estimation

mobile
29

Adaptive MIMO in MATLAB

Number of layers = Rank of the H Matrix


V= prmLTEPDSCH.numLayers;

Switch V

Based on number of available layers, fill up transmit antennas that guarantee inversion

case 4 out = complex(zeros(inLen1/2, v)); out(:,1:2) = reshape(in1, 2, inLen1/2).'; out(:,3:4) = reshape(in2, 2, inLen2/2).';

30

LTE Physical layer model in MATLAB

Turbo Channel Coding

MIMO

OFDMA

Adaptation of everything

>> Open LTE system model


31

Simulation Acceleration

2012 The MathWorks, Inc. 32

Simulation acceleration options in MATLAB


System Objects

Users Code

Parallel Computing

MATLAB to C

GPU processing

33

What is a Graphics Processing Unit (GPU)


Originally for graphics acceleration, now also used for scientific calculations Massively parallel array of integer and floating point processors

GPU cores complement CPU cores


Dedicated high-speed memory

34

Performance of Turbo Coders


Impressive (near Shannon bound) coding gain Cost: Computational complexity (number of iterations)

= comm.TurboEncoder comm.gpu.TurboEncoder = comm.TurboDecoder( comm.gpu.TurboDecoder( NumIterations, N,

35

Simulation acceleration performance with GPU System objects


= comm.TurboDecoder( NumIterations, N,
Version Elapsed time Acceleration

= comm.gpu.TurboDecoder( NumIterations, N,

CPU

8 hours

1.0

1 GPU

40 minutes

12.0

Cluster of 4 GPUs

11 minutes

43.0

Same results
36

Path to implementation C/C++ and HDL Code Generation

2012 The MathWorks, Inc. 37

MathWorks Solutions
DESIGN Simplified algorithm development using trusted functions

Algorithm Development

Bit-true models in the same environment


Fixed-Point

VERIFICATION

Automatic code generation for rapid ontarget prototyping of Hardware/Software

IMPLEMENTATION
C, C++ MCU DSP VHDL, Verilog FPGA ASIC

Co-simulation with major EDA and IDE for verification of Hardware / Software

INTEGRATION

38

Automatic Translation of MATLAB to C


er at e

Algorithm Design and Code Generation in MATLAB

it

verify / a cce l erate

With MATLAB Coder, design engineers can Maintain one design in MATLAB Design faster and get to C/C++ quickly Test more systematically and frequently Spend more time improving algorithms in MATLAB

39

HDL Workflow

Floating Point Model


Satisfies System Requirements

System Requirements

Executable Specification

MATLAB and/or Simulink Model

Continuous Verification

Model Elaboration
Develop Hardware Friendly Architecture Convert to Fixed-Point

Floating Point Model Model Elaboration

Determine Word Length Determine Binary Point Location

Implement Design
Generate HDL code using HDL Coder Import Custom and Vendor IP

Implement
Code Generation

Verification
Software co-simulation with HDL simulator Hardware co-simulation Verification

40

HDL Coder
Generate VHDL and Verilog Code for FPGA and ASIC designs

New: MATLAB to HDL


MATLAB Simulink

Automatic floating-point to fixed-point conversion HDL resource optimizations and reports Algorithm-to-HDL traceability Integration with simulation & synthesis tools

HDL Coder

Verilog and VHDL

41

HDL Verifier
Verify VHDL and Verilog code using cosimulation and FPGAs
New: FPGA Hardware-in-the Loop Verification

MATLAB

Simulink

HDL Verifier

Support for 15 Altera and Xilinx FPGA boards Use with:


HDL Coder Hand-written HDL code
42

ModelSim and Incisive Xilinx and Altera boards

Summary

MATLAB is an ideal language for LTE modeling and simulation Communications System Toolbox extend breadth of MATLAB modeling tools You can accelerate simulation with a variety of options in MATLAB
Parallel computing, GPU processing, MATLAB to C

Address implementation workflow gaps with


Automatic MATLAB to C/C++ and HDL code generation Hardware-in-the-loop verification

43

Potrebbero piacerti anche