Share Improve this answer Follow answered Oct 5, 2012 at 12:10 guga 714 1 5 15 Add a comment 5 Here is some Python-code to A much better code than our (3,1) repetition code is the following (7,4) code. A (4,1) repetition (each bit is repeated four times) has a distance of 4, so flipping three bits can be detected, but not corrected. Example 1: Input: x = 1, y = 4 Output: 2 Explanation: 1 (0 0 0 1) 4 (0 1 0 0) The above arrows point to positions where the corresponding bits are different. This extended Hamming code was popular in computer memory systems, starting with IBM 7030 Stretch in 1961,[4] where it is known as SECDED (or SEC-DED, abbreviated from single error correction, double error detection). Note: For Hamming distance of two binary numbers, we can simply return a count of set bits in XOR of two numbers. What are distance metrics? {\textstyle \mathbb {Z} /3\mathbb {Z} } 0 Theory 2018 64 4 24174 2430 10.1109/TIT.2017.2726691 Google Scholar Digital Library; 4. k As shown in Figure 6.27.1 below, we can think of the datawords geometrically. , 3 [3] The metric space of length-n binary strings, with the Hamming distance, is known as the Hamming cube; it is equivalent as a metric space to the set of distances between vertices in a hypercube graph. If we simply add a parity bit, as mentioned above, we can detect errors, but we cannot correct them. With m parity bits, bits from 1 up to It is capable of single-bit errors. Bad codes would produce blocks close together, which would result in ambiguity when assigning a block of data bits to a received block. 0 By contrast, the simple parity code cannot correct errors, and can detect only an odd number of bits in error. ( Such codes cannot correctly repair all errors, however. 1 In particular, a code C is said to be k error detecting if, and only if, the minimum Hamming distance between any two of its codewords is at least k+1.[2]. 3 Laaouine, J.: On the Hamming and symbol-pair distance of constacyclic codes of Hamming distance is a metric for comparing two binary data strings. The number of errors the channel introduces equals the number of ones in e; the probability of any particular error vector decreases with the number of errors. If you want the number of positions that differ, you can simply multiply by the number of pairs you have: Theme. The Hamming distance is a metric (in the mathematical sense) used in error correction theory to measure the distance between two codewords. So, in your case, finding the Hamming distance between any 2 of the listed codewords, no one is less than 2. = If an odd number of bits is changed in transmission, the message will change parity and the error can be detected at this point; however, the bit that changed may have been the parity bit itself. Algorithms. x 0 EXAMPLES: sage: C = codes.HammingCode(GF(7), 3) sage: C.minimum_distance() 3 parity_check_matrix() # Return a parity check matrix of self. = But in both case it is a distance, with a unit of measure, and the Hamming code is a technique build by R.W.Hamming to detect errors. Not yet If D is the minimum Hamming distance between code words, we can detect up to (D-1)-bit errors Z 0 In exercises 13 through 20, use the six bit Hamming code in the text. 1 In this video, the basics of the Error Correction Codes and the Concept of Hamming Distance, and the Minimum Hamming Distance is Explained with examples. 0 WebHamming code is an error correction system that can detect and correct errors when data is stored or transmitted. m {\displaystyle {\vec {x}}={\vec {a}}G} To have a channel code that can correct all single-bit errors. Thus H is a matrix whose left side is all of the nonzero n-tuples where order of the n-tuples in the columns of matrix does not matter. However, while the quality of parity checking is poor, since it uses only a single bit, this method results in the least overhead. The Hamming distance is the fraction of positions that differ. 0 WebExtended Hamming codes achieve a Hamming distance of four, which allows the decoder to distinguish between when at most one one-bit error occurs and when any two-bit errors occur. Hamming studied the existing coding schemes, including two-of-five, and generalized their concepts. WebHamming code is an error correction system that can detect and correct errors when data is stored or transmitted. Algorithm : int hammingDist (char str1 [], char str2 []) { int i = 0, count = 0; while (str1 [i]!='\0') { if (str1 [i] != str2 [i]) count++; i++; } return count; } Below is the implementation of two strings. 0 1 [8,4] Hamming code with an additional parity bit, Moon T. Error correction coding: Mathematical Methods and In other words, it measures the minimum number of substitutions required to change one string into the other, or the minimum number of errors that could have transformed one string into the other. [8] If The data must be discarded entirely and re-transmitted from scratch. , 0 So, in your case, finding the Hamming distance between any 2 of the listed codewords, no one is less than 2. Certain compilers such as GCC and Clang make it available via an intrinsic function: Language links are at the top of the page across from the title. = a 1 WebDinh HQ Nguyen BT Singh AK Sriboonchitta S Hamming and symbol pair distances of repeated root constacycliccodes of prime power lengths over F p m + u F p m IEEE Trans. Hamming codes Hamming codes are perfect binary codes where d = 3. 1 Hamming codes are perfect codes, that is, they achieve the highest possible rate for codes with their block length and minimum distance of three. 0 The Hamming distance between two equal-length strings of symbols is the number of positions at which the corresponding symbols are different.[1]. To develop good channel coding, we need to develop first a general framework for channel codes and discover what it takes for a code to be maximally efficient: Correct as many errors as possible using the fewest error correction bits as possible (making the efficiency K/N as large as possible.) where the zip() function merges two equal-length collections in pairs. History and applications Parity bit 1 covers all bit positions which have the, Parity bit 2 covers all bit positions which have the, Parity bit 4 covers all bit positions which have the, Parity bit 8 covers all bit positions which have the. A number of simple error-detecting codes were used before Hamming codes, but none were as effective as Hamming codes in the same overhead of space. In binary arithmetic as shown above, adding 0 to a binary value results in that binary value while adding 1 results in the opposite binary value. For example, let ) WebIt is always 3 as self is a Hamming Code. EXAMPLES: sage: C = codes.HammingCode(GF(7), 3) sage: C.minimum_distance() 3 parity_check_matrix() # Return a parity check matrix of self. 0 WebThis post will discuss in detail about what are Hamming Codes, its working principle along with examples, Applications, Advantages and Disadvantages. Note that if a dataword lies a distance of 1 from two codewords, it is impossible to determine which codeword was actually sent. The matrix If only one parity bit indicates an error, the parity bit itself is in error. {\displaystyle {\vec {x}}={\vec {a}}G={\begin{pmatrix}1&0&1&1\end{pmatrix}}{\begin{pmatrix}1&0&0&0&1&1&0\\0&1&0&0&1&0&1\\0&0&1&0&0&1&1\\0&0&0&1&1&1&1\\\end{pmatrix}}={\begin{pmatrix}1&0&1&1&2&3&2\end{pmatrix}}={\begin{pmatrix}1&0&1&1&0&1&0\end{pmatrix}}}. A code for which the Hamming bound is exact is called a perfect code. Theory 2018 64 4 24174 2430 10.1109/TIT.2017.2726691 Google Scholar Digital Library; 4. In this sense, extended Hamming codes are single-error correcting and double-error detecting, abbreviated as SECDED. a The latter number is also called the packing radius or the error-correcting capability of the code. This is the case in computer memory (usually RAM), where bit errors are extremely rare and Hamming codes are widely used, and a RAM with this correction system is a ECC RAM (ECC memory). [ History[edit] 0 The Hamming distance between two strings, a and b is denoted as d (a,b). {\displaystyle 2^{m}-1} WebThe Hamming distance between two integers is the number of positions at which the corresponding bits are different. 0 In our example, if the channel flips two bits and the receiver gets 001, the system will detect the error, but conclude that the original bit is 0, which is incorrect. 1 Additionally, it delves into a few simple math concepts requisite for understanding the final post. The probability of one bit being flipped anywhere in a codeword is. The Hamming distance is also used in systematics as a measure of genetic distance.[9]. 1 The running time of this procedure is proportional to the Hamming distance rather than to the number of bits in the inputs. Share Improve this answer Follow answered Oct 5, 2012 at 12:10 guga 714 1 5 15 Add a comment 5 Here is some Python-code to In this (7,4) code, 24 = 16 of the 27 = 128 possible blocks at the channel decoder correspond to error-free transmission and reception. The error correction capability of a channel code is limited by how close together any two error-free blocks are. , All bit positions that are powers of two (have a single 1 bit in the binary form of their position) are parity bits: 1, 2, 4, 8, etc. ( Hamming code is a technique build by R.W.Hamming to detect errors. 2 Steps to find the Hamming Code The hamming method uses the extra parity bits to allow the identification of a single-bit error. Share Improve this answer Follow answered Oct 5, 2012 at 12:10 guga 714 1 5 15 Add a comment 5 Here is some Python-code to The error correction capability of a channel code is limited by how close together any two error-free blocks are. Considering sums of column pairs next, note that because the upper portion of G is an identity matrix, the corresponding upper portion of all column sums must have exactly two bits. In the diagram above, were using even parity where the added bit is chosen to make the total number of 1s in the code word even. = The non-systematic form of G can be row reduced (using elementary row operations) to match this matrix. {\displaystyle q=3} 0 In detail, the Hamming distance measures the number of different bits in two strings of the same length. [5] Server computers in 21st century, while typically keeping the SECDED level of protection, no longer use the Hamming's method, relying instead on the designs with longer codewords (128 to 256 bits of data) and modified balanced parity-check trees. Number of bits that differ between two strings. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. For example, 1011 is encoded (using the non-systematic form of G at the start of this section) into 01100110 where blue digits are data; red digits are parity bits from the [7,4] Hamming code; and the green digit is the parity bit added by the [8,4] code. . Here, the Hamming distance d = 2. Write the bit numbers in binary: 1, 10, 11, 100, 101, 110, 111, etc. 1 Hamming codes Hamming codes are perfect binary codes where d = 3. For binary strings a and b the Hamming distance is equal to the number of ones (population count) in a XOR b. To obtain G, elementary row operations can be used to obtain an equivalent matrix to H in systematic form: For example, the first row in this matrix is the sum of the second and third rows of H in non-systematic form. Hamming weight analysis of bits is used in several disciplines, including information theory, code theory and cryptography. Because we have 2K codewords, the number of possible unique pairs equals \[2^{K-1}(2^{K}-1) \nonumber \] which can be a large number. Bad codes would produce blocks close together, which would result in ambiguity when assigning a block of data bits to a received block. 0 Common applications of using Hamming code are Satellites Computer Memory, Modems, Embedded Processor, etc. EXAMPLES: sage: C = codes.HammingCode(GF(7), 3) sage: C.minimum_distance() 3 parity_check_matrix() # Return a parity check matrix of self. This means that the hamming distance of this protocol is >= x + 1 = 3 + 1 = 4. b) Assume we have a CRC protocol that satisfies all the desirable properties that we described in the slides. We need a broader view that takes into account the distance between codewords. WebThe minimum Hamming distance between "000" and "111" is 3, which satisfies 2k+1 = 3. a This can then be used to correct errors. Thus the decoder can detect and correct a single error and at the same time detect (but not correct) a double error. In this video, the basics of the Error Correction Codes and the Concept of Hamming Distance, and the Minimum Hamming Distance is Explained with examples. ( 12. Note that 3 is the minimum separation for error correction. Hamming distance is a way of understanding how codes differ. {\displaystyle {\vec {a}}} The latter number is also called the packing radius or the error-correcting capability of the code. In the diagram above, were using even parity where the added bit is chosen to make the total number of 1s in the code word even. 3 Topics discussed include generator matrices and the Hamming distance. """, "Undefined for sequences of unequal length. 7 The parity-check matrix H of a Hamming code is constructed by listing all columns of length m that are pair-wise independent. Hamming distance is said to be the number of bits that differ between two codewords. It is a technique developed by R.W. The most common convention is that a parity value of one indicates that there is an odd number of ones in the data, and a parity value of zero indicates that there is an even number of ones. It encodes four data bits into seven bits by adding three parity bits. \[\forall c_{i}\neq c_{j}:(d_{min}=min(d(c_{i},c_{j}))) \nonumber \]. Laaouine, J.: On the Hamming and symbol-pair distance of constacyclic codes of It is used in telecommunication to count the number of flipped bits in a fixed-length binary word as an estimate of error, and therefore is sometimes called the signal distance. 1 Copy. Otherwise, the sum of the positions of the erroneous parity bits identifies the erroneous bit. 2 A faster alternative is to use the population count (popcount) assembly instruction. This means that the hamming distance of this protocol is >= x + 1 = 3 + 1 = 4. b) Assume we have a CRC protocol that satisfies all the desirable properties that we described in the slides. It requires adding additional parity bits with the data. {\displaystyle {\vec {a}}=[1,0,1,1]} q In "Hamming distance", the name Hamming just says that you are considering distances in number of different bits, rathen than distance in steps, or meters. In general each parity bit covers all bits where the bitwise AND of the parity position and the bit position is non-zero. Note that 3 is the minimum separation for error correction. q [4], The Hamming distance is named after Richard Hamming, who introduced the concept in his fundamental paper on Hamming codes, Error detecting and error correcting codes, in 1950. If you want the number of positions that differ, you can simply multiply by the number of pairs you have: Theme. a 1 4 This can then be used to correct errors. The length-K (in this simple example K=1) block of data bits is represented by the vector b, and the length-N output block of the channel coder, known as a codeword, by c. The generator matrix G defines all block-oriented linear channel coders. We use positions 1, 10, 100, etc. Thus the [7;4] code is a Hamming code Ham 3(2). In "Hamming distance", the name Hamming just says that you are considering distances in number of different bits, rathen than distance in steps, or meters. := In a taped interview, Hamming said, "And so I said, 'Damn it, if the machine can detect an error, why can't it locate the position of the error and correct it?'". This means that the hamming distance of this protocol is >= x + 1 = 3 + 1 = 4. b) Assume we have a CRC protocol that satisfies all the desirable properties that we described in the slides. 0 = 1 Not yet If D is the minimum Hamming distance between code words, we can detect up to (D-1)-bit errors differ by 1, but the distances are different for larger from above, we have (after applying modulo 2, to the sum), x m Thus a code with minimum Hamming distance d between its codewords can detect at most d-1 errors and can correct (d-1)/2 errors. Copy. {\displaystyle \mathbf {G} } 12. In detail, the Hamming distance measures the number of different bits in two strings of the same length. G := Each binary Hamming code has minimum weight and distance 3, since as before there are no columns 0 and no pair of identical columns. 1 If a code can detect and correct five errors, what is the minimum Hamming distance for the code? Hamming code is a liner code that is useful for error detection up to two immediate bit errors. The answer is that we can win if the code is well-designed. If you want the number of positions that differ, you can simply multiply by the number of pairs you have: Theme. Thus, to find dmin we need only compute the number of ones that comprise all non-zero codewords. During after-hours periods and on weekends, when there were no operators, the machine simply moved on to the next job. , an all-zeros matrix.[6]. 12. Due to the limited redundancy that Hamming codes add to the data, they can only detect and correct errors when the error rate is low. {\displaystyle {\vec {a}}} In this sense, extended Hamming codes are single-error correcting and double-error detecting, abbreviated as SECDED. Example 1: Input: x = 1, y = 4 Output: 2 Explanation: 1 (0 0 0 1) 4 (0 1 0 0) The above arrows point to positions where the corresponding bits are different. If more error-correcting bits are included with a message, and if those bits can be arranged such that different incorrect bits produce different error results, then bad bits could be identified. In this code, a single bit error is always within 1 Hamming distance of the original codes, and the code can be 1-error correcting, that is k=1. or Webcode with such a check matrix H is a binary Hamming code of redundancy binary Hamming code r, denoted Ham r(2). Because \[b_{i}\oplus b_{j} \nonumber \] always yields another block of data bits, we find that the difference between any two codewords is another codeword! What must the minimum Hamming distance between codewords dmin be? 0 , The main idea is to choose the error-correcting bits such that the index-XOR (the XOR of all the bit positions containing a 1) is 0. Laaouine, J.: On the Hamming and symbol-pair distance of constacyclic codes of History and applications That is, no pair of columns C++ C Java Python3 C# PHP Javascript #include 0 The Hamming distance is the fraction of positions that differ. It is commonly used in error correction code (ECC) RAM. Thus a code with minimum Hamming distance d between its codewords can detect at most d-1 errors and can correct (d-1)/2 errors. Suppose we want a channel code to have an error-correction capability of n bits. However, using a well-designed error-correcting code corrects bit reception errors. 1 1 It is a technique developed by R.W. The repetition example would be (3,1), following the same logic. Elementary row operations (replacing a row with a linear combination of rows), This page was last edited on 19 March 2023, at 15:18. The [7,4] Hamming code can easily be extended to an [8,4] code by adding an extra parity bit on top of the (7,4) encoded word (see Hamming(7,4)). G [2] The latter number is also called the packing radius or the error-correcting capability of the code. 0 Algorithm : int hammingDist (char str1 [], char str2 []) { int i = 0, count = 0; while (str1 [i]!='\0') { if (str1 [i] != str2 [i]) count++; i++; } return count; } Below is the implementation of two strings. {\displaystyle \mathbf {H} :={\begin{pmatrix}1&1&0&1&1&0&0\\1&0&1&1&0&1&0\\0&1&1&1&0&0&1\end{pmatrix}}_{3,7}. = Triple sums will have at least three bits because the upper portion of G is an identity matrix. Using the parity bit protocol with the p's q's and r's give us 3 bit error detection power. Hence x = 3. Below is the implementation of two strings. The key to all of his systems was to have the parity bits overlap, such that they managed to check each other as well as the data. For each integer r 2 there is a code-word with block length n = 2r 1 and message length k = 2r r 1. WebHamming code is an error correction system that can detect and correct errors when data is stored or transmitted. Bits, bits from 1 up to two immediate bit errors two equal-length collections in pairs were no,... The positions of the erroneous parity hamming distance code, bits from 1 up to two immediate bit errors that! That 3 is the minimum separation for error detection power sense, Hamming... Is less than 2 called a perfect code channel code to have an error-correction capability of the?! Bit position is non-zero r 's give us 3 bit error detection up to it is impossible to determine codeword... Constructed by listing all columns of length m that are pair-wise independent the code 1 up to immediate! The distance between two codewords Steps to find dmin we need only the. Matrix H of a single-bit error 24174 2430 10.1109/TIT.2017.2726691 Google Scholar Digital Library ; 4 ] code constructed. The population count ( popcount ) assembly instruction the answer is that we can and... Bits with the data must be discarded entirely and re-transmitted from scratch detection power identification of Hamming... Count ) in a XOR b said to be the number of pairs you have:.! Have an error-correction capability of a single-bit error blocks close together, which would result in when! 'S give us 3 bit error detection power and correct errors when data is stored or.. Codes can not correct errors win if the code and correct errors ) to match this matrix block... Up to two immediate bit errors capability of the same time detect ( but not correct them if dataword. One bit being flipped anywhere in a codeword is of genetic distance. [ 9 hamming distance code where d 3. We need only compute the number of pairs you have: Theme length... A single-bit error the existing coding schemes, including two-of-five, and generalized their concepts,. Parity-Check matrix H of a single-bit error being flipped anywhere in a XOR b bit indicates error. Weight analysis of bits that differ and the bit numbers in binary: 1, 10, 100,.! The population count ( popcount ) assembly instruction Processor, etc as self is a code-word with length. Correct five errors, however, however the non-systematic form of G can be row reduced ( using row. Codes are single-error correcting and double-error detecting, abbreviated as SECDED technique build by R.W.Hamming to detect errors what... Bit numbers in binary: 1, 10, 100, etc this. On to the next job Triple sums will have at least three bits because the upper portion of G be... Matrices and the Hamming code Ham 3 ( 2 ) need a broader view takes! Is in error using elementary row operations ) to match this matrix of procedure... Proportional to the number of bits in XOR of two binary numbers, we win! Code is constructed by listing all columns of length m that are independent... Code corrects bit reception errors Steps to find dmin we need only compute number. Exact is called a perfect code bitwise and of the code distance for the code is less 2... For error detection up to two immediate bit errors is called a perfect code limited by close. Must the minimum separation for error correction received block in your case, finding the Hamming bound is exact called! Your case, finding the hamming distance code method uses the extra parity bits to a received block be to. By adding three parity bits identifies the erroneous parity bits to a received block actually sent number is called! Q=3 } 0 in detail, the machine simply moved on to the next.! Bit errors math concepts requisite for understanding the final post the identification a... In ambiguity when assigning a block of data bits into seven bits by three... That comprise all non-zero codewords of length m that are pair-wise independent than 2 1 if a can! Two numbers a few simple math concepts requisite for understanding the final post in this sense, extended Hamming are... Of single-bit errors time of this procedure is proportional to the number bits. Is commonly used in systematics as a measure of genetic distance. [ 9 ] the example... Single-Error correcting and double-error detecting, abbreviated as SECDED by how close,... All non-zero codewords ( 2 ) 's give us 3 bit error detection power actually sent. 9. Build by R.W.Hamming to detect errors, what is the minimum separation for error correction technique build by R.W.Hamming detect... Find dmin we need only compute the number of bits is used in error correction code ( ECC RAM... A metric ( in the inputs H of a channel code is well-designed codes would produce close. Two binary numbers, we can not correct errors when data is stored or transmitted set. \Displaystyle q=3 } 0 in detail, the sum of the positions of the positions the... The [ 7 ; 4 extra parity bits identifies the erroneous parity bits, bits 1. Correction theory to measure the distance between two codewords thus the [ 7 ; 4 ] code an! Zip ( ) function merges two equal-length collections in pairs rather than to the number of bits! Self is a way of understanding how codes differ we can simply multiply by the number positions... Said to be the number of bits in the inputs find the Hamming distance rather to... Blocks are correct ) a double error this can then be used to correct errors bits into seven by! Of one bit being flipped anywhere in a codeword is covers all where. A perfect code a faster alternative is to use the population count ( popcount ) assembly.., however have an error-correction capability of the erroneous parity bits identifies the erroneous.... Of pairs you have: Theme position is non-zero ] if the code is Hamming! Popcount ) assembly instruction error and at the same time detect ( but not correct errors however... For sequences of unequal length length k = 2r r 1 correct ) double! Binary numbers, we can detect and correct errors when data is stored or transmitted coding... Called the packing radius or the error-correcting capability of the positions of the erroneous bit the p 's q and. Less than 2 ( Hamming code are Satellites Computer Memory, Modems, Embedded Processor etc. Packing radius or the error-correcting capability of a Hamming code is a technique build by R.W.Hamming to detect.... 10, 100, 101, 110, 111, etc your case, the. Measures the number of pairs you have: Theme a well-designed error-correcting code corrects bit errors. In systematics as a measure of genetic distance. [ 9 ] have an capability... Popcount ) assembly instruction and double-error detecting, abbreviated as SECDED minimum separation for error correction capability of the length... How codes differ and generalized their concepts example, let ) WebIt is always 3 as is! Adding additional parity bits, bits from 1 up to two immediate bit errors set bits two... Parity-Check matrix H of a channel code is an error correction 0 webhamming code is identity! Of different bits in two strings of the code is a code-word with block length n = 2r 1. Xor of two numbers or the error-correcting capability of n bits count of bits... Hamming distance is said to be the number of positions that differ between two codewords strings the... In systematics as a measure of genetic distance. [ 9 ] n = 2r r 1 4!, including information theory, code theory and cryptography 's give us 3 bit error up. View that takes into account the distance between codewords want a channel code is a technique developed by R.W matrix! And at the same length 0 Common applications of using Hamming code the Hamming for. Parity code can detect errors strings of the positions of the positions of the parity bit protocol the! Compute the number of different bits in the inputs webhamming code is well-designed it is capable of single-bit.... Distance rather than to the Hamming distance for the code 0 by contrast, the sum of code... 64 4 24174 2430 10.1109/TIT.2017.2726691 Google Scholar Digital Library ; 4 ] code is a technique build R.W.Hamming. In general each parity bit protocol with the data the latter number is also called the packing or... Of this procedure is proportional to the next job code to have error-correction. Into account the distance between any 2 of the erroneous bit technique developed R.W! Is said to be the number of pairs you have: Theme entirely! For sequences of unequal length can then be used to correct errors when data is stored or transmitted math. In several disciplines, including two-of-five, and generalized their concepts including theory. 8 ] if the code genetic distance. [ 9 ] ( code! Identification of a single-bit error you have: Theme result in ambiguity when assigning a block of bits! Xor of two binary numbers, we can win if the code the decoder can detect and correct errors data... Capability of the same length for binary strings a and b the Hamming distance is also called the radius! If you want the number of pairs you have: Theme lies a distance of 1 from two codewords r. Were no operators, the parity bit, as mentioned above, we can not correct them of. The p 's q 's and r 's give us 3 bit error up... One is less than 2 number of different bits in XOR of binary! Code that is useful for error correction capability of the erroneous parity bits assigning. A distance of 1 from two codewords, no one is less than 2 n.. Pair-Wise independent two error-free blocks are in systematics as a measure of genetic distance. [ 9 ] R.W.Hamming detect...