群与编码

1 编码

1.1 信息(Message)

有限的 01 序列

1.2 码字(Word)

长度为 $m$ 的 0 和 1 的序列

1.3 群

集合 $B$ 是在模 2 加运算下的群

  1. $B^m=B\times B\times \cdots \times B$ 是定义了运算 $\oplus$ 的群:$(x_1,x_2,\cdots,x_m)\oplus (y_1,y_2,\cdots,y_m)=(x_1+y_1,x_2+y_2,\cdots,x_m+y_m)$
  2. $B^m$ 可简写成 $b_1b_2\cdots b_m$

    1.4 编码函数

定义一一对应的编码函数 $e: B^m \rightarrow B^n$, 如果 $b \in B^m$,则 $e(b)$ 称为 $b$ 的码字(Word).

1.5 差错检测

如果 $x=e(b)$ 在传输过程中出现了 $h$ 个错误 ($1 \le h \le k$) ,称为发生了小于等于 $k$ 个错误,则 $x_t$ 不是一个码字。

1.6 权值

$x \in B^n$, $x$ 的权值 $\vert x\vert $ 为 $x$ 中 $1$ 的个数.

1.7 海明距离(Hamming distance)

令 $x$ 和 $y$ 是 $B^m$ 的码字,$\delta(x, y)=\vert x \oplus y\vert $ ($x \oplus y$) 的权值.

也就是有几位不同.

  1. $\delta(x, y) = \delta(y, x)$
  2. $\delta(x, y) \ge 0$
  3. $\delta(x,y) = 0 \text{ iff } x=y$
  4. $\delta(x, y) \le \delta(x, z) + \delta(z, y)$

1.8 最小距离(Minimum distance)

最小距离是所有不同码字中距离最小的那一个。

\[\min\{\delta(e(x),e(y))\vert ,x,y\in B^m\}\]

1.9 定理

如果一个 $B^m \rightarrow B^n$ 的编码函数可以检测 $k$ 的错误,则当且仅当它的最小距离最少是 $k+1$。

2 群码

如果存在一个 $B^m \rightarrow B^n$ 的编码函数 $e$ ,并且 $e(B^m)={e(b)\vert e(b) \in B^n}$ 是 $B^n$ 的子群,则 $e$ 是一个群码。

2.1 定理一

如果一个编码函数$e$ 是群码,则它的最小距离是其中最小非零码字的权值。

2.2 定理二

令 $0 \le m < n$, $r = n - m$,$\mathbf{H}$ 是 $n \times r$ 的布尔矩阵,则函数 $f_H: B^n \rightarrow B^r$ 定义为 $f_H(x)=x * \mathbf{H}, x \in B^n$ 是 $B^n$ 到 $B^r$ 到同态。

2.3 推论一

2.2 中的 $m, n, r, \mathbf{H}$,$N={x \in B^n\vert x * \mathbf{H} = 0}$ 是 $B^n$ 的正规子群。

2.4 一致性检验矩阵

\[\mathbf{H}=\begin{bmatrix}\mathbf{H}_{m\times r} \\ \mathbf{I}_r \end{bmatrix}\]

2.4.1 构造编码函数

$H=e_H(B^m)=B^m * \begin{bmatrix}I_m & H_{m\times r}\end{bmatrix}$

2.4.2 定理一

如果 $x=e_H(b), b \in B^m$, 则 $x * \mathbf{H}=0$

2.4.3 推论二

$e_H(B^m)={e_H(b)\vert b \in B^m}$ 是 $B^n$ 的子群。

3 译码

若 $e: B^m\rightarrow B^n$,定义一个满射的函数 $d$,是和 $e$ 相关联的译码函数。当传输信道无噪声的时候,$d \cdot e=1_{B^m}$

3.1 极大似然技术

如果收到一个码字 $x_t$,计算对于每一个码字的 $\delta(x^{(i)},x_t)$ ,并选取第一个距离最小的码字

\[\min_{1\le i \le 2^m}\{\delta(x^{(i)},x_t\}=\delta(x^{(s)},x_t)\]

3.2 定理一

$(e, d)$ 能纠正 $k$ 个错误,当且仅当 $e$ 的最小距离为 $2k+1$.

3.3 构造译码函数

如果 $K$ 是 $G$ 的子群,则 $K$ 在 $G$ 中点每一个左陪集都和 $K$ 有相同数量的元素。

若接收到了 $x^t$,$N=e(B^m)$,则 $x_t$ 的左陪集为 $x_t \oplus N={\epsilon_1, \epsilon_2, \cdots, \epsilon_{2m}}$, $\epsilon_i=x_t \oplus x^{(i)}$

如果 $\epsilon_j$ 是陪集元素中具有最小权值的元素,则 $x^{(j)}$ 是距离 $x_t$ 的码字,则 $\epsilon_j$ 称为陪集头.

STEP 1:确定所有 $N$ 的左陪集

STEP 2:对于每一个陪集,找到陪集头

STEP 3:如果收到 $x^t$,确定 $x^t$ 属于哪一个$N$ 的陪集

STEP 4:令$\epsilon$ 为陪集头,计算 $x=x_t \oplus \epsilon$,如果 $x = e(b)$ 则 $d(x_t)=b$.