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
N. The total number of symbols in each block. If this is less than 2^{M}-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(2^{256}):
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.
The following are the default field generator polynomials used when FLDPOLY is left empty or set to 0.
M | 2^{M}-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 |
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.