MT Puncture Data Stream VI

LabView Digital Modulation

MT Puncture Data Stream VI

Punctures the input data stream and returns an output data stream that is at a higher rate relative to the input.

Puncturing refers to the process of artificially increasing the rate of the input data by selectively deleting certain elements in the input data stream. The positions where the elements are deleted from the input data stream are defined by the puncture pattern matrix. Elements in the input data stream that correspond to zero values in the puncture pattern matrix are omitted from the output data stream. If the input data stream arrives at a rate Rin and the puncture pattern is a P×Q matrix comprising L zeros, the rate of the output data stream is given by

Details

MT Puncture Data Stream

c1di32.gif

input data stream specifies the data stream with a rate to be increased by the process of puncturing. This data stream is usually obtained from the output of a block/convolutional encoder. The default is empty.

c2di8.gif

puncture pattern specifies a binary-valued matrix that dictates which elements in the input data stream are omitted with respect to the output data stream. The default is 1.

Note  The puncture pattern matrix is chronologically ordered by columns with respect to the input data stream. If the dimensions of the puncture pattern matrix are m×n, the m elements of the first column correspond to the first m elements of the input data stream, and so on.
cbool.gif

reset? specifies whether the VI uses the stored state information from its previous iteration while puncturing the input data stream in the current iteration. When reset? is set to TRUE, the VI clears all previous state information and reinitializes the buffers. The default is TRUE.

Note   When the length L of the input data stream is not an integer multiple of the product P×Q of the P×Q puncture pattern matrix, the last L modulo (P×Q) are buffered inside the VI. If reset? is set to FALSE, these buffered elements are prepended to the beginning of the input data stream during the next iteration, prior to the puncturing operation.
ccclst.gif

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.

cbool.gif

status is TRUE (X) if an error occurred or FALSE (checkmark) to indicate a warning or that no error occurred. 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.

ci32.gif

code identifies the error or warning code. 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.

cstr.gif

source describes the origin of the error or warning. 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.

i1di32.gif

output data stream returns the output data stream, which consists of all elements in the input data stream except those that were deleted during the puncturing operation.

icclst.gif

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.

ibool.gif

status is TRUE (X) if an error occurred or FALSE (checkmark) to indicate a warning or that no error occurred. 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.

ii32.gif

code is the error or warning code. 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.

istr.gif

source describes the origin of the error or warning. 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

Code Rates Rout Puncture Pattern Output Data Stream
1/2 X : 1

Y : 1

X1, Y1
2/3 X : 1 0

Y : 1 1

X1, Y1, Y2
3/4 X : 1 0 1

Y : 1 1 0

X1, Y1, Y2, X3
5/6 X : 1 0 1 0 1

Y : 1 1 0 1 0

X1, Y1, Y2, X3, Y4, X5
7/8 X : 1 0 1 0 1 0 1

Y : 1 1 0 1 0 1 0

X1, Y1, Y2, X3, Y4, X5, Y6, X7

Typically, the puncturing operation occurs in conjunction with the channel encoding operation. In such a case, the number of rows P in the puncture pattern matrix should equal the code word length n of the mother block/convolutional code. The preceding table shows examples of puncturing matrices for deriving higher rate codes from a mother rate ½ convolutional encoder. The input data stream is assumed to be of the form X1, Y1, X2, Y2, X3, Y3, and so on.

Note   If you perform convolutional encoding followed by puncturing the data stream returned on the transmit side, you must depuncture the data prior to performing convolutional decoding on the receiving side. In addition, you must call the polymorphic instances of the convolutional decoder that implement either soft-decision or unquantized Viterbi decoding.