Main Content


System object: comm.RSDecoder
Package: comm

Decode data using a Reed-Solomon decoder


[Y,ERR] = step(H,X)
Y = step(H,X)
Y = step(H,X,ERASURES)



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,ERR] = step(H,X) decodes the encoded input data, X, into the output vector Y and returns the number of corrected symbols in output vector ERR. The value of the BitInput property determines whether X is a vector of integers or bits with a numeric, logical, or fixed-point data type. The input and output length of the step function equal the values listed in the table in Input and Output Signal Lengths in BCH and RS System Objects. This syntax applies when you set the NumCorrectedErrorsOutputPort property to true. A value of -1 in the i-th element of the error output vector indicates that a decoding error occurred for that codeword.

Y = step(H,X) decodes the encoded data, X, into the output vector Y. This syntax applies when you set the NumCorrectedErrorsOutputPort property to false.

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. This syntax applies when you set the ErasuresInputPort 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 and input specifications. For more information on changing property values, see System Design in MATLAB Using System Objects.