# step

System object: comm.GeneralQAMTCMDemodulator
Package: comm

Demodulate convolutionally encoded data mapped to arbitrary QAM constellation

## Syntax

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

## Description

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

 Note:   `H` 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.