研究背景
编码理论中研究的核心问题为:将一串长度为k
的比特序列 $c \in {0, 1}^k $ 经过某种encoing,生成一串长度为n
的新的比特序列 $\widetilde{c} \in {0, 1}^n$,注意这串新的比特序列可能在存储或者传输过程中被改变。如何设计encoing方法,使得即使部分信息丢失,依然可以复原最初的信息。
设计encoding的方法,很显然应该考虑如下四点:
- (1)必须假定错误必然发生;
- (2)必须能够在某种程度上复原原消息;
- (3)所引入的overhead要小,即 $k/n$ 要接近
1
- (4)必须足够高效(时间复杂度不可过高)
想同时满足上面的四点显然不是一件容易的事情,很多时候设计者需要进行权衡:比如,如果要overhead特别小,那么纠错性就很可能收到影响。
常用概念和定义
编码(Code)
A Code of block length n over an alphabet $\sum$ is $C \subseteq \sum^n$ , the element $c \in C$ are
codewords
- 案例(1)
C = {HELLOWORLD, BRUNCHTIME, ALLTHETIME} 是字母表$\sum = {A, B, … Z}$ 上长度为10的一组编码
- 案例(2)