step

System object: comm.BCHDecoder
Package: comm

Decode data using a BCH decoder

Syntax

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

Description

Note

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 input binary codewords in X using a (CodewordLength,MessageLength) BCH decoder with the corresponding narrow-sense generator polynomial. The step method returns the estimated message in Y. This syntax applies when you set the NumCorrectedErrorsOutputPort property to false. 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.

[Y,ERR] = step(H,X) returns the number of corrected errors in output ERR when you set the NumCorrectedErrorsOutputPort property to true. A non- negative value in the i-th element of the ERR output vector denotes the number of corrected errors in the i-th input codeword. A value of -1 in the i-th element of the ERR output indicates that a decoding error occurred for the i-th input codeword. A decoding error occurs when an input codeword has more errors than the error correction capability of the BCH code.

Y = step(H,X,ERASURES) uses ERASURES as the erasures pattern input when you set the ErasuresInputPort property to true. The object decodes the binary encoded data input, X, and treats as erasures the bits of the input codewords specified by the binary column vector, ERASURES. The length of ERASURES must equal the length of X, and its elements must be of data type double or logical. Values of 1 in the erasures vector correspond to erased bits in the same position of the (possibly punctured) input codewords.

Note

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, 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.