comm.MultiplexedInterleaver

Permute input symbols using set of shift registers with specified delays

Description

The MultiplexedInterleaver object permutes the symbols in the input signal. Internally, the object uses a set of shift registers, each with its own delay value.

To permute the symbols in the input signal:

  1. Define and set up your multiplexed interleaver object. See Construction.

  2. Call step to interleave the input signal according to the properties of comm.MultiplexedInterleaver. The behavior of step is specific to each object in the toolbox.

Note

Starting in R2016b, instead of using the step method to perform the operation defined by the System object™, you can call the object with arguments, as if it were a function. For example, y = step(obj,x) and y = obj(x) perform equivalent operations.

Construction

H = comm.MultiplexedInterleaver creates a multiplexed interleaver System object, H. This object permutes the symbols in the input signal using a set of shift registers with specified delays.

H = comm.MultiplexedInterleaver(Name,Value) creates a multiplexed interleaver object, H, with each specified property set to the specified value. You can specify additional name-value pair arguments in any order as (Name1,Value1,...,NameN,ValueN).

Properties

Delay

Interleaver delay

Specify the lengths of the shift registers as an integer column vector. The default is [2;0;1;3;10].

InitialConditions

Initial conditions of shift registers

Specify the initial values in each shift register as a numeric scalar value or a column vector. The default is 0. When you set this property to a column vector, the length must equal the value of the Delay property. This vector contains initial conditions, where the i-th initial condition is stored in the i-th shift register.

Methods

resetReset states of the multiplexed interleaver object
stepPermute input symbols using a set of shift registers with specified delays
Common to All System Objects
release

Allow System object property value changes

Examples

collapse all

Create interleaver and deinterleaver objects.

interleaver = comm.MultiplexedInterleaver('Delay',[1; 0; 2; 1]);
deinterleaver = comm.MultiplexedDeinterleaver('Delay',[1; 0; 2; 1]);

Generate a random data sequence. Pass the data sequence through the interleaver and deinterleaver.

[dataIn,dataOut] = deal([]);            % Initialize data arrays

for k = 1:50
    data = randi([0 7],20,1);           % Generate data sequence
    intData = interleaver(data);        % Interleave sequence
    deIntData = deinterleaver(intData); % Deinterleave sequence
    
    dataIn = cat(1,dataIn,data);        % Save original data
    dataOut = cat(1,dataOut,deIntData); % Save deinterleaved data
end

Determine the delay through the interleaver and deinterleaver.

intlvrDelay = finddelay(dataIn,dataOut)
intlvrDelay = 8

After accounting for the delay, confirm that the original and deinterleaved sequences are identical.

isequal(dataIn(1:end-intlvrDelay),dataOut(intlvrDelay+1:end))
ans = logical
   1

Copyright 2012 The MathWorks, Inc.

Algorithms

This object implements the algorithm, inputs, and outputs described on the General Multiplexed Interleaver block reference page. The object properties correspond to the block parameters.

Extended Capabilities

Introduced in R2012a