| Products & Services | Solutions | Academia | Support | User Community | Company |
| Download Product Updates | | | Get Pricing | | | Trial Software |
| Documentation → Communications Blockset |
| Contents | Index |
| Learn more about Communications Blockset |
| On this page… |
|---|
Simulink supports matrix signals and one-dimensional arrays, and frame-based and sample-based signals. This section describes how Communications Blockset processes certain kinds of matrix and frame-based signals.
This section defines important terms related to matrix and frame-based signals.
This document uses the unqualified words scalar and vector in ways that emphasize a signal's number of elements, not its strict dimension properties:
A scalar signal is one that contains a single element. The signal could be a one-dimensional array with one element, or a matrix of size 1-by-1.
A vector signal is one that contains one or more elements, arranged in a series. The signal could be a one-dimensional array, a matrix that has exactly one column, or a matrix that has exactly one row. The number of elements in a vector is called its length or, sometimes, its width.
In cases when it is important for a description or schematic to distinguish among different types of scalar signals or different types of vector signals, this document mentions the distinctions explicitly. For example, the terms one-dimensional array, column vector, and row vector distinguish among three types of vector signals.
The size of a matrix is the pair of numbers that indicate how many rows and columns the matrix has. The orientation of a two-dimensional vector is its status as either a row vector or column vector. A one-dimensional array has no orientation.
A matrix signal that has more than one row and more than one column is called a full matrix signal.
In Simulink, each matrix signal has a frame attribute that declares the signal to be either frame-based or sample-based, but not both. (A one-dimensional array signal is always sample-based, by definition.) Simulink indicates the frame attribute visually by using a double connector line in the model window instead of a single connector line. In general, Simulink interprets frame-based and sample-based signals as follows:
A frame-based signal in the shape of an M-by-1 (column) matrix represents M successive samples from a single time series.
A frame-based signal in the shape of a 1-by-N (row) matrix represents a sample of N independent channels, taken at a single instant in time.
A sample-based matrix signal might represent a set of bits that collectively represent an integer, or a set of symbols that collectively represent a codeword, or something else other than a fragment of a single time series.
These rules indicate the shapes of sample-based signals that Communications Blockset blocks can process:
Most blocks do not process matrix signals that have more than one row and more than one column.
In their numerical computations, blocks that process scalars do not distinguish between one-dimensional scalars and one-by-one matrices. If the block produces a scalar output from a scalar input, the block preserves dimension.
If a block can process sample-based vectors,
The numerical computations do not distinguish between one-dimensional arrays, M-by-1 matrices, and 1-by-N matrices.
The block output preserves dimension and orientation.
The block treats elements of the input vector as a collection that arises naturally from the block's operation (for example, a collection of symbols that jointly represent a codeword), or as samples from independent channels. The block does not assume that the elements of the input vector are successive samples from a single time series.
Some blocks process vectors but require them to be frame-based. For more information about processing frame-based signals, see Processing Frame-Based and Sample-Based Signals.
To find out whether a block processes scalar signals, vector signals, or both, refer to its entry in the reference section.
The figures below depict the preservation of dimension and orientation when a block processes scalars (without oversampling) and vectors. To display signal dimensions in your model, turn on the Signal dimensions option in the Port/signal displays submenu of the model window's Format menu.


All one-dimensional arrays are sample-based, but a matrix signal can be either frame-based or sample-based. A frame-based signal in the shape of an N-by-1 matrix represents a series of N successive samples from a single time series. Communications Blockset processes some frame-based signals and is compatible with Signal Processing Blockset. However, Communications Blockset omits some frame-based features, and many blocks are not specifically optimized for frame-based processing.
These rules indicate how most Communications Blockset blocks handle frame-based matrix signals:
Most blocks do not process frame-based matrix signals that have more than one row and more than one column.
Most blocks do not process frame-based row vectors and do not support multichannel functionality.
Blocks that process continuous-time signals do not process frame-based inputs. Such blocks include the analog modulation blocks and the analog phase-locked loop blocks.
Blocks for which a frame-based multichannel operation makes sense, even if the blocks do not currently support such operation, reject sample-based vectors because their interpretation is ambiguous.
Frame-based vectors, however, have an unambiguous interpretation. Blocks interpret a frame-based row vector as multiple channels at a single instant of time, and interpret a frame-based column vector as multiple samples from a single time series (that is, a single channel).
Some blocks, such as the digital baseband modulation blocks, can produce multiple output values for each value of a scalar input signal. In such cases, a frame-based 1-by-1 matrix input results in a frame-based column vector output. By contrast, a sample-based scalar input results in a sample-based scalar output with a smaller sample time.
![]() | Accessing the Libraries | Communications Sources | ![]() |

Learn more about Simulink through this collection of videos, articles, technical literature and the Getting Started with Simulink Guide.
| © 1984-2009- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |