Go to www.awrcorp.com
Back to search page Click to download printable version of this guide.

Reed-Solomon Encoder: RS_ENC



RS_ENC is a Reed-Solomon encoder. It accepts blocks of K information symbols and adds N-K parity symbols, producing output blocks of length N. It is capable of correcting (N-K)/2 symbols.

RS_ENC supports shortened codes, specifying the Galois field generator polynomial, and specifying the initial root and scaling factor for the code generator polynomial. RS_ENC also supports binary signals, internally automatically converting to symbols, encoding the symbols, then converting back to binary.

The Reed-Solomon Decoder block RS_DEC performs the decoding operation.


Name Data Type Description Unit Type Default
ID N Element ID Text A1
N I Block length Scalar 7
K I Number of information symbols Scalar 5
*M I Bits per symbol for binary signals Scalar  
*FLDPOLY I Galois field generator polynomial Scalar  
*GENSTART I First root index of code generator polynomial Scalar 1
*H I Scaling of code generator polynomial root index Scalar 1
*BITORD E Bit ordering for binary signals N/A Decreasing

* indicates a secondary parameter

Parameter Details

N. The total number of symbols in each block. If this is less than 2M-1, where M is a non-negative whole number between 2 and 16, the code is a shortened code. This should be between 3 and 65535, inclusive.

K. The number of information symbols encoded in each block. The maximum number of correctable errors is (N-K)/2 rounded down.

M. The number of bits per symbol, only used if the signal is binary. If this is left empty, it will be set based on N.

FLDPOLY. The decimal representation of the generator polynomial defining the Galois field. For example, the following is a valid primitive polynomial for the Galois field GF(2256):

The decimal value for this polynomial is 285.

Set to 0 or empty to use a default polynomial. The Implementation Details section lists the different default polynomials.

GENSTART. The logarithm (index) of the first root of the code generator polynomial. The generator polynomial is defined using GENSTART and H:

For example, the CCSDS Telemetry Channel Coding recommendation [1] specifies the following code generator polynomial:

The corresponding settings for GENSTART and H are then GENSTART=112 and H=11.

H. The scaling factor used in defining the roots of the code generator polynomial, see GENSTART.

BITORD. Determines the ordering of bits when the input signal is binary.

  • Decreasing: The first bit received is the high order bit of the symbol.

  • Increasing: The first bit received is the low order bit of the symbol.

Data Input

Node No. Type Purpose
1 Digital Data to Decode

Data Output

Node No. Type Purpose
2 Digital Decoded Data

Implementation Details

The following are the default field generator polynomials used when FLDPOLY is left empty or set to 0.

M 2M-1 Default Generator Polynomial
2 3 7
3 7 11
4 15 19
5 31 37
6 63 67
7 127 137
8 255 285
9 511 529
10 1023 1033
11 2047 2053
12 4095 4179
13 8191 8219
14 16383 17475
15 32767 32771
16 65535 69643

Recommendations for Use

The following table lists the settings for several communications standards:

Parameter ATSC DTV[1] ETSI DVB[2] CCSDS[3]
N 207 204 255
K 187 188 223
FLDPOLY 285 (default) 285 (default) 391
GENSTART 0 0 112
H 1 1 11

Note that CCSDS also specifies a dual-basis symbol representation, which is not currently supported by the block.


[1] Consultative Committee for Space Data Systems, "Telemetry Channel Coding", CCSDS 101.0-B-3 Blue Book, May 1992

[2] Advanced Television Systems Committee, "ATSC Standard: Digital Television Standard, Revision B with Amendments 1 and 2", A/53B

[3] European Telecommunications Standards Institute, "Digital Video Broadcasting (DVB); Framing structure, channel coding and modulation for digital terrestrial television", EN 300 744 V1.1.2 (1997-08)

Please send email to awr.support@ni.com if you would like to provide feedback on this article. Please make sure to include the article link in the email.

Legal and Trademark Notice