Contenido principal

muxintrlv

R2026b

(To be removed) Permute symbols using shift registers with specified delays

muxintrlv will be removed in a future release. Use convintrlv instead. (since R2026b) For information on updating your code, see Version History.

Syntax

intrlved = muxintrlv(data,delay)
[intrlved,state] = muxintrlv(data,delay)
[intrlved,state] = muxintrlv(data,delay,init_state)

Description

intrlved = muxintrlv(data,delay) permutes the elements in data by using internal shift registers, each with its own delay value. delay is a vector whose entries indicate how many symbols each shift register can hold. The length of delay is the number of shift registers. 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.

[intrlved,state] = muxintrlv(data,delay) 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.

[intrlved,state] = muxintrlv(data,delay,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 deinterleaver.

Examples

The example below illustrates how to use the state input and output when invoking muxdeintrlv repeatedly. Notice that [deintrlved1; deintrlved2] is the same as deintrlved.

delay = [0 4 8 12]; % Delays in shift registers
symbols = 100; % Number of symbols to process
% Interleave random data.
intrlved = muxintrlv(randi([0 1],symbols,1),delay);

% Deinterleave some of the data, recording state for later use.
[deintrlved1,state] = muxdeintrlv(intrlved(1:symbols/2),delay);
% Deinterleave the rest of the data, using state as an input argument.
deintrlved2 = muxdeintrlv(intrlved(symbols/2+1:symbols),delay,state);

% Deinterleave all data in one step.
deintrlved = muxdeintrlv(intrlved,delay);

isequal(deintrlved,[deintrlved1; deintrlved2])

The output is below.

ans =

     1

References

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

Version History

Introduced before R2006a

collapse all

See Also

Functions