140 likes | 450 Views
Meggit Decoder. Problem Statement. To correct all single errors in n-bit codeword , n error patterns of single errors and their corresponding syndromes need to be stored (Complexity ) . n error patterns of single error. Solution.
E N D
Problem Statement To correct all single errors in n-bit codeword, n error patterns of single errors and their corresponding syndromes need to be stored (Complexity ) n error patterns of single error
Solution • Store the syndrome of the error pattern that corresponds to an error in the last bit ONLY. • Cyclically shift the erroneous codeword till the error becomes in the last bit • The syndrome of the shifted codeword matches the stored one • Correct the shifted Codeword • Cyclically shift the corrected codeword till the corrected bit returns back to its original location
Example Consider a (7,4) Cyclic Code with g(X)=1+X+X3 e(X)= X2 e= 0 0 1 0 0 0 0 r(X)= 1+X2 +X3 +X5 +X6 u(X)=1+X+X2 +X3 v(X)= 1+X3 +X5 +X6 Encoder Decoder r= 1 0 1 1 0 1 1 v= 1 0 0 1 0 1 1 u= 1 1 1 1
r= 1 0 1 1 0 1 1 r(1)= 1 1 0 1 1 0 1 r(2)= 1 1 1 0 1 1 0 r(3)= 0 1 1 1 0 1 1 r(4)= 1 0 1 1 1 0 1 Syndrome Circuit S=101? Yes No Correct = 1 0 1 1 1 0 0 = 0 1 0 1 1 1 0 = 0 0 1 0 1 1 1 = 1 0 0 1 0 1 1 r= 1 0 1 1 0 1 1
Syndrome Circuit Syndrome Circuit of (7,4) Cyclic Code with g(X)=1+X+X3 n=7, k=4 n-k=3 shift registers 1 1 1 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 0 1 0 1 1 r(X)= X2 +X4 +X5 r=0 0 1 0 1 1 0 s=1 0 1
Syndrome of r(1)(X) r(X)= X2 +X4 +X5 r=0 0 1 0 1 1 0 0 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 1 1 0 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 r(1)(X)= X3 +X5 +X6 r(1)= 0 0 0 1 0 1 1 s= 1 0 0
Theorem 1 1 1 0 1 0 1 1 1 0 0 0 1 Syndrome Circuit s= 1 0 1 r= 0 0 1 0 1 1 0 1 extra cycle in the syndrome circuit with input =0 s= 1 0 0 Syndrome Circuit r(1)= 0 0 0 1 0 1 1
Syndrome of (1)(X) r(X)= X2 +X4 +X5 (X)= X2+X4+X5 +X6 = 0 0 1 0 1 1 1 r=0 0 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 0 1 1 1 1 1 0 0 0 (X)= 1+X3+X5 +X6 = 1 0 0 1 0 1 1 s= 0 0 0
Theorem 2 1 1 1 1 0 1 1 0 0 0 1 0 Syndrome Circuit s= 1 0 1 r= 0 0 1 0 1 1 0 1 extra cycle in the syndrome circuit with input =1 = 0 0 1 0 1 1 1 s= 0 0 0 Syndrome Circuit = 10 0 1 0 1 1
r= 1 0 1 1 0 1 1 Meggit Decoder 0 1 1 0 1 1 1 0 1 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 0 0 1 0 0 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1
Double errors • Store the syndrome of the double error patterns that have an error in the last bit. Ex: For a (7,4) Cyclic code, the double error patterns that have 1 in the 7th bit are 1000001, 0100001, 0010001, 0001001, 0000101, and 0000011 • Cyclically shift the erroneous codeword till one of the two errors becomes in the last bit • The syndrome of the shifted codeword matches one of the stored ones • Correct the last bit of the codeword • Cyclically shift the corrected codeword till the remaining error becomes in the last bit • Correct the last bit of the codeword • Cyclically shift the corrected codeword till the corrected bits return back to their original location