Output elements which correspond to 1s in binary Puncture vector


Sequence Operations


The Puncture block creates an output vector by removing selected elements of the input vector and preserving others. This block accepts an input signal that is a real or complex vector of length K. The block determines which elements to remove and preserve by using the binary Puncture vector parameter.

and mod is the modulus function (mod in MATLAB).

  • If Puncture vector(n) = 0, then the block removes the nth element of the input vector and does not include it as part of the output vector.

  • If Puncture vector(n) = 1, then the block preserves the nth element of the input vector as part of the output vector.

The input length, K, must be an integer multiple of the Puncture vector parameter length. The block repeats the puncturing pattern, as necessary, to include all input elements. The preserved elements appear in the output vector in the same order in which they appear in the input vector.

The input signal and the puncture vector are both column vectors.

The block accepts signals with the following data types: int8, uint8, int16, uint16, int32, uint32, boolean, single, double, and fixed-point. The output signal inherits its data type from the input signal.


Puncture vector

A binary vector whose pattern of 0s (1s) indicates which elements of the input the block should remove (preserve).


If the Puncture vector parameter is the six-element vector [1;0;1;1;1;0], then the block:

  • Removes the second and sixth elements from the group of six input elements.

  • Sends the first, third, fourth, and fifth elements to the output vector.

The diagram below depicts the block's operation on an input vector of [1;2;3;4;5;6], using this Puncture vector parameter.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

See Also


Introduced before R2006a