Version:

Last Modified: February 7, 2018

Generates an encoded bit stream based on a generator matrix that you set.

Bit sequence representing the data bits to encode. Use the bits generated by MT Generate Bits to produce this bit stream or wire a custom data bit stream to this parameter.

The generator connection polynomial matrix that sets the convolutional feedforward node connections in octal format.

The convolutional node is modeled as a linear feedforward shift register arrangement consisting of *k* rows with *K*-1 shift registers per row, where *k* denotes the data word length and *K* denotes the constraint length. If *a* _{ ij } {0 ≤ *i* ≤ *n*-1, 0 ≤ *j* ≤ *k*-1} denotes a particular element in the generator matrix, the row index *i* corresponds to the convolutional node output *y* _{ i } that is affected by this element, while the column index *j* corresponds to the *j*th row in the *k* row shift register arrangement. Thus *a* _{ ij } specifies how the *K* bits in the *j*th row of the feedforward shift register matrix affects the *i*th output of the convolutional node.

For a rate of 2/3, the generator matrix is specified as follows:

$\left(\begin{array}{cc}100100& 011000\\ 011100& 101000\\ 110000& 010000\end{array}\right)=\left(\begin{array}{cc}44& 30\\ 34& 50\\ 60& 20\end{array}\right)$

The matrix on the right represents the elements in octal format. Zeros are padded at the end of the corresponding code generator sequences such that their total length is a multiple of three digits. The following diagram depicts the rate 2/3 convolutional node corresponding to the previously mentioned generator matrix, with a constraint length equal to 4. In the following diagram, D represents a shift register or memory element.

Here, *y* _{ i } ^{ j }, 0 ≤ *j* ≤ *n*-1 denotes the *j*th output of this node, in the *i*th instance.

**Default: **
$\left(\begin{array}{c}5\\ 7\end{array}\right)$

The maximum number of encoded bits that can be affected by a single input bit. This value represents (1 + *maximal memory order*), where *maximal memory order* refers to the length of the longest shift register chain in the convolutional encoder.

**Default: **3

The encoder initialization state for the *k*(*K*-1) shift registers, where *k* is the input data word length and *K* specifies the constraint length. On the first call to this node, and thereafter when you configure **reset?** to TRUE, the encoder state is reset to this value on each call to this node. When you configure **reset?** to FALSE, the final state from the previous iteration is used in subsequent calls to this node and LabVIEW ignores the **initial state** parameter.

**Default: **0

Error conditions that occur before this node runs.

The node responds to this input according to standard error behavior.

Standard Error Behavior

Many nodes provide an **error in** input and an **error out** output so that the node can respond to and communicate errors that occur while code is running. The value of **error in** specifies whether an error occurred before the node runs. Most nodes respond to values of **error in** in a standard, predictable way.

**Default: **No error

A Boolean that determines whether the internal state of the encoder is cleared.

TRUE | Clears any buffered bits from previous iterations. Also initializes the encoder to start from the initial state parameter that you specify. |

FALSE | Continues encoding from the previous iteration. Any buffered bits from the previous iteration are added to the beginning of the input bit stream prior to encoding. |

**Default: **TRUE

Convolutional-encoded code word returned by this node. Wire this parameter to MT Convolutional Decode to recover the input data stream.

The value for the *k(K*-1) shift registers as the right-aligned (least significant) *k(K*-1) bits when this node completes execution, where *K* is the constraint length and *k* is the data word length in bits.

Error information.

The node produces this output according to standard error behavior.

Standard Error Behavior

**error in** input and an **error out** output so that the node can respond to and communicate errors that occur while code is running. The value of **error in** specifies whether an error occurred before the node runs. Most nodes respond to values of **error in** in a standard, predictable way.

**Where This Node Can Run: **

Desktop OS: Windows

FPGA: Not supported

Web Server: Not supported in VIs that run in a web application