Engee documentation

EngeeComms.ConvolutionalDeinterleaver

Restore the order of characters rearranged using shift registers.

Library

EngeeComms.

Block

Convolutional Deinterleaver

Description

The EngeeComms.ConvolutionalDeinterleaver system object restores the order of characters in an input sequence using a set of shift registers, each with its own delay value. The comm.ConvolutionalDeinterleaver object must have the same number of registers as the corresponding interleaver.

To perform character order recovery using a set of shift registers with specified delays, follow the steps below:

  1. Create an EngeeComms.ConvolutionalDeinterleaver object and set its properties.

  2. Call the object with arguments as if it were a function.

To learn more about how to work with system objects, see Engee system objects.

Syntax

Creation

  • ConvDeinterleaver = EngeeComms.ConvolutionalDeinterleaver() creates a system object to restore character order with by default properties.

    Example:

    ConvDeinterleaver = EngeeComms.ConvolutionalDeinterleaver()
  • ConvDeinterleaver = EngeeComms.ConvolutionalDeinterleaver(Name=Value) creates a system object to restore character order with each specified property Name (name) set to the specified Value (value). You can specify additional arguments as a name-value pair in any order (Name1=Value1,…​,NameN=ValueN).

    Example:

    # восстанавливает порядок символов во входной последовательности с помощью набора из 10 сдвиговых регистров
    ConvDeinterleaver = EngeeComms.ConvolutionalDeinterleaver(NumRegisters=10)

Usage

deintrlvseq = ConvDeinterleaver(intrlvseq) - reconstructs the input character sequence using a set of shift registers. The object outputs the reconstructed character sequence.

deintrlvseq = ConvDeinterleaver(intrlvseq)

Arguments

Input arguments

intrlvseq — character sequence
`vector-column

Details

Input sequence in which you want to restore the sequence of transposed characters.

Data types: Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

Output arguments

deintrlvseq — recovered character sequence
scalar | vector | matrix

Details

Output reconstructed sequence of symbols.

The type and size of the output sequence corresponds to the type and size of intrlvseq.

Data types: Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

Properties

NumRegisters - number of shift registers
6 (by default) | positive integer

Details

The number of shift registers the block uses internally.

Data types: Float64

RegisterLengthStep — register length step
2 (by default) | positive integer

Details

The number of characters by which the length of each successive shift register differs. The last register stores zero characters.

Data types: Float64

InitialConditions - initial values of shift registers
0 (by default) | scalar | vector-column

Details

Sets the values that fill each shift register at the start of the simulation (except for the last shift register, which has zero delay).

  • If the InitialConditions property is a scalar, its value fills all shift registers except the last one.

  • If the InitialConditions property is a column vector whose length is equal to the NumRegisters parameters, then the th element of this vector fills the entire th shift register.

The value of the last element of the InitialConditions parameters is not used because the last shift register has zero delay.

Data types: Float64

Methods

Common for all system objects

step!

Start the system object’s operating algorithm

release!

Allow changing the value of a system object property

reset!

Reset internal states of the system object

Optional

More about delayed convolutional interleaving and de-interleaving (recovery)

Details

The total delay of convolutional interleaving-displacement methods is equal to

,

where

  • - number of registers, is equal to the value of the NumRegisters property;

  • - register length step is equal to the value of the RegisterLengthStep property.

The diagram below shows the structure of a generic interleaver consisting of a set of shift registers, each with a specified delay, denoted as , and a switch for switching input and output symbols across registers. The -th shift register contains symbols, where and has a delay value equal to . With each new input character, the switch switches to a new register and inputs a new character while deleting the oldest character in that register. When the switch reaches -th register, the switch returns to the first register on the next new input.

convolutional interleaver 1

Literature

  1. Clark, George C., and J. Bibb Cain. Error-Correction Coding for Digital Communications. Applications of Communications Theory. New York: Plenum Press, 1981.

  2. Forney, G., D., Jr. "Burst-Correcting Codes for the Classic Bursty Channel." IEEE Transactions on Communications, vol. COM-19, October 1971. 772-781.

  3. Ramsey, J. L. "Realisation of Optimum Interleavers." IEEE Transactions on Information Theory, IT-16 (3), May 1970. 338-345.