Implementation – Correcting Errors » History » Version 1

ABDALLAH, Hussein, 03/13/2016 12:37 PM

1 1 ABDALLAH, Hussein
h1. Implementation – Correcting Errors
2 1 ABDALLAH, Hussein
3 1 ABDALLAH, Hussein
Correcting error is a complex and difficult topic. 
4 1 ABDALLAH, Hussein
There are several methods of error code correction. We choose a simple method to implement in software based on the cyclic properties of Golay. It is a ‘nearest neighbor decoder’, because it determines which Golay codeword is closest in terms of hamming distance.
5 1 ABDALLAH, Hussein
6 1 ABDALLAH, Hussein
Here is a sketch of the systematic search algorithm.
7 1 ABDALLAH, Hussein
8 1 ABDALLAH, Hussein
1. If the syndrome equal zero, then there is no error. So go to the step 5. Else, go to step 2.
9 1 ABDALLAH, Hussein
10 1 ABDALLAH, Hussein
2. If the syndrome has a weight of three or less, the syndrome matches the error pattern bit-for-bit, and can be used to XOR the errors out of the codeword; if so, remove the errors and go to step 5, else proceed to step 3.
11 1 ABDALLAH, Hussein
12 1 ABDALLAH, Hussein
2a. If the syndrome has a weight of one or two, do the same as the step before. Else proceed.
13 1 ABDALLAH, Hussein
14 1 ABDALLAH, Hussein
3. Toggle a trial bit in the codeword in an effort to eliminate one bit error. Restore any previously toggled trial bit. If all 23 bits have been toggled and tried once, go to step 4; else go to step 2a.
15 1 ABDALLAH, Hussein
16 1 ABDALLAH, Hussein
4. Rotate the codeword cyclically left by one bit. Go to step 1.
17 1 ABDALLAH, Hussein
18 1 ABDALLAH, Hussein
5. Rotate the codeword right to its original position, if needed.
19 1 ABDALLAH, Hussein
The goal is to play with the codeword in order to get syndrome weight equal three or less, in which case we can exclusive-OR the syndrome with the codeword to negate the errors. 
20 1 ABDALLAH, Hussein
21 1 ABDALLAH, Hussein
The correction technique is not on the goals for this project. We just mention these simple steps in order to give an idea about this issue. Otherwise, a lot of articles deal with this topic, you can refer to them for more information.