UNDERSTANDING LTE WITH MATLAB® - Gbv.de

9
UNDERSTANDING LTE WITH MATLAB® FROM MATHEMATICAL MODELING TO SIMULATION AND PROTOTYPING Dr Houman Zarrinkoub MathWorks, Massachusetts, USA WILEY

Transcript of UNDERSTANDING LTE WITH MATLAB® - Gbv.de

UNDERSTANDING LTE WITH MATLAB® FROM MATHEMATICAL MODELING TO SIMULATION AND PROTOTYPING

Dr Houman Zarrinkoub MathWorks, Massachusetts, USA

W I L E Y

Contents

Preface

List of Abbreviations

1 Introduction 1.1 Quick Overview of Wireless Standards 1.2 Historical Profile of Data Rates 1.3 IMT-Advanced Requirements 1.4 3GPP and LTE Standardization 1.5 LTE Requirements 1.6 Theoretical Strategies 1.7 LTE-Enabling Technologies

1.7.1 OFDM 1.7.2 SC-FDM 1.7.3 M1MO 1.7.4 Turbo Channel Coding 1.7.5 Link Adaptation

1.8 LTE Physical Layer (PHY) Modeling 1.9 LTE (Releases 8 and 9) 1.10 LTE-Advanced (Release 10) 1.11 MATLAB® and Wireless System Desig 1.12 Organization of This Book

References

2 Overview of the LTE Physical Layer 2.1 Air Interface 2.2 Frequency Bands 2.3 Unicast and Multicast Services 2.4 Allocation of Bandwidth 2.5 Time Framing 2.6 Time-Frequency Representation 2.7 OFDM Multicarrier Transmission

2.7.1 Cyclic Prefix 2.7.2 Subcarrier Spacing

2.7.3 Resource Block Size 2.7.4 Frequency-Domain Scheduling 2.7.5 Typical Receiver Operations

2.8 Single-Carrier Frequency Division Multiplexing 2.9 Resource Grid Content 2.10 Physical Channels

2.10.1 Downlink Physical Channels 2.10.2 Function of Downlink Channels 2.10.3 Uplink Physical Channels 2.10.4 Function of Uplink Channels

2.11 Physical Signals 2.11.1 Reference Signals 2.11.2 Synchronization Signals

2.12 Downlink Frame Structures 2.13 Uplink Frame Structures 2.14 MIMO

2.14.1 Receive Diversity 2.14.2 Transmit Diversity 2.14.3 Spatial Multiplexing 2.14.4 Beam Forming 2.14.5 Cyclic Delay Diversity

2.15 MIMO Modes 2.16 PHY Processing 2.17 Downlink Processing 2.18 Uplink Processing

2.18.1 SC-FDM 2.18.2 MU-M1MO

2.19 Chapter Summary References

(S)

3 MATLAB for Communications System Desig 3.1 System Development Workflow 3.2 Challenges and Capabilities 3.3 Focus 3.4 Approach 3.5 PHY Models in MATLAB 3.6 MATLAB 3.7 MATLAB Toolboxes 3.8 Simulink 3.9 Modeling and Simulation

3.9.1 DSP System Toolbox 3.9.2 Communications System Toolbox 3.9.3 Parallel Computing Toolbox 3.9.4 Fixed-Point Designer

Contents Vl l

3.10 Prototyping and Implementation 53 3.10.1 MATLAB Coder 53 3.10.2 Hardware Implementation 54

3.11 Introduction to System Objects 54 3.11.1 System Objects of the Communications System Toolbox 54 3.11.2 Test Benches with System Objects 57 3.11.3 Functions with System Objects 58 3.11.4 Bit Error Rate Simulation 60

3.12 MATLAB Channel Coding Examples 60 3.12.1 Error Correction and Detection 61 3.12.2 Convolutional Coding 62 3.12.3 Hard-Decision Viterbi Decoding 63 3.12.4 Soft-Decision Viterbi Decoding 64 3.12.5 Turbo Coding 66

3.13 Chapter Summary 68 References 69

4 Modulation and Coding 71 4.1 Modulation Schemes of LTE 72

4.1.1 MATLAB Examples 73 4.7.2 BER Measurements 11

4.2 Bit-Level Scrambling 79 4.2.1 MATLAB Examples 80 4.2.2 BER Measurements 83

4.3 Channel Coding 85 4.4 Turbo Coding 85

4.4.1 Turbo Encoders 86 4.4.2 Turbo Decoders 87 4.4.3 MATLAB Examples 87 4.4.4 BER Measurements 89

4.5 Early-Termination Mechanism 93 4.5.1 MATLAB Examples 94 4.5.2 BER Measurements 95 4.5.3 Timing Measurements 98

4.6 Rate Matching 99 4.6.1 MATLAB Examples 100 4.6.2 BER Measurements 104

