Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 如何使用奇偶校验矩阵进行编码?_Matlab_Matrix_Encoding - Fatal编程技术网

Matlab 如何使用奇偶校验矩阵进行编码?

Matlab 如何使用奇偶校验矩阵进行编码?,matlab,matrix,encoding,Matlab,Matrix,Encoding,我想用奇偶校验矩阵对信息块进行编码 我有带奇偶校验矩阵的汉明码(7,4,3),我想对信息块m=[0 0 1]进行编码 H = [1 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 1 0 0 1]; 对于生成器矩阵,我只使用以下公式:codeword=mod(word*G,2),但我不知道如何使用奇偶校验矩阵进行编码 谢谢 如前所述,编码时应使用生成器矩阵(G),而不是奇偶校验矩阵(如其名称所示!)。所以,编码向量应该是前面提到的G*m',对于编码,您应该使

我想用奇偶校验矩阵对信息块进行编码

我有带奇偶校验矩阵的汉明码
(7,4,3)
,我想对信息块
m=[0 0 1]
进行编码

H = [1 1 0 1 1 0 0
     1 0 1 1 0 1 0
     0 1 1 1 0 0 1];
对于生成器矩阵,我只使用以下公式:
codeword=mod(word*G,2)
,但我不知道如何使用奇偶校验矩阵进行编码


谢谢

如前所述,编码时应使用生成器矩阵(G),而不是奇偶校验矩阵(如其名称所示!)。所以,编码向量应该是前面提到的
G*m'

,对于编码,您应该使用生成器矩阵(G)而不是奇偶校验矩阵(如其名称所示!)。因此,编码向量将是
G*m'

,如前一个答案所述,您需要获得生成器矩阵才能进行编码。如果生成器和奇偶矩阵是标准形式,则可以直接在它们之间进行转换,这要求代码在前k个位置是系统的(参见[1])

如果奇偶矩阵不是这种形式,您可以使用基本行操作将其转换为标准形式,然后获得生成器矩阵(参见[4])。这会将代码更改为不同但“等效”的代码(请参见[5])

我的粗略搜索没有找到其他方法从任意奇偶矩阵中找到生成器矩阵。我怀疑这样做是困难的、不切实际的或不可能的,但我没有一个明确的答案

参考和讨论
注意,这些参考文献不一定具有权威性;但我发现它们是合理和可信的

[1] 对于(n,k)块码,生成矩阵的标准形式是G=[I(k)P]。 G是(k,n)矩阵。 I(k)是(k,k)单位矩阵。 P是(k,n-k)矩阵

奇偶矩阵是H=[-p^ti(n-k)]。 H是(n-k,n)奇偶矩阵,对应于G。 -P^T是P的负转置。对于二进制代码,可以省略否定。 I(n-k)是(n-k,n-k)单位矩阵

如果你有一个奇偶矩阵,如我所示,生成矩阵是G=[I(k)p]

[2] 《纠错码理论导论》(第三版),威利国际科学出版社,ISBN 0-471-19047-0。[1]引用了这一点

[3] Matlab提供了一个在生成器/奇偶校验(gen2par)之间进行转换的函数,但它似乎需要标准形式。该函数似乎依赖于此标准表单来检测您提供了哪一个,然后将其更改为另一个

[4] 本参考文献建议使用基本行操作将奇偶矩阵转换为标准形式,然后转换为生成矩阵

[5]
本参考说明奇偶校验或生成器矩阵上的基本行操作将改变代码,因为特定输入集的编码表示将改变,但代码可能被视为“等效”,因为一组码字(因此距离属性)不变。

如前一回答所述,您需要获得生成器矩阵才能进行编码。如果生成器和奇偶矩阵是标准形式,则可以直接在它们之间进行转换,这要求代码在前k个位置是系统的(参见[1])

如果奇偶矩阵不是这种形式,您可以使用基本行操作将其转换为标准形式,然后获得生成器矩阵(参见[4])。这会将代码更改为不同但“等效”的代码(请参见[5])

我的粗略搜索没有找到其他方法从任意奇偶矩阵中找到生成器矩阵。我怀疑这样做是困难的、不切实际的或不可能的,但我没有一个明确的答案

参考和讨论
注意,这些参考文献不一定具有权威性;但我发现它们是合理和可信的

[1] 对于(n,k)块码,生成矩阵的标准形式是G=[I(k)P]。 G是(k,n)矩阵。 I(k)是(k,k)单位矩阵。 P是(k,n-k)矩阵

奇偶矩阵是H=[-p^ti(n-k)]。 H是(n-k,n)奇偶矩阵,对应于G。 -P^T是P的负转置。对于二进制代码,可以省略否定。 I(n-k)是(n-k,n-k)单位矩阵

如果你有一个奇偶矩阵,如我所示,生成矩阵是G=[I(k)p]

[2] 《纠错码理论导论》(第三版),威利国际科学出版社,ISBN 0-471-19047-0。[1]引用了这一点

[3] Matlab提供了一个在生成器/奇偶校验(gen2par)之间进行转换的函数,但它似乎需要标准形式。该函数似乎依赖于此标准表单来检测您提供了哪一个,然后将其更改为另一个

[4] 本参考文献建议使用基本行操作将奇偶矩阵转换为标准形式,然后转换为生成矩阵

[5] 本参考文件解释了奇偶校验或生成器矩阵上的基本行操作将改变代码,因为特定输入集的编码表示将改变,但代码可能被视为“等效”,因为码字集(因此距离属性)不变