欢迎光临散文网 会员登陆 & 注册

Reed-Muller码--第二种构造方法

2023-02-08 23:07 作者:乐吧的数学  | 我要投稿

这篇文章介绍 Reed-Muller 码的第二种构造方法, Reed-Muller 码是记为 R(r,m).
(录制的视频在:https://www.bilibili.com/video/BV1824y1q7VN/)

这个方法的大体思路是:

1) 找到 k 个基向量,每个基向量长度为 n,其中 k 是输入的长度,n 是编码后输出的长度。
2) 用这 k 个基向量做线性组合,产生 Reed-Muller 码的所有输出

%5Cbegin%7Baligned%7D%0An%20%26%3D%202%5Em%20%20%5C%5C%0Ak%20%26%3D%20%5Csum_%7Bi%3D0%7D%5Er%20C_m%5Ei%20%3D%20C_m%5E0%20%2B%20C_m%5E1%2B%5Ccdots%20%2BC_m%5Er%20%3D%201%20%2B%20m%20%2B%20C_m%5E2%2B%5Ccdots%20%2BC_m%5Er%0A%5Cend%7Baligned%7D


编码的输出,相当于是在 k 维空间中的向量,如果是比特,那么每个维度有 2 种可能,因此,一共有 2%5Ek 种输出。

例如 R(2,4),  则

%5Cbegin%7Baligned%7D%0An%20%26%3D%202%5Em%20%3D%202%5E4%3D16%20%5C%5C%0Ak%20%26%3D%20%5Csum_%7Bi%3D0%7D%5Er%20C_m%5Ei%3D%5Csum_%7Bi%3D0%7D%5E2%20C_4%5Ei%20%3D%20C_4%5E0%20%2B%20C_4%5E1%2BC_4%5E2%20%3D%201%20%2B%204%20%2B%206%20%3D%2011%0A%5Cend%7Baligned%7D

所以,是在 11 维空间中,找 11 个基向量,然后线性组合出来 2%5E%7B11%7D%3D2048 种输出,每个输出的长度是 16.

那么如何找这 k 个基向量呢?

首先我们找出 m 个基向量出来,v_i%2C%5C%20%20i%3D1%2C2%2C...%2Cm

v_i%3D%0A%5Cunderset%7B2%5E%7Bm-i%2B1%7D%7D%7B%0A%20%20%5Cunderbrace%7B%0A%20%20%20%20%5Cunderset%7B2%5E%7Bi-1%7D%7D%7B%5Cunderbrace%7B0%5Ccdots0%7D%7D%20%20%20%5Cunderset%7B2%5E%7Bi-1%7D%7D%7B%5Cunderbrace%7B1%5Ccdots1%7D%7D%20%5Ccdots%0A%20%20%20%20%5Cunderset%7B2%5E%7Bi-1%7D%7D%7B%5Cunderbrace%7B0%5Ccdots0%7D%7D%20%20%20%5Cunderset%7B2%5E%7Bi-1%7D%7D%7B%5Cunderbrace%7B1%5Ccdots1%7D%7D%0A%20%20%7D%0A%7D


所以,对于 R(2,4) 码,我们可以得到 4 个基向量:

第一个基向量:

%5Cbegin%7Baligned%7D%0Av_1%0A%26%3D%0A%5Cunderset%7B2%5E%7B4-1%2B1%7D%7D%7B%0A%20%20%5Cunderbrace%7B%0A%20%20%20%20%5Cunderset%7B2%5E%7B1-1%7D%7D%7B%5Cunderbrace%7B0%5Ccdots0%7D%7D%20%20%20%5Cunderset%7B2%5E%7B1-1%7D%7D%7B%5Cunderbrace%7B1%5Ccdots1%7D%7D%20%5Ccdots%0A%20%20%20%20%5Cunderset%7B2%5E%7B1-1%7D%7D%7B%5Cunderbrace%7B0%5Ccdots0%7D%7D%20%20%20%5Cunderset%7B2%5E%7B1-1%7D%7D%7B%5Cunderbrace%7B1%5Ccdots1%7D%7D%0A%20%20%7D%0A%7D%20%20%5C%5C%0A%5C%5C%0A%26%3D%0A%5Cunderset%7B2%5E%7B16%7D%7D%7B%0A%20%20%5Cunderbrace%7B%0A%20%20%20%20%5Cunderset%7B1%7D%7B%5Cunderbrace%7B0%5Ccdots0%7D%7D%20%20%20%5Cunderset%7B1%7D%7B%5Cunderbrace%7B1%5Ccdots1%7D%7D%20%5Ccdots%0A%20%20%20%20%5Cunderset%7B1%7D%7B%5Cunderbrace%7B0%5Ccdots0%7D%7D%20%20%20%5Cunderset%7B1%7D%7B%5Cunderbrace%7B1%5Ccdots1%7D%7D%0A%20%20%7D%0A%7D%20%5C%5C%0A%26%3D%200101%5C%200101%5C%200101%5C%200101%0A%0A%5Cend%7Baligned%7D


