Main Content


System object: comm.SphereDecoder
Namespace: comm

Decode received symbols using sphere decoding algorithm





Starting in R2016b, instead of using the step method to perform the operation defined by the System object™, you can call the object with arguments, as if it were a function. For example, y = step(obj,x) and y = obj(x) perform equivalent operations.

Y = step(H, RXSYMBOLS, CHAN) decodes the received symbols, RXSYMBOLS, using the sphere decoding algorithm. The algorithm can be employed to decode Ns channel realizations in one call, where in each channel realization, Nr symbols are received.

The inputs are:

RXSYMBOLS: a [Ns Nr] complex double matrix containing the received symbols.

CHAN: a [Ns Nt Nr] or [1 Nt Nr] complex double matrix representing the fading channel coefficients of the flat-fading MIMO channel. For the [Ns Nt Nr] case, the object applies each channel matrix to each Nr symbol set. For the block fading case, i.e., when the size of CHAN is [1 Nt Nr], the same channel is applied to all of the received symbols.

The output Y, which depends on the setting of the DecisionType property, is a double matrix containing the Log-Likelihood Ratios (LLRs) of the decoded bits or the bits themselves. For both cases, the size of the output is [Ns*bitsPerSymbol Nt], where bitsPerSymbol represents the number of bits per transmitted symbol, as determined by the BitTable property.


obj specifies the System object on which to run this step method.

The object performs an initialization the first time the step method is executed. This initialization locks nontunable properties and input specifications. For more information on changing property values, see System Design in MATLAB Using System Objects.