180 likes | 496 Views
II. Linear Block Codes. Last Lecture. H Matrix and Calculation of d min Error Detection Capability Error Correction Capability Error Correction & Error Detection Operation. Decoding and Error Correction.
E N D
Last Lecture • H Matrix and Calculation of dmin • Error Detection Capability • Error Correction Capability • Error Correction & Error Detection Operation
Decoding and Error Correction Decoding: A rule to partition 2n possible received vectors into 2k disjoint subsets D1, D2,…,D2k such that the codeword vi is contained in the subset Di, 1≤i ≤2k Let C be an (n,k) linear block code with codewords v1, v2,…,v2k v Decoder Which vi was sent?? Channel r 2k codewords 2n n-tuples e Decoding Rule: Correct Decoding: Given vi is transmitted, error pattern e does not push r outside Di
Design of a Decoder How to divide 2n vectors into 2kdisjoint subsets such that the error correcting capability is optimal? In other words, which n-tuples should be designed such that they belong to a given subset Di?
Standard Array Partitioning 2n possible received vectors into 2k disjoint subsets with each subset containing only one codeword Di D2k D2 D1
Standard Array Partitioning 2n possible received vectors into 2k disjoint subsets with each subset containing only one codeword Di D2k D2 D1 e2≠v1,v2,…,v2k
Standard Array Partitioning 2n possible received vectors into 2k disjoint subsets with each subset containing only one codeword Di D2k D2 D1 e3≠v1,v2,…,v2k,e2,…,e2+v2k
Standard Array Partitioning 2n possible received vectors into 2k disjoint subsets with each subset containing only one codeword Di D2k D2 D1 e2n-k ≠Any previous element in the array
Theorem • No two n-tuples in the same row of a standard array are identical. • Every n-tuple appears in one and only one row. PROOF: • Given a linear block code is considered. By definition of the standard array construction, ej is not a codeword. Therefore, ej+ vj generate distinct patterns • Select row l<m, assume el+vi= em+vj.Therefore, • em= el+vi+vj • em= el+vs (because vi and vj are codewords) • This means that emcould be found in row l • This is a contradiction to the construction rule of the standard array
Standard Array Partitioning 2n possible received vectors into 2k disjoint subsets with each subset containing only one codeword Di D2k D2 D1 e2n-k ≠Any previous element in the array
Coset of a Code, Coset Leader Given the standard array. The 2n-k rows are called the cosets of the code. The first n-tuple ej of each coset is called the coset leader
Error Correction A Linear block code can correct 2n-k-1 error patterns corresponding to 2n-k-1 coset leaders Note that one of the coset leaders is the zero vector
Error Correction Methodology The error patterns that are most likely to occur should be used as the coset leaders Example: A (7,4) code can correct 2(7-4)-1=7 error patterns To correct a single error. The coset leaders should be selected as: e1= v1= (0 0 0 0 0 0 0) e2 =(0 0 0 0 0 0 1) e3 =(0 0 0 0 0 1 0) e4 =(0 0 0 0 1 0 0) e5 =(0 0 0 1 0 0 0) e6 =(0 0 1 0 0 0 0) e7 =(0 1 0 0 0 0 0) e8 =(1 0 0 0 0 0 0)
Theorem • All 2k n-tuples of a coset have the same syndrome. • The syndrome for different cosets are different PROOF: • (el+vi)HT=elHT+viHT=elHT(independent of vi) • Let ejand eibe the coset leaders. If they have the same syndrome • ejHT+eiHT=0. Therefore, • (ej+ei) is a codeword • This contradicts the definition of a linear block code because ejand eiare not codewords Advantages: We can use a syndrome decoding table which is much simpler to use than a standard array
Syndrome Decoding • Compute syndrome of r (i.e., rHT) • Locate the coset leader el whose syndrome is equal to rHT • v*= r+elwhere v* is the codeword output by the decoder
Weight Distribution of a Block Code For an (n.k) block code: Let Ai be the number of codewords of weight i in C. The numbers A0, A1, …, An are called the Weight Distribution Example: For the (7,4) code shown, A0 = A7 = 1, A1 = A2 = A5 = A6= 0 A3 = A4 = 7 Note that: ∑Ai=16=24 (Number of valid code words)
Weight Distribution and Probability of Detecting an Error Pattern For an (n,k) linear code: • Given that the bit error probability of the physical channel is p. The probability that an error pattern of weight j occurs is pj(1-p)n-j • In Total, there are nCj error patterns that have j erroneous bits. ONLY Aj of those are NOT DETECTABLE because they represent valid codewords • Probability of not detecting an error pattern (Pu(E)) is: Example: For the (7,4) code in the previous slide, Pu(E)=7p3(1-p)4 + 7p4(1-p)3 + p7
Weight Distribution of Coset Leaders Let αi denote the number of coset leaders of weight i. Then the numbers α0,α1,…, αn are the weight distribution of the coset leaders Probability of Correct Decoding of an error pattern Ps(E) PS(E)=∑αi pi(1-p)(n-i)where is the bit error probability of the channel Probability of False Decoding of an error pattern P(E) P(E)=1-PS(E)