第二个基向量:

%0A%5Cbegin%7Baligned%7D%0Av_2%0A%26%3D%0A%5Cunderset%7B2%5E%7B4-2%2B1%7D%7D%7B%0A%20%20%5Cunderbrace%7B%0A%20%20%20%20%5Cunderset%7B2%5E%7B2-1%7D%7D%7B%5Cunderbrace%7B0%5Ccdots0%7D%7D%20%20%20%5Cunderset%7B2%5E%7B2-1%7D%7D%7B%5Cunderbrace%7B1%5Ccdots1%7D%7D%20%5Ccdots%0A%20%20%20%20%5Cunderset%7B2%5E%7B2-1%7D%7D%7B%5Cunderbrace%7B0%5Ccdots0%7D%7D%20%20%20%5Cunderset%7B2%5E%7B2-1%7D%7D%7B%5Cunderbrace%7B1%5Ccdots1%7D%7D%0A%20%20%7D%0A%7D%20%20%5C%5C%0A%5C%5C%0A%26%3D%0A%5Cunderset%7B8%7D%7B%0A%20%20%5Cunderbrace%7B%0A%20%20%20%20%5Cunderset%7B2%7D%7B%5Cunderbrace%7B0%5Ccdots0%7D%7D%20%20%20%5Cunderset%7B2%7D%7B%5Cunderbrace%7B1%5Ccdots1%7D%7D%20%5Ccdots%0A%20%20%20%20%5Cunderset%7B2%7D%7B%5Cunderbrace%7B0%5Ccdots0%7D%7D%20%20%20%5Cunderset%7B2%7D%7B%5Cunderbrace%7B1%5Ccdots1%7D%7D%0A%20%20%7D%0A%7D%20%5C%5C%0A%5C%5C%0A%26%3D%200011%5C%200011%5C%200011%5C%200011%0A%5Cend%7Baligned%7D




第三个基向量:

%0A%5Cbegin%7Baligned%7D%0Av_3%0A%26%3D%0A%5Cunderset%7B2%5E%7B4-3%2B1%7D%7D%7B%0A%20%20%5Cunderbrace%7B%0A%20%20%20%20%5Cunderset%7B2%5E%7B3-1%7D%7D%7B%5Cunderbrace%7B0%5Ccdots0%7D%7D%20%20%20%5Cunderset%7B2%5E%7B3-1%7D%7D%7B%5Cunderbrace%7B1%5Ccdots1%7D%7D%20%5Ccdots%0A%20%20%20%20%5Cunderset%7B2%5E%7B3-1%7D%7D%7B%5Cunderbrace%7B0%5Ccdots0%7D%7D%20%20%20%5Cunderset%7B2%5E%7B3-1%7D%7D%7B%5Cunderbrace%7B1%5Ccdots1%7D%7D%0A%20%20%7D%0A%7D%20%20%5C%5C%0A%5C%5C%0A%26%3D%0A%5Cunderset%7B4%7D%7B%0A%20%20%5Cunderbrace%7B%0A%20%20%20%20%5Cunderset%7B4%7D%7B%5Cunderbrace%7B0%5Ccdots0%7D%7D%20%20%20%5Cunderset%7B4%7D%7B%5Cunderbrace%7B1%5Ccdots1%7D%7D%0A%20%20%20%20%5Cunderset%7B4%7D%7B%5Cunderbrace%7B0%5Ccdots0%7D%7D%20%20%20%5Cunderset%7B4%7D%7B%5Cunderbrace%7B1%5Ccdots1%7D%7D%0A%20%20%7D%0A%7D%20%5C%5C%0A%5C%5C%0A%26%3D%200000%5C%201111%5C%200000%5C%201111%0A%0A%5Cend%7Baligned%7D


第四个基向量:

%0A%5Cbegin%7Baligned%7D%0Av_4%0A%26%3D%0A%5Cunderset%7B2%5E%7B4-4%2B1%7D%7D%7B%0A%20%20%5Cunderbrace%7B%0A%20%20%20%20%5Cunderset%7B2%5E%7B4-1%7D%7D%7B%5Cunderbrace%7B0%5Ccdots0%7D%7D%20%20%20%5Cunderset%7B2%5E%7B4-1%7D%7D%7B%5Cunderbrace%7B1%5Ccdots1%7D%7D%20%5Ccdots%0A%20%20%20%20%5Cunderset%7B2%5E%7B4-1%7D%7D%7B%5Cunderbrace%7B0%5Ccdots0%7D%7D%20%20%20%5Cunderset%7B2%5E%7B4-1%7D%7D%7B%5Cunderbrace%7B1%5Ccdots1%7D%7D%0A%20%20%7D%0A%7D%20%20%5C%5C%0A%5C%5C%0A%26%3D%0A%5Cunderset%7B2%7D%7B%0A%20%20%5Cunderbrace%7B%0A%20%20%20%20%5Cunderset%7B8%7D%7B%5Cunderbrace%7B0%5Ccdots0%7D%7D%20%20%20%5Cunderset%7B8%7D%7B%5Cunderbrace%7B1%5Ccdots1%7D%7D%0A%20%20%7D%0A%7D%20%5C%5C%0A%5C%5C%0A%26%3D%200000%5C%200000%5C%201111%5C%201111%0A%0A%5Cend%7Baligned%7D


然后,再从 m 个基向量中,取两个基向量,做按位与的操作,则一共可以生成 C_m%5E2  个基向量。

然后,再从 m 个基向量中,取三个基向量,做按位与的操作,则一共可以生成 C_m%5E3  个基向量。

以此类推,

最后,从 m 个基向量中,取 r 个基向量,做按位与的操作,则一共可以生成 C_m%5Er  个基向量。

最后,再增加一个全 1 的基向量,记为


v_0%20%3D%20%5Cunderset%7B2%5Em%7D%7B%20%20%20%5Cunderbrace%7B1%5Ccdots1%7D%7D

至此,我们生成了 k 个基向量.

v_1%20%3D0101%5C%200101%5C%200101%5C%200101%20%20%5C%5C%0Av_2%20%3D%200011%5C%200011%5C%200011%5C%200011%20%5C%5C%0Av_3%20%3D%200000%5C%201111%5C%200000%5C%201111%20%5C%5C%0Av_4%20%3D%200000%5C%200000%5C%201111%5C%201111

那么,我们从这 4 个中,取两个做按位与,则可以得到下面 6 个基向量:

%0Av_1v_2%20%3D%200001%5C%200001%5C%200001%5C%200001%20%20%5C%5C%0Av_1v_3%20%3D%200000%5C%200101%5C%200000%5C%200101%20%20%5C%5C%0Av_1v_4%20%3D%200000%5C%200000%5C%200101%5C%200101%20%20%5C%5C%20%20%0A%5C%5C%0Av_2v_3%20%3D%200000%5C%200011%5C%200000%5C%200011%20%20%5C%5C%0Av_2v_4%20%3D%200000%5C%200000%5C%200011%5C%200011%20%20%5C%5C%0A%5C%5C%0Av_3v_4%20%3D%200000%5C%200000%5C%200000%5C%201111%20%20%5C%5C


再把 v_0 放进来

v_0%20%3D%201111%5C%201111%5C%201111%5C%201111

则一共有下面 11 个基向量:

16个1 的情况,有一种:

v_0%20%3D%201111%5C%201111%5C%201111%5C%201111


8个1的情况,有四种:
v_1%20%3D0101%5C%200101%5C%200101%5C%200101%20%20%5C%5C%0Av_2%20%3D%200011%5C%200011%5C%200011%5C%200011%20%5C%5C%0Av_3%20%3D%200000%5C%201111%5C%200000%5C%201111%20%5C%5C%0Av_4%20%3D%200000%5C%200000%5C%201111%5C%201111

4个1的情况,有六种:

v_1v_2%20%3D%200001%5C%200001%5C%200001%5C%200001%20%20%5C%5C%0Av_1v_3%20%3D%200000%5C%200101%5C%200000%5C%200101%20%20%5C%5C%0Av_1v_4%20%3D%200000%5C%200000%5C%200101%5C%200101%20%20%5C%5C%20%20%0A%5C%5C%0Av_2v_3%20%3D%200000%5C%200011%5C%200000%5C%200011%20%20%5C%5C%0Av_2v_4%20%3D%200000%5C%200000%5C%200011%5C%200011%20%20%5C%5C%0A%5C%5C%0Av_3v_4%20%3D%200000%5C%200000%5C%200000%5C%201111%20%20%5C%5C


所以,一共有 11 个基向量:

%0A%5Calpha_1%3Dv_0%20%3D%201111%5C%201111%5C%201111%5C%201111%20%5C%5C%0A%5C%5C%0A%5Calpha_2%3Dv_1%20%3D0101%5C%200101%5C%200101%5C%200101%20%20%5C%5C%0A%5Calpha_3%3Dv_2%20%3D%200011%5C%200011%5C%200011%5C%200011%20%5C%5C%0A%5Calpha_4%3Dv_3%20%3D%200000%5C%201111%5C%200000%5C%201111%20%5C%5C%0A%5Calpha_5%3Dv_4%20%3D%200000%5C%200000%5C%201111%5C%201111%20%5C%5C%0A%5C%5C%0A%5Calpha_6%3Dv_1v_2%20%3D%200001%5C%200001%5C%200001%5C%200001%20%20%5C%5C%0A%5Calpha_7%3Dv_1v_3%20%3D%200000%5C%200101%5C%200000%5C%200101%20%20%5C%5C%0A%5Calpha_8%3Dv_1v_4%20%3D%200000%5C%200000%5C%200101%5C%200101%20%20%5C%5C%20%20%0A%5Calpha_9%3Dv_2v_3%20%3D%200000%5C%200011%5C%200000%5C%200011%20%20%5C%5C%0A%5Calpha_%7B10%7D%3Dv_2v_4%20%3D%200000%5C%200000%5C%200011%5C%200011%20%20%5C%5C%0A%5Calpha_%7B11%7D%3Dv_3v_4%20%3D%200000%5C%200000%5C%200000%5C%201111%20%20%5C%5C
则一个 11 比特的数据: b_1%20b_2%20%5Ccdots%20b_%7B11%7D,经过这个 R(2,4) 编码后的输出 c,可以表示为:

c%20%3D%20b_1%5Calpha_1%20%2B%20b_2%5Calpha_2%20%2B%20%5Ccdots%20%2B%20b_%7B11%7D%20%5Calpha_%7B11%7D

写成矩阵形式:

%0Ac%20%3D%5Bb_1%2Cb_2%2C%5Ccdots%2Cb_%7B11%7D%5D%0A%5Cbegin%7Bbmatrix%7D%0A%5Calpha_1%20%5C%5C%0A%5Calpha_2%20%5C%5C%0A%5Ccdots%20%20%5C%5C%0A%5Calpha_%7B11%7D%20%5C%5C%0A%5Cend%7Bbmatrix%7D



G%20%3D%5Cbegin%7Bbmatrix%7D%0A%5Calpha_1%20%5C%5C%0A%5Calpha_2%20%5C%5C%0A%5Ccdots%20%20%5C%5C%0A%5Calpha_%7B11%7D%20%5C%5C%0A%5Cend%7Bbmatrix%7D


就是 R(2,4) 码的生成矩阵。

Reed-Muller码--第二种构造方法的评论 (共 条)

分享到微博请遵守国家法律