Files
NoteNextra-origin/content/CSE5313/CSE5313_L6.md
2025-11-04 12:43:23 -06:00

248 lines
6.5 KiB
Markdown

# CSE5313 Coding and information theory for data science (Lecture 6)
## Recap
### Vector spaces and subspaces over finite fields
$\mathbb{F}^n$ is a vector space over $\mathbb{F}$.
With point-wise vector addition and scalar multiplication.
<details>
<summary>Example</summary>
$\mathbb{F}_2^4$ is a vector space over $\mathbb{F}_2$.
Let $v=\begin{pmatrix}
1 & 1 & 1 & 1
\end{pmatrix}$
Then $v$ is a vector in $\mathbb{F}_2^4$ that's "orthogonal" to itself.
$v\cdot v=1+1+1+1=4=0$ in $\mathbb{F}_2$.
In general field, the dual space and space may intersect non-trivially.
</details>
Let $V$ be a subspace of $\mathbb{F}^n$.
$V$ is a subgroup of $\mathbb{F}^n$ under vector addition $(\mathbb{F}^n,+)$.
- Apply the theorem: If $H$ is finite, non-empty, and closed under the operation of $G$, then $H$ is a subgroup of $G$.
<details>
<summary>Proof</summary>
Since $H\subseteq G$, $H$ is non-empty and closed under the operation of $G$ and finite, then $H\leq G$.
left to show:
Associativity: inherited from $G$.
Unit element: $0\in H$.
Consider $a\in H$, $a,a^2,a^3,\cdots$ are in $H$. Since $H$ is finite, there exists $i,j\in\mathbb{N}$ such that $a^i=a^j$.
Then $a^i=a^j\iff a^{i-j}=e\in H$.
Inverses: $a^{-1}\in H$.
Automatically holds for unit element traversing.
</details>
> Is every subgroup of $\mathbb{F}^n$ a subspace?
<details>
<summary>Answer</summary>
No.
Consider $F_4=\{0,1,x,x+1\}$ (field extension of $\mathbb{F}_2$ with $p(x)=x$).
$F_4^2=\{(a,b):a,b\in F_4\}$, $\{(0,0),(1,1)\}$ is a subgroup of $(F_4^2,+)$.
But the span of $F_4\{(1,1)\}$ is $\{(0,0),(1,1),(x,x),(x+1,x+1)\}\neq \{(0,0),(1,1)\}$, which is not a subspace of $F_4^2$.
</details>
Cosets in this definition are called Affine subspaces.
$$
V+a=\{v+a:v\in V\}\text{ for some }a\in \mathbb{F}^n
$$
## New content
### Linear codes
A linear code $\mathcal{C}$ is a subspace of $\mathbb{F}^n$ over $\mathbb{F}$.
- The dimension of $\mathcal{C}$ is denoted by $k$.
- The minimum Hamming distance of $\mathcal{C}$ is denoted by $d$.
- Notation $\mathcal{C}= [n,k,d]_{\mathbb{F}}$.
Two equivalent ways to constructing a linear code:
- A **generator matrix** $G\in \mathbb{F}^{k\times n}$ with $k$ rows and $n$ columns.
$$
\mathcal{C}=\{xG:x\in \mathbb{F}^k\}
$$
- The left image of $G$ is $\mathcal{C}$.
- The rows of $G$ are a basis for $\mathcal{C}$.
- A **parity check** matrix $H\in \mathbb{F}^{(n-k)\times n}$ with $(n-k)$ rows and $n$ columns.
$$
\mathcal{C}=\{c\in \mathbb{F}^n:Hc^\top=0\}
$$
- The right kernel of $H$ is $\mathcal{C}$.
- Multiplying $c^\top$ by $H$ "checks" if $c\in \mathcal{C}$.
### Encoding of linear codes
Reminder:
- Encoding is the process of mapping a message $u\in \mathbb{F}^k$ to a codeword $c\in \mathcal{C}\subseteq \mathbb{F}^n$.
$E: \mathbb{F}^k\to \mathcal{C}$ is a linear map.
Let $\mathcal{C}= [n,k,d]_{\mathbb{F}}$ be a linear code with generator matrix $G\in \mathbb{F}^{k\times n}$.
- Encoding is given by $E(x)=xG$.
- It is injective (1-1). Suppose otherwise, then there exists $x_1,x_2\in \mathbb{F}^k$ such that $x_1G=x_2G$. Then $x_1G-x_2G=0\implies (x_1-x_2)G=0\implies x_1-x_2=0\implies x_1=x_2$. Therefore, $E$ is injective.
So linear codes implies linear encoding: $E(x)+E(y)=E(x+y)$.
### Systematic codes
Fact: Every $G\in \mathbb{F}^{k\times n}$ can be brought to the form $G_{sys}=(I|A)$ by
- Row operations.
- Permutation of columns.
Fact $\{xG|x\in \mathbb{F}^k\}$ and $\{xG_{sys}|x\in \mathbb{F}^k\}$ are equivalent.
- Same length $n$.
- Same dimension $k$.
- Same minimum Hamming distance $d$.
Encoding a systematic code:
- The input is a part of the output.
- Efficient encoding
- Immediate decoding (if no errors).
### Codes, cosets, encoding, decoding
Linear code $[n,k,d]_{\mathbb{F}}$ is a $k$ dimensional subspace of $\mathbb{F}^n$.
Size of the code is $|\mathbb{F}|^k$.
Encoding: $x\to xG$.
Decoding: $(y+e)\to x$, $y=xG$.
Use **syndrome** to identify which coset $\mathcal{C}_i$ that the noisy-code to $\mathcal{C}_i+e$ belongs to.
$$
H(y+e)^\top=H(y+e)=Hx+He=He
$$
### Syndrome decoding
- Heavily depends onn the linear structure of the code.
Linear code $\mathcal{C}= [n,k,d]_{\mathbb{F}}$ is a $k$-dimensional subspace of $(\mathbb{F}^n,+)$.
**Shift of** Linear code $[n,k,d]_{\mathbb{F}}$ is a $k$-dimensional affine subspace of $\mathbb{F}^n$.
All cosets of the same size
If $w_H(e)\leq \lfloor \frac{d-1}{2}\rfloor$, then it is possible to extract $y$ from $y+e$.
by syndrome decoding, we can do better than exhaustive search.
Idea:
Let $y+e$ belogns to the coset $\mathcal{C}+e$.
Moreover,$y_1+e$ and $y_2+e$ are in the same coset.
#### Standard Array
Let $\mathcal{C}= [n,k,d]_{\mathbb{F}}$ and denote $|F|=q$.
- Then $|\mathcal{C}|=q^k$.
- The number of cosets is $q^{n-k}$.
Then we arrange all $q^n$ elements of $\mathbb{F}^n$ into a $q^{n-k}\times q^k$ array.
- So that every row is a coset (including $\mathcal{C}$ itself)
- Lightest word in each cosets on the leftmost column
<details>
<summary>Example</summary>
Let $\mathbb{F}=\mathbb{Z}_2$ and $C=\{xG|x\in \mathbb{F}_2\}$
$$
G=\begin{pmatrix}
1 & 0 & 1 & 1 & 0\\
0 & 1 & 1 & 0 & 1
\end{pmatrix}
$$
So $\mathcal{C}=\{00000,10110,01011,11101\}$.
Then $G=[5,2,3]_2$.
The standard array is:
First row is $\mathcal{C}$.
Second row is $\mathcal{C}+(00001)$,
Third row is $\mathcal{C}+(00010)$.
Fourth row is $\mathcal{C}+(00100)$.
|00000|10110|01011|11101|
|---|---|---|---|
|00001|10111|01010|11100|
|00010|10100|01001|11110|
|00100|10010|01101|11000|
</details>
Any two elements in a row are of the form $y_1'=y_1+e$ and $y_2'=y_2+e$ for some $e\in \mathbb{F}^n$.
Same syndrome if $H(y_1'+e)^\top=H(y_2'+e)^\top$.
Entries in different rows have different syndrome.
<details>
<summary>Proof</summary>
</details>
Choose the lightest word in each coset on the leftmost column.
Time complexity: $O(n(n-k))$. Space complexity: $n|F|^n$ space.
Compare with exhaustive search: Time: $O(|F|^n)$.
#### Syndrome decoding - Intuition
Given $y'$, we identify the set $\mathcal{C} + e$ to which $y'$ belongs by computing the syndrome.
- We identify $e$ as the coset leader (leftmost entry) of the row $\mathcal{C} + e$.
- We output the codeword in $\mathcal{C}$ which is closest ($c'$) by subtracting $e$ from $y'$.
#### Syndrome decoding - Formal
Given $y'\in \mathbb{F}^n$, we identify the set $\mathcal{C}+e$ to which $y'$ belongs by computing the syndrome.
We identify $e$ as the coset leader (leftmost entry) of the row $\mathcal{C}+e$.
We output the codeword in $\mathcal{C}$ which is closest (example $c_3$) by subtracting $e$ from $y'$.