Engee documentation

EngeeComms.ConvolutionalDeinterleaver

Restoring the order of characters rearranged using shift registers.

Library

EngeeComms

Block

Convolutional Deinterleaver

Description

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

To restore the character order using a set of shift registers with specified delays, follow these steps:

  1. Create an object EngeeComms.ConvolutionalDeinterleaver 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 the order of characters with the default properties.

    Example:

    ConvDeinterleaver = EngeeComms.ConvolutionalDeinterleaver()
  • ConvDeinterleaver = EngeeComms.ConvolutionalDeinterleaver(Name=Value) — creates a system object to restore the order of characters with the specified properties as a pair Name=Value, where Name — the name of the property, and Value — the appropriate value. You can specify multiple pairs «name-value» the order of the pairs does not matter. Unspecified properties retain their default values.

    Example:

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

Using

deintrlvseq = ConvDeinterleaver(intrlvseq) — restores the input sequence of characters using a set of shift registers. The object outputs a reconstructed sequence of characters.

deintrlvseq = ConvDeinterleaver(intrlvseq)

Arguments

Input arguments

intrlvseq — character sequence

+ column vector

Details

The input sequence in which you want to restore the sequence of rearranged characters.

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

Output arguments

deintrlvseq — restored character sequence

+ scalar | vector | the matrix

Details

The output restored character sequence.

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

Features

NumRegisters — number of shift registers

+ 6 (default) | a positive integer

Details

The number of shift registers that the block uses internally.

Data types: Float64

RegisterLengthStep — register length step

+ 2 (by default) | a positive integer

Details

The number of characters by which the length of each subsequent shift register differs. Zero characters are stored in the last case.

Data types: Float64

InitialConditions — initial values of shift registers

+ 0 (default) | scalar | column vector

Details

Sets the values that fill in each shift register at the beginning of the simulation (with the exception of the last shift register, which has zero delay).

  • If the InitialConditions property is a scalar, then 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 parameter, then the -th element of this vector fills the entire -digital shift register.

The value of the last element of the InitialConditions parameter is not used, since the last shift register has zero delay.

Data types: Float64

Methods

Common to all system objects

step!

Run the system object operation algorithm

release!

Allow changing the value of a system object property

reset!

Resetting the internal states of a system object

Additional Info

Learn more about the delay of convolutional interleaving and de-interleaving (recovery)

Details

The total delay of the convolutional interleaving and de-interleaving methods is

,

where

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

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

The diagram below shows the structure of a common interleaver consisting of a set of shift registers, each of which has a preset delay, denoted as , and a switch for switching input and output characters through registers. The -th shift register contains characters where and it has a delay value equal to . With each new input character, the switch switches to a new register and enters a new character, while simultaneously deleting the oldest character in that register. When the switchboard reaches On the next new input, the switch returns to the first register.

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. "Realization of Optimum Interleavers." IEEE Transactions on Information Theory, IT-16 (3), May 1970. 338-345.