How to decode a Hadamard message that was encoded using a generator matrix?

252 Views Asked by At

I encoded a message $x = 110$ using the generator matrix method described on this wikipedia page: https://en.wikipedia.org/wiki/Hadamard_code

Generator Matrix method

I used the generator matrix of the punctured Hadamard code. On the wikipedia page they show an example with $k = 3$, so the generator matrix $G'$ will be the same for encoding my message $x = 110$.

I use $x$ as a row vector:

\begin{bmatrix} 1&1&0 \end{bmatrix}

and LEFT multiply it with $G'$:

\begin{bmatrix} 1&1&1&1\\0&0&1&1\\0&1&0&1 \end{bmatrix}

and we get $pHad(x) = x \cdot G' =$ \begin{bmatrix} 1&1&2&2 \end{bmatrix}

However this is weird, because the wiki says that the mapping goes as follows:

$pHad(x) : \{0,1\}^k \rightarrow \{0,1\}^{2^{k-1}}$

yet I have 2's in my encoded word. I guess I need to "mod 2" all the values in my answer as well? So then my encoded word would become:

$pHad(x) = 1100$ ?

However, now comes my biggest question: How do I decode this encoded message back into the original message $x$?

EDIT: I have seen the decoding algorithm on the wiki, but I do not understand it. It says I have to pick "j uniformly at random"? This seems like only a way to prove correctness, not an actual algorithm I can use..