Distribute input elements in output vector

Sequence Operations

The Insert Zero block constructs an output vector by inserting
zeros among the elements of the input vector. The input signal can
be real or complex. Both the input signal and the **Insert
zero vector** parameter are column vector signals. The number
of 1s in the **Insert zero vector** parameter must
be evenly divisible by the input data length. If the input vector
length is greater than the number of 1s in the **Insert zero
vector** parameter, then the block repeats the insertion
pattern until it has placed all input elements in the output vector.

The block determines where to place the zeros by using the **Insert
zero vector** parameter.

For each 1 the block places the

*next*element of the input vector in the output vectorFor each 0 the block places a 0 in the output vector

The block accepts 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.

To implement punctured coding using the Puncture and
Insert Zero blocks, use the same vector for the **Insert zero
vector** parameter in this block and for the **Puncture
vector** parameter in the Puncture block.

**Insert zero vector**A binary vector with a pattern of 0s and 1s that indicate where the block places either 0s or input vector elements in the output vector.

If the **Insert zero vector** parameter is
the six-element vector `[1;0;1;1;1;0]`

, then the
block inserts zeros after the first and last elements of each consecutive
grouping of four input elements. It considers groups of four elements
because the **Insert zero vector** parameter has
four 1s.

The diagram below depicts the block's operation using this **Insert
zero vector **parameter. Notice that the insertion pattern
applies twice.

Compare this example with that on the reference page for the Puncture block.

Was this topic helpful?