Engee documentation

EngeeComms.ConvolutionalInterleaver

Rearranging input characters using a set of shift registers.

Library

EngeeComms

Block

Convolutional Interleaver

Description

System object EngeeComms.ConvolutionalInterleaver rearranges the characters in the input sequence using a set of shift registers, each of which has its own delay value.

To perform character permutation using a set of shift registers with specified delays, follow these steps:

  1. Create an object EngeeComms.ConvolutionalInterleaver 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 for rearranging characters with default properties.

    Example:

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

Using

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

intrlvseq = ConvInterleaver(inputseq)

Arguments

Input arguments

inputseq — input character sequence

+ column vector

Details

The input sequence in which the characters need to be rearranged.

Типы данных

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

Output arguments

intrlvseq — sequence with rearranged characters

+ scalar | vector | the matrix

Details

An output sequence with rearranged characters.

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

Типы данных

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

Features

# RegisterLengthStep — register length step
Scalar / array of real numbers

Details

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

# NumRegisters — number of shift registers
Scalar / array of real numbers

Details

The number of shift registers the block uses internally.

# InitialConditions — initial values of shift registers
Scalar / array of real and/or complex numbers

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.

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.