Communications System Toolbox
LTE Tutorial (Discovery)
Communications System Toolbox enables you to simulate link-level models of communications systems. Through simulations you can analyze system response to the noise and interference inherent in communication channels, explore what-if scenarios and evaluate the tradeoffs between competing system architectures and parameters, and obtain expected measures of performance to evaluate real implementations of your designs.
The physical layer of communications systems provides transport support to the data generated at higher communication layers. Physical layer models contain three components:
Communications System Toolbox provides a comprehensive set of algorithms and tools to specify the three components of physical layer models. The system toolbox also includes examples for many communications standards such as 802.11 (Wi-Fi), 802.16 (WiMAX), DVB.S2, Bluetooth, and Advanced Television Systems Committee (ATSC) digital television. These standards examples illustrate how algorithms and tools of the system toolbox are used to efficiently model and simulate real-world communications systems.
Link-level simulations include baseband transmitter and receiver operations. Communications System Toolbox provides a comprehensive suite of algorithms for transmitter and receiver components that help you customize your system and avoid the need to create building-block algorithms from scratch. The algorithms include:
Each algorithm in Communications System Toolbox comes with a well-defined set of parameters. With these parameters you can customize your physical layer models, match their performance with those specified in various standards, or use them as building blocks for new and innovative systems.
The algorithms provided in the system toolbox are available as MATLAB functions, System objects, and Simulink blocks. For example, an OFDM modulator algorithm can be specified as a System object or a Simulink block. These two representations of the same algorithm have identical parameter sets, so when they are executed with same input variable, they produce numerically identical results.
Communications System Toolbox provides algorithms and tools for modeling noise, fading, interference, and other distortions that are typically found in communication channels. The system toolbox supports the following types of channels:
Communications System Toolbox also includes standard channel specifications, such as LTE MIMO channels, COST 207, 3GPP, ITU-R 3G, TU-R HF, and GSM/EDGE channel models. With a concise and configurable set of parameters, channel models of the system toolbox allow you to accurately model most communication channels.
The MIMO, Rayleigh, and Rician fading channels of Communications System Toolbox have built-in visualization tools to show the channel impulse response, frequency response, or Doppler spectrum. Using these tools, you can observe during simulations the effects of a number of wireless propagation phenomena including multipath scattering effects, time dispersion, and Doppler shifts that arise from relative motion between the transmitter and the receiver.
Characterizing the real performance of a communications system depends not only on accurate channel modeling, but also on the effects of impairments introduced by communications devices. Communications System Toolbox provides a number of RF impairment models that include:
For example, the memoryless nonlinearity algorithm features several nonlinearity methods (cubic polynomial, hyperbolic tangent, Saleh, Ghorbani, and Rapp). The algorithm allows you to model a transmit-side high-power amplifier (HPA) that amplifies the modulated signal before it is transferred to the antenna for transmission. You can include more complex RF impairments and RF circuit models in your design using SimRF™.
Using Communications System Toolbox hardware support packages, you can connect your transmitter and receiver models to external radio devices. This feature enables you to replace the simulated channels and impairments in your end-to-end model with live radio signals and then validate your design with over-the-air testing and software-defined radio (SDR) experiments.
You can perform radio-in-the-loop simulations by a) generating custom waveforms in your baseband transmitter models, b) transmitting your waveform using SDR devices or instruments, c) capturing received samples with SDR devices or instruments, and d) processing received samples inside your baseband receiver models.
You can use the supported hardware as a radio peripheral with the supplied bitstream and also run your own design in the FPGA with the automated targeting workflow using HDL Coder™. Communications System Toolbox supports the following radio devices:
The design and simulation of a communications system requires analyzing its response to the noise and interference inherent in real-world environments, studying its behavior using graphical and quantitative means, and determining whether the resulting performance meets standards of acceptability.
Communications System Toolbox offers several standard measurements for quantitatively characterizing system performance:
The system toolbox also provides visualization scopes that include:
As BER computations are fundamental to the characterization of any communications system, Communications System Toolbox provides a BERTool app that lets you analyze BER performance of communications systems. Since EVM and MER are important measures of quality for the received signal and the transmission channel, their measurements have been integrated in the Constellation Diagram scope of the system toolbox. ACPR and CCDF measurements are also integrated in the Spectrum Analyzer scope of DSP System Toolbox™.
For proper recovery of signals, wireless receivers must address issues such as timing recovery, compensation for carrier frequency and phase offset, synchronization, and time-domain and frequency-domain equalization. Communications System Toolbox provides synchronization and RF compensation algorithms that are generally adaptive in nature and allow you to compensate for channel and RF impairment effects in your RF receiver front-end designs. The synchronization algorithms include:
Communications System Toolbox provides receiver front-end reference designs such as OFDM synchronization, RF satellite link and end-to-end QAM simulation, and QPSK transmitter and receiver examples. These examples show how we can first introduce RF impairments such as Doppler shift, phase noise, DC offset, and I/Q phase imbalances prior to receiver processing. As part of receiver processing, you can then apply compensation techniques including DC blocking, AGC, IQ Imbalance compensator, and frequency and phase offset compensators to recover the best estimate of the transmitted signal at the receiver.
Techniques such as MATLAB to C code generation, parallel processing, and GPU-optimized algorithms enable you to significantly speed up simulations of your communications models. The combined effect of using these acceleration methods may speed up a typical simulation by an order of magnitude, and also reduce the time needed to run a simulation overnight to just a few hours.
GPU acceleration — Capability provided by Parallel Computing Toolbox™ that enables you to accelerate simulation performance using graphics processing unit (GPU) hardware within your computer. When using GPU-optimized System objects in Communications System Toolbox, you execute algorithms on a GPU rather than on a CPU. This process may accelerate your simulation.
Parallel computing and cloud computing support — Capability provided by Parallel Computing Toolbox and MATLAB Distributed Computing Server™ that enables you to leverage the computing power of your server farms and the Amazon EC2 web service by computing different iterations of your algorithm concurrently on a multitude of available MATLAB workers.
MATLAB to C code generation — Capability provided by MATLAB Coder™ that enables you to accelerate simulation by locking down data types and sizes of your MATLAB variables during simulation, and by reducing the overhead of the interactive programming that checks for the size and data type of variables in every line of the code.
Many communications systems use hardware that requires a fixed-point representation of your design. Communications System Toolbox supports fixed-point modeling in all relevant blocks and System objects with tools that help you configure fixed-point attributes.
Fixed-point support in the system toolbox includes word sizes from 1 to 128 bits, arbitrary binary-point placement, overflow handling methods (wrap or saturation), and rounding methods (ceiling, convergent, floor, nearest, round, simplest, and zero). Fixed-Point Tool in Fixed-Point Designer™ facilitates the conversion of floating-point data types to fixed point. For configuration of fixed-point properties, the tool tracks overflows, as well as maxima and minima.
Once you have developed your algorithm or communications system, you can automatically generate C code from it for verification, rapid prototyping, and implementation. Most System objects, functions, and blocks in Communications System Toolbox can generate ANSI/ISO C code using MATLAB Coder, Simulink Coder™, or Embedded Coder®. A subset of System objects and Simulink blocks can also generate HDL code. To leverage your existing intellectual property, you can select optimizations for specific processor architectures and integrate legacy C code with the generated code. You can also generate C code for floating-point and fixed-point data types.
DSPs are used in communications system implementation for verification, rapid prototyping, or final hardware implementation. Using processor-in-the-loop (PIL) simulation in Embedded Coder, you can verify your generated source code and execute your algorithm on a supported target processor.
FPGAs are used in communications systems for implementing high-speed signal processing algorithms. Using FPGA-in-the-loop (FIL) in HDL Verifier™, you can test RTL code in real hardware for any existing HDL code. You can do that with either manually written code or automatically generated code by running your algorithm’s implementation code on a target processor.