TPC Encoder

Turbo product code (TPC) encoder

  • Library:
  • Communications Toolbox / Error Detection and Correction / Block

Description

The TPC Encoder block performs 2-D turbo product code (TPC) encoding of an input message. The product code is a 2-D concatenation of linear block codes. The linear block codes can be a parity check code, a Hamming code, or a BCH code capable of correcting two errors. Extended and shortened codes can be applied independently on each dimension. For a description of 2-D TPC encoding, see Algorithms.

For information about valid code pairs and the error-correcting capability for each valid code pair, see Component Code Pairs.

Ports

Input

expand all

Input message bits to encode, specified as a column vector.

Data Types: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean

Output

expand all

TPC-encoded message, returned as a column vector with the same data type as the input signal.

Parameters

expand all

Row TPC parameters

Number of rows in the product code matrix, NR. The list of integer values varies depending on the setting for Extended codes.

Number of rows in the message matrix, KR. The list of integer values varies depending on the setting for Extended codes and Number of rows in code, Nr.

Select Specify shortened message length to specify a value for Number of rows in shortened message, Sr.

Number of rows in the shortened message matrix, SR, specified as an integer less than or equal to KR. When you specify this parameter, provide full-length NR and KR values to specify the (NR,KR) code pair. This code pair is then shortened to the (NRKR+SR,SR) code pair, where:

Dependencies

To enable this parameter, select Specify shortened message length.

Data Types: double

Column TPC parameters

Number of columns in the product code matrix, NC. The list of integer values varies depending on the setting for Extended codes.

Number of columns in the message matrix, KC. The list of integer values varies depending on the setting for Extended codes and Number of columns in code, Nc.

Select Specify shortened message length to specify a value for Number of columns in shortened message, Sc.

Number of columns in the shortened message matrix, SC, specified as an integer. When you specify this parameter, provide full-length NC and KC values to specify the (NC,KC) code pair. This code pair is then shortened to the (NCKC+SC, SC) code pair, where:

Dependencies

To enable this parameter, select Specify shortened message length.

Data Types: double

  • Code generation –– Simulate model using generated C code. The first time you run a simulation, Simulink® generates C code for the block. The C code is reused for subsequent simulations, as long as the model does not change. This option requires additional startup time, but the speed of the subsequent simulations is faster than Interpreted execution.

  • Interpreted execution –– Simulate model using the MATLAB® interpreter. This option shortens startup time speed, but the speed of the subsequent simulations is slower than Code generation. In this mode, you can debug the source code of the block.

Block Characteristics

Data Types

Boolean | double | integer | single

Multidimensional Signals

no

Variable-Size Signals

no

More About

expand all

Algorithms

Turbo product codes (TPC) are a form of concatenated codes used as forward error-correcting (FEC) codes. Two or more component block codes, such as systematic linear block codes, are used to construct TPCs. This encoder implements 2-D product code encoding, as described in [1], using two Linear Block Codes.

 Construction of Full-Length Message Product Codes

 Construction of Shortened Message Product Codes

References

[1] Pyndiah, R. M. "Near-Optimum Decoding of Product Codes: Block Turbo Codes." IEEE Transactions on Communications. Vol. 46, Number 8, August 1998, pp. 1003–1010.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

See Also

Blocks

Functions

Introduced in R2018b