## Examples of Puncturing Matrices

Code Rates (R_{out}) |
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 must 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.

## Preparing punctured data for decoding

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 instance of MT Convolutional Decoder that implements either soft-decision or unquantized Viterbi decoding.