System object: comm.GeneralQAMTCMDemodulator
Package: comm

Demodulate convolutionally encoded data mapped to arbitrary QAM constellation


Y = step(H,X)
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) demodulates the general QAM modulated input data, X, and uses the Viterbi algorithm to decode the resulting demodulated convolutionally encoded bits. X must be a complex double or single precision column vector. The step method outputs a demodulated binary column data vector, Y. When the convolutional encoder represents a rate K/N code, the length of the output vector equals K×L, where L is the length of the input vector, X.

Y = step(H,X,R) resets the decoder states of the general QAM TCM demodulator System object to the all-zeros state when you input a non-zero reset signal, R. R must be a double precision or logical scalar integer. This syntax applies when you set 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.