Engee documentation

EngeeComms.ConvolutionalInterleaver

Rearrange input characters using a set of shift registers.

Library

EngeeComms

Block

Convolutional Interleaver

Description

The EngeeComms.ConvolutionalInterleaver system object rearranges the characters in the input sequence using a set of shift registers, each with its own delay value.

To rearrange characters using a set of shift registers with specified delays, follow the steps below:

  1. Create an EngeeComms.ConvolutionalInterleaver 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

  • ConvInterleaver = EngeeComms.ConvolutionalInterleaver() creates a system object to permute characters with by default properties. Example:

    ConvInterleaver = EngeeComms.ConvolutionalInterleaver()
  • ConvInterleaver = EngeeComms.ConvolutionalInterleaver(Name=Value) creates a system object to permute characters with each specified Name (name) property 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 сдвиговых регистров
    ConvInterleaver = EngeeComms.ConvolutionalInterleaver(NumRegisters=10)

Usage

intrlvseq = ConvInterleaver(inputseq) - rearranges the characters in the input sequence using a set of shift registers. The object outputs the sequence with rearranged characters.

intrlvseq = ConvInterleaver(inputseq)

Arguments

Input arguments

inputseq — input character sequence
`vector-column

Details

Input sequence in which you want to rearrange the characters.

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

Output arguments

intrlvseq - rearranged sequence
scalar | vector | matrix

Details

Output sequence with rearranged characters.

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

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 first shift register, which has zero delay).

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

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

The value of the first element of the InitialConditions parameters is not used because the first 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.