Communications System Toolbox
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 implements a variety of tasks for communications system design and simulation. Many of the functions, apps, System objects™, and blocks in the system toolbox perform computations associated with a particular component of a communications system, such as a demodulator or equalizer.
The system toolbox offers several standard methods for quantitatively characterizing system performance:
Because BER computations are fundamental to the characterization of any communications system, the system toolbox provides the following tools and capabilities for configuring BER test scenarios and accelerating BER simulations:
Bit Error Rate Analysis App — An app that lets you analyze BER performance of communications systems.
Error Rate Test Console — A MATLAB object that runs simulations for communications systems to measure error rate performance. It supports user-specified test points and generation of parametric performance plots and surfaces. Accelerated performance can be realized when running on a multicore computing platform.
Distributed computing and cloud computing support — Capabilities provided by Parallel Computing Toolbox and MATLAB Distributed Computing Server™ that enable you to leverage the computing power of your server farms and the Amazon EC2 Web service.
The system toolbox provides the following capabilities for visualizing system performance:
Channel visualization tool — For visualizing the characteristics of a fading channel
Eye diagrams and signal constellation scatter plots — For a qualitative, visual understanding of system behavior that enables you to make initial design decisions
Signal trajectory plots — For a continuous picture of the signal's trajectory between decision points
BER plots — For visualizing quantitative BER performance of a design candidate, parameterized by metrics such as SNR and fixed-point word size
Analog and digital modulation techniques encode the information stream into a signal that is suitable for transmission. Communications System Toolbox provides a number of modulation and corresponding demodulation capabilities. These capabilities are available as MATLAB functions and objects, MATLAB System objects™, and Simulink blocks.
Modulation types provided by the toolbox are:
Analog, including AM, FM, PM, SSB, and DSBSC
Digital, including FSK, PSK, BPSK, DPSK, OQPSK, MSK, PAM, QAM, and TCM
Communications System Toolbox provides source and channel coding capabilities that let you develop and evaluate communications architectures quickly, enabling you to explore what-if scenarios and avoid the need to create coding capabilities from scratch.
Source coding, also known as quantization or signal formatting, is a way of processing data in order to reduce redundancy or prepare it for later processing. The system toolbox provides a variety of types of algorithms for implementing source coding and decoding, including:
To combat the effects noise and channel corruption, the system toolbox provides block and convolutional coding and decoding techniques to implement error detection and correction. For simple error detection with no inherent correction, a cyclic redundancy check capability is also available. Channel coding capabilities provided by the system toolbox include:
The system toolbox provides utility functions for creating your own channel coding. You can create generator polynomials and coefficients and syndrome decoding tables, as well as product parity-check and generator matrices.
The system toolbox also provides block and convolutional interleaving and deinterleaving functions to reduce data errors caused by burst errors in a communication system:
Block, including General block interleaver, algebraic interleaver, helical scan interleaver, matrix interleaver, and random interleaver
Convolutional, including General multiplexed interleaver, convolutional interleaver, and helical interleaver
Communications System Toolbox provides algorithms and tools for modeling noise, fading, interference, and other distortions that are typically found in communications channels. The system toolbox supports the following types of channels:
A MATLAB channel object provides a concise, configurable implementation of channel models, enabling you to specify parameters such as:
For MIMO systems, the MATLAB MIMO channel object expands these parameters to also include:
To model the effects of a nonideal RF front end, you can introduce the following impairments into your communications system, enabling you to explore and characterize performance with real-world effects:
You can include more complex RF impairments and RF circuit models in your design using SimRF™.
Communications System Toolbox lets you explore equalization and synchronization techniques. These techniques are generally adaptive in nature and challenging to design and characterize. The system toolbox provides algorithms and tools that let you rapidly select the appropriate technique in your communications system.
To evaluate different approaches to equalization, the system toolbox provides you with adaptive algorithms such as:
These adaptive equalizers are available as nonlinear decision feedback equalizer (DFE) implementations and as linear (symbol or fractionally spaced) equalizer implementations.
The system toolbox provides algorithms for both carrier phase synchronization and timing phase synchronization.
For timing phase synchronization, the system toolbox provides a MATLAB Timing Phase Synchronizer object that offers the following implementation methods:
Most communication systems handle streaming and frame-based data using a combination of temporal processing and simultaneous multifrequency and multichannel processing. This type of streaming multidimensional processing can be seen in advanced communication architectures such as OFDM and MIMO. Communications System Toolbox enables the simulation of advanced communications systems by supporting stream processing and frame-based simulation in MATLAB and Simulink.
In MATLAB, stream processing is enabled by System objects™, which use MATLAB objects to represent time-based and data-driven algorithms, sources, and sinks. System objects implicitly manage many details of stream processing, such as data indexing, buffering, and management of algorithm state. You can mix System objects with standard MATLAB functions and operators. Most System objects have a corresponding Simulink block with the same capabilities.
Simulink handles stream processing implicitly by managing the flow of data through the blocks that make up a Simulink model. Simulink is an interactive graphical environment for modeling and simulating dynamic systems that uses hierarchical diagrams to represent a system model. It includes a library of general-purpose, predefined blocks to represent algorithms, sources, sinks, and system hierarchy.
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:
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 and 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 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 both floating-point and fixed-point data types.
DSPs are used in communication system implementation for verification, rapid prototyping, or final hardware implementation. Using the processor-in-the-loop (PIL) simulation capability found in Embedded Coder, you can verify generated source code and compiled code by running your algorithm’s implementation code on a target processor.
FPGAs are used in communication systems for implementing high-speed signal processing algorithms. Using the FPGA-in-the-loop (FIL) capability found in HDL Verifier™, you can test RTL code in real hardware for any existing HDL code, either manually written or automatically generated HDL code.