Distribute input elements in output vector
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 vector
For 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.
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.