I have already read different things about hamming distance, hamming code, detection and correction of memory errors, but I am still not understanding many things.
I know that the hamming distance between 2 codewords is the number of bits to be reversed to convert one codeword into the other.
I know that the hamming code is the set of all possible codewords. The codewords are composed of data bits and control bits, hence the number of bits in a codeword is
n = m + r, where
m is the number of data bits and
r is the number of check bits. And the number of possible codewords with
n bits should be $2^n$.
One thing I am not understanding is what are these valid and invalid codewords and how to 'calculate' them? Why a codeword is valid and invalid? What is the connection with the parity bits? How to find an invalid codeword?
I'm sorry if I am asking many things together, but I am really not understanding exactly the concepts I cited above.