Contenuto principale

CCSDS LDPC Encoder

Encode data with LDPC code according to CCSDS Telemetry standard

Since R2025a

  • CCSDS LDPC Encoder block

Libraries:
Wireless HDL Toolbox / Error Detection and Correction

Description

The CCSDS LDPC Encoder block encodes data with low-density parity-check (LDPC) code specified in the Consultative Committee for Space Data Systems (CCSDS) Telemetry standard. The block accepts data bits and a stream of control signals as inputs. The block outputs encoded bits, a stream of control signals, and a signal that indicates when the block is ready to accept new inputs. The block supports the configuration types, (8160,7136) LDPC, and AR4JA LDPC.

The block supports scalar input and vector inputs of size 8. The block provides an architecture suitable for HDL code generation and hardware deployment. You can use this block in a CCSDS transmitter for satellite communication for deep space missions and also for any application that requires exceptional forward error correction performance. To know more about CCSDS Telemetry standard, see [1].

Examples

Ports

Input

expand all

Input data bits, specified as a Boolean scalar or an eight-element Boolean column vector. The block supports only scalar input when you set the Configuration type parameter to AR4JA LDPC.

Data Types: Boolean

Control signals accompanying the sample stream, specified as a samplecontrol bus. The bus includes the start, end, and valid control signals, which indicate the boundaries of the frame and the validity of the samples.

  • start — Indicates the start of the input frame

  • end — Indicates the end of the input frame

  • valid — Indicates that the data on the input data port is valid

For more details, see Sample Control Bus.

Data Types: bus

Since R2026a

Code rate index, specified as 0, 1, or 2. You must specify this value in the fixdt(0,2,0) format. Each code rate index value represents a specific code rate, as this table shows.

codeRateIdx ValueCode Rate
0 1/2
12/3
24/5

Dependencies

To enable this port, set the Configuration type parameter to AR4JA LDPC and then set the Code rate source parameter to Input port.

Data Types: fixdt(0,2,0)

Since R2026a

Block length index, specified as 0, 1, or 2. You must specify this value in the fixdt(0,2,0) format.

The block length varies with the specified block length index. The input block length must be a multiple of 8. This table shows the block length index values and their corresponding block lengths.

blkLenIdx ValueBlock Length
0 1024
14096
216384

Dependencies

To enable this port, set the Configuration type parameter to AR4JA LDPC and then set the Block length source parameter to Input port.

Data Types: fixdt(0,2,0)

Output

expand all

Encoded output data bits, returned as a Boolean scalar or an eight-element Boolean column vector. The block returns only a scalar output when you set the Configuration type parameter to AR4JA LDPC.

The output data size and type are same as the input data.

Data Types: Boolean

Control signals accompanying the sample stream, returned as a samplecontrol bus. The bus includes the start, end, and valid control signals, which indicate the boundaries of the frame and the validity of the samples.

  • start — Indicates the start of the output frame

  • end — Indicates the end of the output frame

  • valid — Indicates that the data on the output data port is valid

For more details, see Sample Control Bus.

Data Types: bus

Block ready indicator, returned as a Boolean scalar.

The block sets this signal to 1 when the block is ready to accept the start of the next frame. If the block receives an input ctrl.start signal while nextFrame is 0, the block discards the frame in progress and begins processing the new data.

Data Types: Boolean

Parameters

expand all

To edit block parameters interactively, use the Property Inspector. From the Simulink® Toolstrip, on the Simulation tab, in the Prepare gallery, select Property Inspector.

Since R2026a

Select the configuration type as (8160,7136) LDPC or AR4JA LDPC. For more information about the supported configurations, see [1].

Since R2026a

Select the code rate source as Property or Input port.

  • Property — Select this option to enable the Code rate parameter.

  • Input port — Select this option to enable the codeRateIdx input port.

Dependencies

To enable this parameter, set the Configuration type parameter to AR4JA LDPC.

Since R2026a

Select the code rate as 1/2, 2/3, or 4/5.

To enable this parameter, set the Configuration type parameter to AR4JA LDPC and then set the Code rate source parameter to Property.

Since R2026a

Select the block length source as Property or Input port.

  • Property — Select this option to enable the Block length parameter.

  • Input port — Select this option to enable the blkLenIdx input port.

Dependencies

To enable this parameter, set the Configuration type parameter to AR4JA LDPC.

Since R2026a

Select a block length as 1024, 4096, or 16384. The block length indicates the number of bits.

Dependencies

To enable this parameter, set the Configuration type parameter to AR4JA LDPC and then set the Block length source parameter to Property.

Algorithms

expand all

The CCSDS LDPC Encoder block supports the following configuration types: (8160,7136) LDPC, and AR4JA LDPC.

(8160, 7136) LDPC

This figure shows the block architecture for the configuration type (8160,7136) LDPC.

For each batch of 511 input bits, the row counter increases by one. Using the current row count, the Generator Matrix look-up table (LUT) provides the corresponding row of the matrix. The algorithm XORs each input bit with the parity bits, which are circularly shifted by one position. This operation is repeated for the entire set of input bits.

CCSDS LDPC Encoder (8160,7136) LDPC configuration architecture

AR4JA LDPC

This figure shows the block architecture for the configuration type AR4JA LDPC.

For each group of M input bits, the row counter increments by one, prompting Generator Matrix LUT block to output the corresponding row of the matrix, which consists of M rows and Nc columns. The algorithm computes parity bits using Nc parallel processing units. In each unit, depending on the value of the input bit, M parity bits are XORed with the corresponding M elements from the generator matrix. Here M is the submatrix size. The algorithm repeats this process for all inputs, circularly shifting the generator matrix by one position after each input bit is processed. Upon completion of the input bit processing, Parity Bits RAM provides the final parity bits as output.

CCSDS LDPC Encoder block AR4JA LDPC configuration architecture

References

[1] TM Synchronization and Channel Coding. Recommendation for Space Data System Standards. CCSDS 131.0-B-3. Blue Book. Issue 3. Washington, D.C.: CCSDS, September 2017.

[2] TM Synchronization and Channel Coding. Summary of Concept and Rationale CCSDS 130.1-G-3. Green Book. Issue 3, June 2020.

Extended Capabilities

expand all

Version History

Introduced in R2025a

expand all

See Also

Blocks