MT Convolutional Encode VI
Generates an encoded bit stream based on a specified code rate. The code rate is equal to the ratio of the data word length to the code word length. This VI allows you to choose a code rate of 1/2, 1/3, 1/4, 2/3, or 3/4 with preconfigured generator matrices. Use the Generator Matrix instance to specify custom values.
Use the pull-down menu to select an instance of this VI.
MT Convolutional Encoder (Generator Matrix)
This polymorphic instance generates an encoded bit stream based on a specified generator matrix.
input bit stream specifies the bit sequence representing the data word to encode. Use the MT Generate Bits (poly) VI to produce this bit stream or wire a custom data bit stream to this parameter. |
|||||||
generator matrix (n x k) specifies the generator connection polynomial matrix used for setting the convolutional feedforward encoder connections in octal format. The convolutional encoder 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 encoder output y i that is affected by this element, while the column index j corresponds to the jth row in the k row shift register arrangement. Thus a ij specifies how the K bits in the jth row of the feed forward shift register matrix affects the ith output of the convolutional encoder. The default is For a rate 2/3 convolutional encoder, the generator matrix is specified as
Notice that 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 encoder corresponding to the previously mentioned generator matrix, with constraint length equal to 4. In this diagram, D represents a shift register or memory element.
Here, y i j, 0 ≤ j ≤ n-1 denotes the jth output of the convolutional encoder, in the ith encoding instance. |
|||||||
constraint length (K) specifies 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. The default is 3. |
|||||||
initial state specifies 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 VI, and thereafter when reset? is set to TRUE (the default), the encoder state is reset to this value on each call to this VI. When reset? is set to FALSE, the final state from the previous iteration is used in subsequent calls to this VI and the initial state parameter is ignored. The default is 0. |
|||||||
reset? specifies whether the internal state of the convolutional encoder is cleared. By default, the VI resets on first call. When reset? is set to TRUE, this VI clears any buffered bits from previous iterations, and the encoder is initialized to start from the specified initial state. When reset? is set to FALSE, this VI continues performing convolutional encoding from the previous iteration. Any buffered bits from the previous iteration are added to the beginning of the input bit stream prior to performing convolutional encoding. The default is TRUE. |
|||||||
error in (no error) can accept error information wired from previously called VIs. Use this information to decide if any functionality should be bypassed in the event of errors from other VIs. Right-click the front panel error in control and select Explain Error or Explain Warning from the shortcut menu for more information about the error.
|
|||||||
output bit stream returns the convolutional-encoded code word. Wire this parameter to the MT Convolutional Decode VI to recover the input data stream. |
|||||||
final state returns the final state for the k(K-1) shift registers as the right-aligned (least significant) k(K-1) bits, where K is the constraint length, and k is the data word length in bits. |
|||||||
error out passes error or warning information out of a VI to be used by other VIs. Right-click the front panel error out indicator and select Explain Error or Explain Warning from the shortcut menu for more information about the error.
|
MT Convolutional Encoder (Rate)
This polymorphic instance generates an encoded bit stream based on a specified code rate. The code rate is equal to the ratio of the data word length to the code word length. This VI allows you to choose a code rate of 1/2, 1/3, 1/4, 2/3, or 3/4, using the rate parameter. The following table shows the available code rates and constraint lengths supported by this polymorphic instance. If you have a particular code rate/constraint length combination that is not available in the table, use the Generator Matrix instance to specify custom values.
Code Rate | Supported Constraint Lengths |
---|---|
1/2 | 3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 |
1/3 | 3,4,5,6,7,8,9,10,11,12,13,14 |
1/4 | 3,4,5,6,7,8,9,10,11,12,13,14 |
2/3 | 2,3,4,5,6 |
3/4 | 2,3,4 |
input bit stream specifies the bit sequence representing the data word to encode. Use the MT Generate Bits (poly) VI to produce this bit stream or wire a custom data bit stream to this parameter. |
|||||||||||
rate (k/n) specifies the convolutional code rate as a ratio of k/n, where k is the input data word length and n is the output code word length. The default is 1/2.
|
|||||||||||
constraint length (K) specifies 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. The default is 3. |
|||||||||||
initial state specifies 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 VI, and thereafter when reset? is set to TRUE (the default), the encoder state is reset to this value on each call to this VI. When reset? is set to FALSE, the final state from the previous iteration is used in subsequent calls to this VI and the initial state parameter is ignored. The default is 0. |
|||||||||||
reset? specifies whether the internal state of the convolutional encoder is cleared. By default, the VI resets on first call. When reset? is set to TRUE, this VI clears any buffered bits from previous iterations, and the encoder is initialized to start from the specified initial state. When reset? is set to FALSE, this VI continues performing convolutional encoding from the previous iteration. Any buffered bits from the previous iteration are added to the beginning of the input bit stream prior to performing convolutional encoding. The default is TRUE. |
|||||||||||
error in (no error) can accept error information wired from previously called VIs. Use this information to decide if any functionality should be bypassed in the event of errors from other VIs. Right-click the front panel error in control and select Explain Error or Explain Warning from the shortcut menu for more information about the error.
|
|||||||||||
output bit stream returns the convolutional-encoded code word. Wire this parameter to the MT Convolutional Decode VI to recover the input data stream. |
|||||||||||
final state returns the final state for the k(K-1) shift registers as the right-aligned (least significant) k(K-1) bits, where K is the constraint length, and k is the data word length in bits. |
|||||||||||
error out passes error or warning information out of a VI to be used by other VIs. Right-click the front panel error out indicator and select Explain Error or Explain Warning from the shortcut menu for more information about the error.
|
Details
The input bit stream array (MessageData) is divided into chunks of length equal to the data length (k). The convolutional encoder design sequentially encodes each chunk and recombines the encoded data to return the output code word in the output bit stream. The number of iterations required in the design to complete the encoding process is equal to: floor[length(MessageData)/k]
During the ith iteration, the chunk of k bits is represented by the MessageData vector defined by the following equation:
The corresponding output encoded vector is represented by the following equation:
The output encoded vector is generated from the input message vector using the binary connection polynomial matrix G. The transformation can be described by the equation:
in which the output encoded vector y is generated as the product of the binary connection polynomial matrix G and the input vector x.
Generator matrices corresponding to code rates and constraint lengths obtained from
Wicker, Stephen B. Error Control Systems for Digital Communications and Storage. Englewood Cliffs: Prentice-Hall, 1995.