This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.


Restore ordering of symbols using shift registers


deintrlved = convdeintrlv(data,nrows,slope)
[deintrlved,state] = convdeintrlv(data,nrows,slope)
[deintrlved,state] = convdeintrlv(data,nrows,slope,init_state)


deintrlved = convdeintrlv(data,nrows,slope) restores the ordering of elements in data by using a set of nrows internal shift registers. The delay value of the kth shift register is (nrows-k)*slope, where k = 1, 2, 3,..., nrows. Before the function begins to process data, it initializes all shift registers with zeros. If data is a matrix with multiple rows and columns, the function processes the columns independently.

[deintrlved,state] = convdeintrlv(data,nrows,slope) returns a structure that holds the final state of the shift registers. state.value stores any unshifted symbols. state.index is the index of the next register to be shifted.

[deintrlved,state] = convdeintrlv(data,nrows,slope,init_state) initializes the shift registers with the symbols contained in init_state.value and directs the first input symbol to the shift register referenced by init_state.index. The structure init_state is typically the state output from a previous call to this same function, and is unrelated to the corresponding interleaver.

Using an Interleaver-Deinterleaver Pair

To use this function as an inverse of the convintrlv function, use the same nrows and slope inputs in both functions. In that case, the two functions are inverses in the sense that applying convintrlv followed by convdeintrlv leaves data unchanged, after you take their combined delay of nrows*(nrows-1)*slope into account. To learn more about delays of convolutional interleavers, see Delays of Convolutional Interleavers.


The example in Effect of Delays on Recovery of Convolutionally Interleaved Data Using MATLAB uses convdeintrlv and illustrates how you can handle the delay of the interleaver/deinterleaver pair when recovering data.

The example on the reference page for muxdeintrlv illustrates how to use the state output and init_state input with that function; the process is analogous for this function.

More About


[1] Heegard, Chris, and Stephen B. Wicker, Turbo Coding, Boston, Kluwer Academic Publishers, 1999.

Introduced before R2006a

Was this topic helpful?