System object: comm.APPDecoder
Package: comm

Decode convolutional code using the a posteriori probability method


[LUD,LCD] = step(H,LU,LC)



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.

[LUD,LCD] = step(H,LU,LC) performs APP decoding. The input LU is the sequence of log-likelihoods of encoder input data bits. The input LC is the sequence of log-likelihoods of encoded bits. Negative soft inputs are considered to be zeros and positive soft inputs are considered to be ones. The outputs, LUD and LCD, are updated versions of the input LU and LC sequences and are obtained based on information about the encoder. The inputs must be of the same data type, which can be double or single precision. The output data type is the same as the input data type. If the convolutional code uses an alphabet of 2^N symbols, the LC and LCD vector lengths are multiples of N. If the decoded data uses an alphabet of 2^K output symbols, the LU and LUD vector lengths are multiples of K.


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 (MATLAB) and input specifications, such as dimensions, complexity, and data type of the input data. If you change a nontunable property or an input specification, the System object issues an error. To change nontunable properties or inputs, you must first call the release method to unlock the object.