Communications Blockset | ![]() ![]() |
Restore ordering of symbols permuted by a helical interleaver
Library
Convolutional sublibrary of Interleaving
Description
The Helical Deinterleaver block permutes the symbols in the input signal by placing them in an array row by row and then selecting groups in a helical fashion to send to the output port.
The block uses the array internally for its computations. If C is the Number of columns in helical array parameter, then the array has C columns and unlimited rows. If N is the Group size parameter, then the block accepts an input of length C*N at each time step and inserts them into the next N rows of the array. The block also places the Initial condition parameter into certain positions in the top few rows of the array (not only to accommodate the helical pattern but also to preserve the vector indices of symbols that pass through the Helical Interleaver and Helical Deinterleaver blocks in turn).
The output consists of consecutive groups of N symbols. Counting from the beginning of the simulation, the block selects the kth output group in the array from column k mod C. The selection is helical because of the reduction modulo C and because the first symbol in the kth group is in row 1+(k-1)*s, where s is the Helical array step size parameter.
The number of elements of the input vector must be C times N. If the input is frame-based, then it must be a column vector.
Delay of Interleaver-Deinterleaver Pair
After processing a message with the Helical Interleaver block and the Helical Deinterleaver block, the deinterleaved data lags the original message by
samples. Before this delay elapses, the deinterleaver output is either the Initial condition parameter in the Helical Deinterleaver block or the Initial condition parameter in the Helical Interleaver block.
If your model incurs an additional delay between the interleaver output and the deinterleaver input, then the restored sequence lags the original sequence by the sum of the additional delay and the amount in the formula above. For proper synchronization, the delay between the interleaver and deinterleaver must be m*C*N for some nonnegative integer m. You can use the Integer Delay block in the DSP Blockset to adjust delays manually, if necessary.
Dialog Box
Pair Block
See Also
General Multiplexed Deinterleaver
References
[1] Berlekamp, E. R. and P. Tong. "Improved Interleavers for Algebraic Block Codes." U. S. Patent 4559625, Dec. 17, 1985.
![]() | Hamming Encoder | Helical Interleaver | ![]() |