4.7 Codeblock Segmentation 105 4.7.1 MATLAB Examples 106

4.8 LTE Transport-Channel Processing 107 4.8.1 MATLAB Examples 107 4.8.2 BER Measurements 110

4.9 Chapter Summary 112 References 113

viii Contents

115 115 116 116 117 117 121 121 122 123 124 124 125 126 127 127 128 128 130 132 136 137 140 141 143 145 146 147

5.18.1 The SISO Case 148 5.18.2 The SIMO Case 155

5.19 Chapter S ummary 164 References 165

6 MIMO 167 6.1 Definition of MIMO 167 6.2 Motivation for MIMO 168 6.3 Types of MIMO 168

6.3.1 Receiver-Combining Methods 169 6.3.2 Transmit Diversity 169 6.3.3 Spatial Multiplexing 169

6.4 Scope of MIMO Coverage 170 6.5 MIMO Channels 170

® 6.5.1 MATLAB Implementation 171 6.5.2 LTE-Specific Channel Models 173 6.5.3 MATLAB Implementation 175

5 5.1

5.2 5.3 5.4 5.5 5.6 5.7 5.8

5.9 5.10 5.11 5.12 5.13 5.14 5.15 5.16 5.17 5.18

OFDM Channel Modeling 5.1.1 Large-Scale and Small-Scale Fading 5.1.2 Multipath Fading Effects 5.1.3 Doppler Effects

5.1.4 MATLAB® Examples Scope Workflow OFDM and Multipath Fading OFDM and Channel-Response Estimation Frequency-Domain Equalization LTE Resource Grid Configuring the Resource Grid 5.8.1 CSR Symbols 5.8.2 DCI Symbols 5.8.3 BCH Symbols 5.8.4 Synchronization Symbols 5.8.5 User-Data Symbols Generating Reference Signals Resource Element Mapping OFDM Signal Generation Channel Modeling OFDM Receiver Resource Element Demapping Channel Estimation Equalizer Gain Computation Visualizing the Channel Downlink Transmission Mode 1

Contents ix

6.5.4 Initializing MIMO Channels 176 6.5.5 Adding AWGN 111

6.6 Common MIMO Features 178 6.6.1 MIMO Resource Grid Structure 178 6.6.2 Resource-Element Mapping 179 6.6.3 Resource-Element Demapping 183 6.6.4 CSR-Based Channel Estimation 186 6.6.5 Channel-Estimation Function 188 6.6.6 Channel-Estimate Expansion 190 6.6.7 Ideal Channel Estimation 194 6.6.8 Channel-Response Extraction 196

6.7 Specific MIMO Features 197 6.7.7 Transmit Diversity 197 6.7.2 Transceiver Setup Functions 205 6.7.3 Downlink Transmission Mode 2 215 6.7.4 Spatial Multiplexing 221 6.7.5 MIMO Operations in Spatial Multiplexing 225 6.7.6 Downlink Transmission Mode 4 234 6.7.7 Open-Loop Spatial Multiplexing 248 6 7.8 Downlink Transmission Mode 3 253

6.8 Chapter Summary 260 References 262

7 Link Adaptation 263 7.1 System Model 264 7.2 Link Adaptation in LTE 265

7.2.1 Channel Quality Estimation 266 7.2.2 Pre coder Matrix Estimation 266 7.2.3 Rank Estimation 266

7.3 MATLAB® Examples 266 7.3.1 CQI Estimation 267 7.3.2 PMI Estimation 270 7.3.3 RI Estimation 27'1

7.4 Link Adaptations between Subframes 275 7.4.7 Structure of the Transceiver Model 275 7.4.2 Updating Transceiver Parameter Structures 276

7.5 Adaptive Modulation 277 7.5.7 No Adaptation 211 7.5.2 Changing the Modulation Scheme at Random 278 7.5.3 CQI-Based Adaptation 279 7.5.4 Verifying Transceiver Performance 280 7.5.5 Adaptation Results 281

7.6 Adaptive Modulation and Coding Rate 283 7.6.7 No Adaptation 283 7.6.2 Changing Modulation Scheme at Random 283 7.6 J CQI-Based Adaptation 284

X Contents

7.6.4 Verifying Transceiver Performance 285 7.6.5 Adaptation Results 285

7.7 Adaptive Precoding 287 7.7.1 PMI-Based Adaptation 289

7.7.2 Verifying Transceiver Performance 290 7.7.3 Adaptation Results 291

7.8 Adaptive MIMO 291 7.8.1 RI-Based Adaptation 293 7.8.2 Verifying Transceiver Performance 294 7.8.3 Adaptation Results 294

7.9 Downlink Control Information 294 7.9.1 MCS 296 7.9.2 Rate of Adaptation 298 7.9.3 DC1Processing 298

7.10 Chapter Summary 302 References 303

8 System-Level Specification 305 8.1 System Model 306

