(How to talk across a noisy room?)
Created: 2021-08-20 Fri 17:16
Yes, we can.
Using number theory!
We have a set \(M\) of messages (strings of length \(n\)).
We encode each \(m \in M\) to a longer string \(f(m)\).
So that \(f(m_1)\) and \(f(m_2)\) are not too close if \(m_1 \neq m_2\).
Given two strings \(n_1\) and \(n_2\), define the Hamming distance \(d(n_1,n_2)\)between them to be the number of places in which \(n_1\) and \(n_2\) differ.
Not too close = Hamming distance at least \(k\).
Allows \(\lfloor k/2 \rfloor \) errors to be corrected!
Allows \(\lfloor k/2 \rfloor \) errors to be corrected!
How do we find an \(f\)?
Using finite fields!
A field \(F\) is a set together with operations \(+\) (addition) and \(\times\) (multiplication) satisfying the familiar rules.
Take \(\mathbb F_p = \{0,1,\dots, p-1\}\)
with \(+\) and \(\times\) done modulo \(p\).
Theorem: \(\mathbb F_p\) is a field.
Multiplicative inverses in \(\mathbb F_5\).
For any field \(F\), let \(F[x]\) denote the set of polynomials with variable \(x\) and coefficients in \(F\).
Example: In \(\mathbb F_5[x]\), we have elements like
We add and multiply polynomials as usual, but remembering to always use the given operations for \(F\).
For example, in \(\mathbb F_5[x]\), we have \[ (\overline 2 x+ \overline 1) \cdot (\overline 1 x+ \overline 3) = \overline 2 x^2 + \overline 2 x + \overline 3. \]
Most of the usual properties of polynomials continue to hold.
Message space: length-3 strings of \(\{0,1,2,3,4\}\).
Encoding \((p_1, p_2, p_3)\)
Example:
What is the Hamming distance of the encodings of \(p\) and \(q\)?
At least 3!
Two distinct polynomials of degree at most 2 must differ in at least 3 out of the 5 values of \(x\) in \(\mathbb F_5\).
Encode: Length-3 string to length-5 string
Gain: Ability to correct any 1-bit errors.
Better than tripling!
Reed-Solomon codes (and their more sophisticated analogues) are used in many places!