| Communications Blockset™ | ![]() |
Permute input symbols by selecting matrix elements along diagonals
Block sublibrary of Interleaving
The Matrix Helical Scan Interleaver block performs block interleaving by filling a matrix with the input symbols row by row and then sending the matrix contents to the output port in a helical fashion. The Number of rows and Number of columns parameters are the dimensions of the matrix that the block uses internally for its computations.
Helical fashion means that the block selects output symbols by selecting elements along diagonals of the matrix. The number of elements in each diagonal matches the Number of columns parameter, after the block wraps past the edges of the matrix when necessary. The block traverses diagonals so that the row index and column index both increase. Each diagonal after the first one begins one row below the first element of the previous diagonal.
The Array step size parameter is the slope of each diagonal, that is, the amount by which the row index increases as the column index increases by one. This parameter must be an integer between zero and the Number of rows parameter. If the Array step size parameter is zero, then the block does not interleave and the output is the same as the input.
The number of elements of the input vector must be the product of Number of rows and Number of columns. If the input is frame-based, then it must be a column vector.
The block can accept the data types int8, uint8, int16, uint16, int32, uint32, boolean, single, double, and fixed-point. The data type of this output will be the same as that of the input signal.

The number of rows in the matrix that the block uses for its computations.
The number of columns in the matrix that the block uses for its computations.
The slope of the diagonals that the block reads.
If the Number of rows and Number of columns parameters are 6 and 4, respectively, then the interleaver uses a 6-by-4 matrix for its internal computations. If the Array step size parameter is 1, then the diagonals are as shown in the figure below. Positions with the same color form part of the same diagonal, and diagonals with darker colors precede those with lighter colors in the output signal.
Given an input signal of [1:24]', the block produces an output of

[1; 6; 11; 16; 5; 10; 15; 20; 9; 14; 19; 24; 13; 18; 23;... 4; 17; 22; 3; 8; 21; 2; 7; 12]
Matrix Helical Scan Deinterleaver
![]() | Matrix Helical Scan Deinterleaver | Matrix Interleaver | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |