【问题标题】:How to encode with parity Check Matrix?如何使用奇偶校验矩阵进行编码?
【发布时间】:2017-07-14 18:02:16
【问题描述】:

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

我有汉明码(7,4,3) 和奇偶校验矩阵H,我想编码信息块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),但我不知道如何使用奇偶校验矩阵进行编码。

谢谢!

【问题讨论】:

    标签: matlab matrix encoding


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      如果奇偶矩阵不是那种形式,你可以用初等行操作把它变成标准形式,然后得到生成矩阵(见[4])。这会将代码更改为不同但“等效”的代码(参见 [5])。

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

      参考与讨论
      请注意,这些参考资料不一定具有权威性;但我认为它们是合理的。

      [1]https://en.wikipedia.org/wiki/Parity-check_matrix 对于 (n,k) 块代码,生成矩阵的标准形式是 G = [ I(k) P ]。 G 是 (k,n) 矩阵。 I(k) 是 (k,k) 单位矩阵。 P 是一个 (k,n-k) 矩阵。

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

      所以,如果你有一个我展示的形式的奇偶校验矩阵,生成矩阵是 G = [ I(k) P ]。

      [2] Pless, Vera (1998),纠错码理论导论(第 3 版),Wiley Interscience,ISBN 0-471-19047-0。这被 [1] 引用。

      [3]https://www.mathworks.com/help/comm/ref/gen2par.html Matlab 提供了在生成器/奇偶校验(gen2par)之间转换的函数,但它似乎需要标准形式。该功能似乎是依靠这种标准形式来检测您提供了哪个,然后将其更改为另一个。

      [4]https://math.stackexchange.com/questions/1490627/finding-generator-matrix-for-binary-linear-code-given-parity-check-matrix 该参考建议使用基本行操作将奇偶校验矩阵转换为标准形式,然后转换为生成矩阵。

      [5]https://math.stackexchange.com/questions/1684808/row-column-operations-of-a-parity-check-generator-matrix-for-a-linear-code 该参考资料解释了奇偶校验或生成矩阵上的基本行操作将更改代码,因为特定输入集的编码表示会发生变化,但代码可能被认为是“等效的”,因为代码字集(因此距离属性)没有改变。

      【讨论】:

        猜你喜欢
        • 2016-10-19
        • 2013-05-22
        • 2015-05-23
        • 2013-04-21
        • 2019-03-20
        • 2017-08-08
        • 2015-04-04
        • 2013-03-05
        相关资源
        最近更新 更多