# Error-Detection Circuit — How does this work?

I'm currently studying for finals (I have the solutions here already, so this isn't helping me bypass doing homework or anything like that.)

My professor has done an unsatisfactory job explaining this particular circuit's step-by-step functioning and so I'm really confused:

1. how the columns are being generated and
2. how the errors are detected.

If anyone could help explain how this is working, I would appreciate it very much.

Problem: For the single error correcting code circuit, fill in the response to reception as far as necessary, and determine if any error is detected and, if so, what symbol is corrected.

Solution: the second from last position is corrected, yielding 0110100, time from left to right.

UPDATE: I think I finally have a hard-fought understanding of this circuit, except for one issue. If you could take a look at this proposed explanation and see if it's correct, I would again be very appreciative.

This is an error-detection circuit. It will tell you where the error in the given codeword is by outputting a 1 on the upper right. For the first seven digits of the codeword that are input, they are stored in the register as well as cycled through the feedback shift register in order to arrive at the 3 bits on the seventh timing. If these three check bits are nonzero, then there is an error. The right-hand side of the AND gate is enabled on the seventh timing, meaning the output of that AND gate will be a 1 when the input to the previous AND gate is a 001.

So, we wait for the shift feedback register to keep cycling through itself (the upper line of the XOR that goes into the shift feedback register is constantly 0 during this post-seventh timing cycling process, so it's always the contents of the final register XOR'd with 0). Once 001 manifests itself in the three registers, the AND gate outputs a 1 and is XOR'd with the given 7-unit delay register contents, yielding the location of the error.

The issue that I have with this is that it says the the correct solution is that the error bit was in the second-to-last bit. Is the error not in the third-to-last bit because we must wait until the clock refreshes in the registers for the 001 to be pushed into the AND gate in the thirteenth timing?

• I have no clue how to read the table 1~12, please elaborate on that. What are the three bit values on every line? – jippie Apr 30 '13 at 16:44
• I'm about 95% sure that those are the current values stored in the three registers on the bottom of the circuit diagram. I'm mainly confused about how the 7-unit delay (a series of 7 registers) is being factored into the generation of each row. – John Grange Apr 30 '13 at 16:46
• I suspect the three columns are the values of the square boxes at the given time. – Kaz Apr 30 '13 at 18:45
• Could this be related to a 7,4 Hamming code: 4 bits with 3 parity bits? That can detect and correct single-bit errors. – Kaz Apr 30 '13 at 18:46
• Yup! I should have mentioned that in the post, that's exactly what the topic is. – John Grange Apr 30 '13 at 18:49

## protected by KortukApr 30 '13 at 18:30

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).