How can I define orthogonality in $GF(2)$?

126 Views Asked by At

Code Division Multiple Access (CDMA) makes (among others) use of Walsh-Hadamard matrices in which every row and column are orthogonal and each auto-correlation is fairly low. One example in ${\mathbb R}$ is:

$$ H^{(a)} = \begin{bmatrix} 1 & 1 \\ 1 & -1 \\ \end{bmatrix} $$

Clearly $<h_1, h_2> = 1\cdot 1 - 1\cdot 1 = 0$. I would like to explore to which extend I can apply a CDMA code (based on Hadamard matrices) to a binary string defined in $GF(2)$ (and not $GF(2^m)$).

One matrix for a code-length of two would be:

$$ H^{(b)} = \begin{bmatrix} 0 & 1 \\ 1 & 0 \\ \end{bmatrix} . $$

Addition in $GF(2)$ corresponds to bitwise XOR wheras multiplication corresponds to AND. Applying this I obtain $<h_1,h_2> = <[0,1], [1,0]> = ( 0\,\&\,1\, \oplus \,1\,\&\,0) = 0$, as expected.

However, also $<[0,0], [1,0]> = ( 0\,\&\,1\, \oplus \,0\,\&\,0) = 0$. But I don't think these vectors are orthogonal in $GF(2)$ (or are they?). If I use these for CDMA coding, the station that uses the code $[0,0]$ would always output a zero-stream, independent of the data.

In fact, only $\begin{bmatrix} 1 & 0 \\ 1 & 0 \\ \end{bmatrix}$ or $\begin{bmatrix} 0 & 1 \\ 0 & 1 \\ \end{bmatrix}$ would generate a non-zero inner product (according to my definition).

So I assume my definition of the inner product is wrong.