This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.


System object: comm.ViterbiDecoder
Package: comm

Decode convolutionally encoded data using Viterbi algorithm


Y = step(H,X)
Y = step(H,X,ERASURES)
Y = step(H,X,R)



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,X) decodes encoded data, X, using the Viterbi algorithm and returns Y. X, must be a column vector with data type and values that depend on how you set the InputFormat property. If the convolutional code uses an alphabet of 2N possible symbols, the length of the input vector, X, must be L×N for some positive integer L. Similarly, if the decoded data uses an alphabet of 2K possible output symbols, the length of the output vector, Y, is L×K.

Y = step(H,X,ERASURES) uses the binary column input vector, ERASURES, to erase the symbols of the input codewords. The elements in ERASURES must be of data type double or logical. Values of 1 in the ERASURES vector correspond to erased symbols, and values of 0 correspond to non-erased symbols. The lengths of the X and ERASURES inputs must be the same. This syntax applies when you set the ErasuresInputPort property to true.

Y = step(H,X,R) resets the internal states of the decoder when you input a non-zero reset signal, R. R must be a double precision or logical scalar. This syntax applies when you set the TerminationMethod property to Continuous and the ResetInputPort property to true.


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.

Was this topic helpful?