1 / 13

Product Codes

Product Codes. An extension of the concept of parity to a large number of words of data. Row parity bit. Column parity bit. Data block. ----advantage ---- disadvantages. Hamming code method for error correction.

finn-potts
Download Presentation

Product Codes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Product Codes An extension of the concept of parity to a large number of words of data Row parity bit Column parity bit Data block ----advantage ---- disadvantages

  2. Hamming code method for error correction Number the group of bits starting with position 1 (not 0, as we usually do) and place the parity bits in logical positions 1, 2, 4, 8, etc. (i.e. integer powers of 2). The data bits take up the remaining positions. For example, suppose we were encoding a 7-bit ASCII character. Our bits would be: bit position: 1 2 3 4 5 6 7 8 9 10 11 p p p p (p indicates a parity bit; the remaining positions are data bits) Each parity bit checks for parity on a group of bits (including itself). The groups are determined in the following manner: Each bit is checked by all parity bits such that the sum of the parity bits' position numbers yields the position number of the bit in question. E.g. bit 6 (binary 0110) is checked by bits 4 and 2 since 4 + 2 = 6; bit 7 (binary 0111) is checked by bits 4 and 2 and 1 since 4 + 2 + 1 = 7; etc.)

  3. Another way of stating this is that each parity bit x (1, 2, 4, 8, etc.) checks all bits whose binary position representation has a 1 in place value x. Using these criteria, we come up with the following groups for the example of the 7-bit ASCII character: bit 1 checks bit 2 checks bit 4 checks bit 8 checks places: places: places: places: bin. dec. bin. dec. bin. dec. bin. dec. 0001 1 0010 2 0100 4 1000 8 0011 3 0011 3 0101 5 1001 9 0101 5 0110 6 0110 6 1010 10 0111 7 0111 7 0111 7 1011 11 1001 9 1010 10 1011 11 1011 11

  4. Suppose that our initial 7-bit character is 0011101. What values should be assigned to the parity bits initially? First, put the parity bits at the proper logical positions, as indicated above. This would give us: value: 0 0 1 1 1 0 1 bit position: 1 2 3 4 5 6 7 8 9 10 11 P P P P Now the groups are checked: Since bits 3, 5, 7, 9, 11 have values 0, 0, 1, 1, 1 bit 1 should be assigned a value of 1 Since bits 3, 6, 7, 10, 11 have values 0, 1, 1, 0, 1 bit 2 should be assigned a value of 1 Since bits 5, 6, 7 have values 0, 1, 1 bit 4 should be assigned a value of 0 Since bits 9, 10, 11 have values 1, 0, 1 bit 8 should be assigned a value of 0 So the initial group of bits stored or transmitted would be: value: 1 1 0 0 0 1 1 0 1 0 1 bit position: 1 2 3 4 5 6 7 8 9 10 11

  5. Now suppose that some electronic disturbance causes one bit to be changed (i.e. an error). Let us arbitrarily change bit 5. This gives the new value: value: 1 1 0 0 1 1 1 0 1 0 1 bit position: 1 2 3 4 5 6 7 8 9 10 11 The error-detection procedure (before the data is used) would also need to check the groups: Since bits 1, 3, 5, 7, 9, 11 have values 1, 0, 1, 1, 1, 1, the parity in this group is odd (incorrect). This means that there is an error in one of these bits. Since bits 2, 3, 6, 7, 10, 11 have values 1, 0, 1, 1, 0, 1, the parity in this group is even (OK). This narrows down the choice of suspect bits to bits 1, 5, or 9, since these are the bits in the first (incorrect) group that are not also in the second (correct) group.

  6. Since bits 4, 5, 6, 7 have values 0, 1, 1, 1, the parity in this group is odd (incorrect). Of the suspect bits 1, 5, or 9, only 5 is in this group, so this must be the bit in error. Since bits 8, 9, 10, 11 have values 0, 1, 0, 1, the parity in this group is even (OK). This is what we would expect, since bit 5 does not appear in this group. If a computer is using a Hamming code system like this, it does the error checking in a more "mechanical" way. It sets up a "parity check word" which has one bit for each of the groups. It puts a value of 0 in the bit if the group is OK, and a value of 1 in the bit if the parity for the group is incorrect. For the example shown above, this would give a parity check word of: 0 1 0 1 = 5dec

  7. Hamming Code Denoted as (n,k) where n is total number of bits, k is the number of data bits, (n-k) is number of parity bits. • Parity is taken over various combinations of the bits in a longer data block. • the generated check bits are used to form part of the code block. • An extension of the concept of parity to a large number of words of data. • The checking number (in binary) is Cn =1 for failure, Cn=0 for tally. • (C3C2C1C0 ) gives actual position of error in code word.

  8. Example: A single-error-correction/double-error-detecting hamming code for 16 symbols. (yellow column: Extra parity check makes code double error detecting).

  9. Cyclic Codes • An important subdivision of block codes • is easy to decode • The sum of any two code words in the code is also a code word. • Any cyclic shift of a code word in the code is also a code word. Bose-Chadhuri-Hocquenghem (BCH) Codes These are cyclic block codes and are a generalisation of Hamming codes that can be used for multiple-error correction. Implementation is very complicated. Reed Solomom Codes These are a subclass of BCH codes which have the largest possible code minimum distance. Often refered as nonbinary codes

  10. Symbol error-correcting property t of R-S code T=(MHD-1)/2 and MHD=(n-k+1) So n=k+2t, t=(n-k)/2 Here n, k, t refer to symbols of more than one binary digit, so the error correction capability will be in terms of groups or bursts of bits of error.

  11. Convolution code Hagelburger’s code IN OUT Parity check • The information digits are fed to a shift register and a parity check carried out between the first and fourth positions. • The parity digit is then interleaved between successive information digits by means of the switch S.

  12. Decoding complex • Corrects bursts of errors up to 6 digits in length provided there are >19 correct digits between bursts.

More Related