8.1.1 Transmitter Model 306 8.1.2 MATLAB Model for a Transmitter Model 308 8.1.3 Channel Model 310 8.1.4 MATLAB Model for a Channel Model 310 8.1.5 Receiver Model 311

8.1.6 MATLAB Model for a Receiver Model 313 8.2 System Model in MATLAB 315 8.3 Quantitative Assessments 316

8.3.1 Effects of Transmission Modes 317 8.3.2 BER as a Function of SNR 319

8.3.3 Effects of Channel-Estimation Techniques 320 8.3.4 Effects of Channel Models 322 8.3.5 Effects of Channel Delay Spread and Cyclic Prefix 322 8.3.6 Effects of MIMO Receiver Algorithms 324

8.4 Throughput Analysis 325 8.5 System Model in Simulink 326

8.5.1 Building a Simulink Model 328 8.5.2 Integrating MATLAB Algorithms in Simulink 328 8.5.3 Parameter Initialization 336 8.5.4 Running the Simulation 339 8.5.5 Introducing a Parameter Dialog 341

8.6 Qualitative Assessment 349 8.6.1 Voice-Signal Transmission 350 8.6.2 Subjective Voice-Quality Testing 351

8.7 Chapter Summary 351 References 352

Contents XI

9 Simulation 353 9.1 Speeding Up Simulations in MATLAB 353 9.2 Workflow 354 9.3 Case Study: LTE PDCCH Processing 355 9.4 Baseline Algorithm 356 9.5 MATLAB Code Profiling 358 9.6 MATLAB Code Optimizations 360

9.6.1 Vectorization 361 9.6.2 P reallocation 367 9.6.3 System Objects 371

9.7 Using Acceleration Features 383 9.7.1 MATLAB-to-C Code Generation 383 9.7.2 Parallel Computing 385

9.8 Using a Simulink Model 387 9.8.1 Creating the Simulink Model 388 9.8.2 Verifying Numerical Equivalence 389 9.8.3 Simulink Baseline Model 390 9.8.4 Optimizing the Simulink Model 391

9.9 GPU Processing 399 9.9.1 Setting up GPU Functionality in MATLAB 399 9.9.2 GPU-Optimized System Objects 400 9.9.3 Using a Single GP U System Object 401 9.9.4 Combining Parallel Processing with GPUs 403

9.10 Case Study: Turbo Coders on GPU 406 9.10.1 Baseline Algorithm on a CPU 407 9.10.2 Turbo Decoder on a GPU 410 9.10.3 Multiple System Objects on GPU 411 9.70.4 Multiple Frames and Large Data Sizes 413 9.10.5 Using Single-Precision Data Type 416

9.11 Chapter Summary 419

10 Prototyping as C/C++ Code 421 10.1 Use Cases 422 10.2 Motivations 422 10.3 Requirements 422 10.4 MATLAB Code Considerations 423 .10.5 How to Generate Code 423

10.5.1 Case Study: Frequency-Domain Equalization 424 10.5.2 Using a MATLAB Command 424 10.5.3 Using the MATLAB Coder Project 426

10.6 Structure of the Generated C Code 429 10.7 Supported MATLAB Subset 432

10.7.1 Readiness for Code Generation 433 10.7.2 Case Study: Interpolation of Pilot Signals 434

10.8 Complex Numbers and Native C Types 436

J

Contents

10.9 Support for System Toolboxes 438 10.9.1 Case Study: FFT and Inverse FFT 439

10.10 Support for Fixed-Point Data 444 10.10.1 Case Study: FFT Function 445

10.11 Support for Variable-Sized Data 447 10.11.1 Case Study: Adaptive Modulation 448 10.11.2 Fixed-sized Code Generation 449 10.11.3 Bounded Variable-Sized Data 454 10.11.4 Unbounded Variable-Sized Data 456

10.12 Integration with Existing C/C++ Code 458 10.12.1 Algorithm 458 10.12.2 Executing MATLAB Testbench 460 10.12.3 Generating C Code 463 10.12.4 Entry-Point Functions in C 463 10.12.5 C Main Function 467 10.12.6 Compiling and Linking 468 10.12.7 Executing C Testbench 469

10.13 Chapter Summary 471 References 471

11 Summary 473 11.1 Modeling 473

11.1.1 Theoretical Considerations Al A 11.1.2 Standard Specifications Al A

11.1.3 Algorithms in MATLAB® Al A 11.2 Simulation 476

11.2.1 Simulation Acceleration 476 11.2.2 Acceleration Methods All 11.2.3 Implementation All

11.3 Directions for Future Work 477 11.3.1 User-Plane Details 478 11.3.2 Control-Plane Processing 479 11.3.3 Hybrid Automatic Repeat Request 479 11.3.4 System-Access Modules 479

11.4 Concluding Remarks 480

Index 483