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.
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.
[1] Heegard, Chris, and Stephen B. Wicker, Turbo Coding, Boston, Kluwer Academic Publishers, 1999.