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