Design of Decoder implementation Objective The main concept in this implementation is the ability to detect and correct the errors caused by the channel as all channels are noisy and reliable so we use channel coding for error detection and error correction. Overview Standard array is defined as for an (n, k) linear block code, all possible 2n received vectors are arranged in an array, called the standard array, such that the first row contains the set of all the 2 k codewords {U}, starting with the all-zeros codeword (the all-zeros sequence must be a member of the codeword set). The term codeword is exclusively used to indicate a valid codeword entry in the first row of the array. The term vector is used to indicate any ordered sequence. The first column of the standard array contains all the correctable error patterns, each row, called a coset, consists of a correctable error pattern in the leftmost position, called a coset leader, followed by corrupted codewords (corrupted by that error pattern). The structure of the standard array for an (n, k) code as shown in figure 1.1. Figure 1.1 Standard array The array contains all 2n n-tuples in the space (each n-tuple appears only once). Each coset or row contains 2k n-tuples. Therefore, there are 2n /2k so it is 2n-k cosets (or rows). Steps for error detection and correction: Let H be the parity check matrix, let r the received vector 1. Compute S = r HT. • If S 0 then there is no error so accept r as the transmitted code word. • But if S 0 then there is an error occurred and it isn't a valid codeword. 2. Obtain error pattern of the corresponding S. 3. U = r e. Procedure First, We assumed an (6,3) decoding table with syndrome and Coset leader as shown in table 1.1. Table 1.1 (6,3) Code e 000 001 000 010 000 100 001 000 010 000 100 000 S 101 011 110 001 010 100 » Step by step decoding 1. S= r HT so S = [ r1 r2 r3 r4 r5 r6 ] [ 1 0 0 010 001 110 011 101] So syndrome circuit S = [ r1 ⊕ r4 ⊕ r6 r2 ⊕ r4 ⊕ r5 r3 ⊕ r5 ⊕ r6 ] and from the result received vector is xor with each other to get S1 , S2 and S3 then the general syndrome circuit is shown in figure 1.2. Figure 1.2 General Syndrome Circuit The general decoder for an (n , k ) linear code based on the table-lookup so the decoder implementation simulation by using proteus as shown in figure 1.3. Figure 1.3 General Syndrome Circuit Figure 1.3 Decoder Implementation We assumed that our received vector r = [ 1 0 1 1 0 1 ] and after calculating the syndrome S = [ 1 1 0 ] so the value of error patterns will be as following : 1. 2. 3. 4. 5. 6. The result of AND gate of [ 1 0 0 ] so e1 will be 0. The result of AND gate of [ 0 1 0 ] so e2 will be 0. The result of AND gate of [ 1 1 1 ] so e3 will be 1. The result of AND gate of [ 0 0 0 ] so e4 will be 0. The result of AND gate of [ 0 1 1 ] so e5 will be 0. The result of AND gate of [ 1 0 1 ] so e6 will be 0. Then after knowing the error pattern, the Value of codeword will be as U = [ 1 0 0 1 0 1 ] so the error in the third bit and it is corrected as shown in figure 1.4. Figure 1.4 Error detection and Correction of r Conclusion We discussed one of error detection and correction methods and it is standard array by assuming an error bit in received vector and making its decoder implementation diagram using proteus.