Hamming Code Error Detection

662 Views Asked by At

I am learning few things about hamming code and error detection so my question may sound stupid. So i know that lets i ahve (7,4) hamming code and i made transpose of parity check matrix H(t). Now say my code word was Y="1001000" now i need to find the error i know the procedure that you compute syndrome by Y.H(t) and i get 110 now i know from the table my error is "e=001000" and i can go on to correct the third bit my question is how do you compute "e" if you cannot have a look at the syndrome table in other words what is the formula to compute "e" when you only have your code word and your H(t) matrix and you cannot correspond to the syndrome table? If it is stupid pardon me. Thanks anyways.

2

There are 2 best solutions below

2
On BEST ANSWER

There is no such thing as a stupid question, and this question is actually an important question in coding theory. Your problem is in fact equivalent to the "decoding problem," i.e. you want to find the transmitter codeword $x$ given that you have received $y$ (As once you know $e$, you can get $x = y+e$ and vice versa). The optimal way of doing this (to minimize the block error probability) is to choose the most likely transmitted vector $x = Gs$ given that what you have received is $y$. Due to its various symmetries, this becomes a rather straightforward task in the case of a Hamming code. In a general code with a general parity check matrix, there is unfortunately no easy way of doing it: You will have to calculate the probabilities $p(s_i|y)$, where $s_i$ are your possible data-words, and choose the $s_j$ that maximizes this probability. In fact, the only reason as to why there are different (suboptimal) decoding algorithms (such as the message passing algorithms for LDPC codes) is that the optimal decoding procedure described above is a very difficult (computationally expensive) task.

1
On

if you have the matrix $H$ then you can find all codewords and will build the table of syndroms.