Reed–Solomon Interactive Simulator
GF(2³) Engine | RS(7,3) Code | 2-Symbol Error Correction
1. Source Bitstream (Input 9 bits)
Each 3 bits form 1 symbol in GF(2³). Total 3 data symbols.
2. Wireless Channel (Flip bits to test correction)
Click any bit below to simulate noise in the air.
Decoder Execution Log
Step-by-Step Walkthrough: Input 101011000
Input: 101 | 011 | 000
Decimal Values: 5 3 0
Data:
[5, 3, 0]
Calculated Parity:
[6, 4, 2, 5]
Full Codeword: 530 + 6425
Sent Bitstream: 101...
Received Bitstream: 001...
The first symbol is now 1 instead of 5.
[1, 3, 0, 6, 4, 2, 5]. It performs three math checks:
- Syndromes: It calculates a "check value." Since it isn't zero, it knows an error exists.
- Location: The Berlekamp-Massey algorithm identifies that the error is at Index 0.
- Correction: The Forney algorithm determines the error magnitude is 4. (1 XOR 4 = 5).
Corrected Symbols:
[5, 3, 0]
Output Bitstream: 101011000
Here: (7 symbols - 3 data) / 2 = 2 symbols. You can flip multiple bits inside a single symbol, and it still only counts as "1 error."
Under the Hood: How the Decoder Works
Step 1: Syndrome Calculation (The Detectors)
The decoder plugs the received data into the Galois Field. If the result isn't zero, an error exists.
Even for one error, all 4 syndromes "vibrate" because they are all mathematically linked to every position in the codeword.
Step 2: Location Search (The Scanner)
The decoder creates an Error Locator Polynomial. For your example, it finds the "pattern" in the syndromes and creates this equation:
It then tests every position (Index 0 to 6). It finds that when x = Index 1, the equation equals zero. Position identified!
Step 3: Calculating Magnitude (The Repair)
Now we know the error is at Index 1. We use the Forney Algorithm to find out how to fix it. It calculates the "Error Magnitude" by comparing the syndromes against the identified position.
Magnitude = 6 / 2 (in GF math) = 3
Step 4: The Final Correction
The decoder performs a final XOR (bit-wise addition) between what was received and the calculated error magnitude.
Data is now restored to its original state: 101 (Binary for 5).