# Error Detection and Correction

Apply error detection and correction using:

Cyclic redundancy check (CRC) coding techniques. CRC generators and detectors that are optimized for HDL are also included.

Block coding techniques including linear block codes, Hamming codes, Bose–Chaudhuri–Hocquenghem (BCH) codes, Reed-Solomon (RS) codes, low-density parity-check (LDPC) codes, and turbo product codes (TPC). RS encoders and decoders that are optimized for HDL are also included.

Convolutional coding techniques including convolutional, turbo, a posteriori probability (APP), and Viterbi techniques. Turbo and Viterbi decoders that run with GPUs for processing speed improvement are also included.

Galois fields to enable manipulation of even and odd ordered elements of finite fields.

To learn more about error control codes, see Error Detection and Correction.

## Functions

## Objects

## Blocks

## Topics

**Error Detection and Correction**

Detect errors using cyclic redundancy check (CRC) codes. Learn about various error-control channel coding techniques.

**Transmit and Receive Shortened Reed-Solomon Codes**

Transmit and receive standard and shortened RS-encoded, 64-QAM-modulated data through an AWGN channel.

**Reed-Solomon Coding with Erasures, Punctures, and Shortening in Simulink**

This model shows how to configure Reed-Solomon (RS) codes to perform block coding with erasures, punctures, and shortening.

**Punctured Convolutional Encoding**

This model shows how to use the Convolutional Encoder and Viterbi Decoder blocks to simulate a punctured coding system.

**Creation, Validation, and Testing of User Defined Trellis Structure**

Use MATLAB^{®} to create and validate a user defined trellis structure, then use
a unit test bench built in Simulink^{®} to test the implementation.

This example shows how to work with Galois fields.

**Representation of Polynomials in Communications Toolbox**

You can specify polynomials as a character vector or string scalar by using a variety of syntaxes.