本文为理解FEC(Reed-Solomon)编码的补充,简述用到的有限域计算的知识
有限域定义
这里的域(Field)的定义是有如下特性的集合:
- 定义了加法和乘法
- 集合内的元素经过加法和乘法计算,结果仍然在集合内
- 计算符合交换率、结合率、分配率
- 加法和乘法有单位元素(所有的集合内的值都有对应的负数,所有集合内非零值都有倒数)
举个例子,我们常见的实数集是域,但整数值不是域(因为除了1,其它数的倒数都不是整数)。
具有有限个元素的域就是有限域(下文以GF表示,GF是Galois Field的缩写,这个名字纪念发明者Evariste Galois)。
这可能有点反常识,既然可以一直加、一直乘,怎么会只有有限个元素呢?一个关键的操作就是‘取模’。也就是在域的定义基础上,作如下修改:
- 定义模p加法和模p乘法(加或乘的结果超过p时,模p取余数。p为素数)
- 集合内的元素经过加法和乘法计算,结果仍然在集合内
- 计算符合交换率、结合率、分配率
- 加法和乘法有单位元素(所有的集合内的值都有对应的负数,所有集合内非零值都有倒数)
举例子,GF(3)是定义了模3加法和乘法的有限域,有三个元素:0、1、2。两个计算示例: