Reed-Muller码 (RM码) 可依赖布尔函数(Boolean Functions)进行定义。
给定RM码码长 n = 2 m n=2^m n=2m,那么需要 v 1 , ⋯ , v m v_1, \cdots, v_m v1,⋯,vm共 m m m个取值为0或1的变量。设 v = ( v 1 , ⋯ , v m ) ∈ V m v = (v_1, \cdots, v_m) \in V^m v=(v1,⋯,vm)∈Vm是一个 m m m元组,那么布尔函数 f ( v ) = f ( v 1 , ⋯ , v m ) f(v) = f(v_1, \cdots, v_m) f(v)=f(v1,⋯,vm)的取值为0或1。
当 m = 3 m = 3 m=3, f f f的值可以用真值表表示,即
布尔函数的逻辑运算表示为
f
异
或
g
=
f
+
g
f异或g = f + g
f异或g=f+g;
f
和
g
=
f
g
f和g = fg
f和g=fg;
f
或
g
=
f
+
g
+
f
g
f或g = f+g+fg
f或g=f+g+fg;
非
f
=
f
ˉ
=
1
+
f
非f=\bar f=1+f
非f=fˉ=1+f;
由于
v
i
2
=
v
i
v_i^2 = v_i
vi2=vi,给定
v
=
(
v
1
,
⋯
,
v
m
)
v = (v_1, \cdots, v_m)
v=(v1,⋯,vm),
f
(
v
)
f(v)
f(v)可以表示成如下
2
m
2^m
2m个函数之和的形式
1
,
v
1
,
v
2
,
⋯
,
v
m
,
v
1
v
2
,
v
1
v
3
,
⋯
,
v
m
−
1
,
v
m
,
⋯
,
∏
i
m
v
i
1,v_1,v_2,\cdots,v_m,v_1v_2,v_1v_3,\cdots,v_{m-1},v_m,\cdots,\prod\limits_i^m {{v_i}}
1,v1,v2,⋯,vm,v1v2,v1v3,⋯,vm−1,vm,⋯,i∏mvi
给定码长为 n = 2 m n=2^m n=2m的 r r r阶二进制RM码 R ( r , m ) {\mathscr R}(r,m) R(r,m), 0 ≤ r ≤ m 0\le r\le m 0≤r≤m,其码字集合由全部向量 f \bf f f组成,其中 f \bf f f表示长度为 2 m 2^m 2m的布尔函数 f ( v ) = f ( v 1 , ⋯ , v m ) f(v) = f(v_1, \cdots, v_m) f(v)=f(v1,⋯,vm)的取值向量, f ( v ) = f ( v 1 , ⋯ , v m ) f(v) = f(v_1, \cdots, v_m) f(v)=f(v1,⋯,vm)中的多项式度最大为 r r r。
例子:对于RM码
R
(
1
,
3
)
{\mathscr R}(1,3)
R(1,3),有
f
=
f
(
v
1
,
v
2
,
v
3
)
=
a
0
1
+
a
1
v
1
+
a
2
v
2
+
a
3
v
3
,
a
i
=
0
或
1
{\bf f} = f({\bf v}_1,{\bf v}_2, {\bf v}_3) = a_0{\bf 1} + a_1{\bf v}_1 + a_2{\bf v}_2 + a_3{\bf v}_3, a_i = 0或1
f=f(v1,v2,v3)=a01+a1v1+a2v2+a3v3,ai=0或1。显然存在
2
4
=
16
2^4=16
24=16个
f
(
v
1
,
v
2
,
v
3
)
f({\bf v}_1,{\bf v}_2, {\bf v}_3)
f(v1,v2,v3)。
给定真值表
v
3
=
0
0
0
0
1
1
1
1
v
2
=
0
0
1
1
0
0
1
1
v
1
=
0
1
0
1
0
1
0
1
{\bf v}_3 = 0~0~0~0~1~1~1~1\\ {\bf v}_2 = 0~0~1~1~0~0~1~1\\ {\bf v}_1 = 0~1~0~1~0~1~0~1\\
v3=0 0 0 0 1 1 1 1v2=0 0 1 1 0 0 1 1v1=0 1 0 1 0 1 0 1
RM码
R
(
1
,
3
)
{\mathscr R}(1,3)
R(1,3)有如图1所示的16个码字
图1 由布尔函数表示的RM码
R
{\mathscr R}
R(1,3)的16个码字
参考文献
[1] Macwilliams F J , Sloane N . The theory of error-correcting codes. Parts I, II. 1977.