zoukankan      html  css  js  c++  java
  • 7-4线性分组码的matlab程序

    补充一点,关于生成矩阵G和校验矩阵H的关系:生成矩阵G是4*7矩阵,分为两块,前4列组成的4*4矩阵为单位矩阵,后3列组成的4*3矩阵我称它监督矩阵,校验矩阵是3*7矩阵,前4列组成的3*4矩阵是监督矩阵的转置得到的,后面三列组成的3*3矩阵是单位矩阵。

    %设本组(7,4)线性分组码信息位和检验位的约束关系为:

    %c5=c1+c2+c3;c6=c2+c3+c4;c7=c1+c2+c4

    %由约束关系可以写出生成矩阵G.

    clear all;

    G1=[1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1];

    G2=[1,0,1;1,1,1;1,1,0;0,1,1];

    G=[G1,G2];

    C=[1,0,1,1];  %C=[c1,c2,c3,c4]要进行编码信息码字 

    R1=C*G;

    R=mod(R1,2);

    fprintf('输出的编码为:R=')

    disp(R);

     

     

     

    %已知生成矩阵G,可以求出校验矩阵H

    clear all;

    E=[1,1,1,1,1,1,1];

    H1=[1,1,1,0;0,1,1,1;1,1,0,1];

    H2=[1,0,0;0,1,0;0,0,1];

    H=[H1,H2];%校验矩阵。

    R=[1,0,1,1,0,0,1];%接收到的码字。

    S1=R*(H'); %S为校阵子;

    S=mod(S1,2);

     

     

    for i=1:7; %用改for循环取出H中每一列,然后与S相加。

     T=H(:,[i]);

     %disp(T);

     B1=S+T';

     B=mod(B1,2);

     

        if (all(B(:)==0)); %如果SH的第i列之和B0矩阵,则表示R中第i个码字有误。

          fprintf('R中序列中错误码位是第:');

          disp(i) 

        else

         E(1,i)=0;

         

        end;

       

     

    end;

    C=mod((R+E),2);

    fprintf('纠错后的码字应该为:C=');

    disp(C);

  • 相关阅读:
    CVE-20117-111882漏洞复现及利用
    如何查看QQ坦白说来自谁
    2018 巅峰极客CTF misc writeup
    屏幕截图
    Unity中设置屏幕常亮
    面向对象设计原则
    【转】Unity资源管理原理知识(干货不嫌长)
    给指定的图片增加水印
    统计一个目录下各种文件类型及个数
    JDK 开发环境配置
  • 原文地址:https://www.cnblogs.com/lianjiehere/p/4195039.html
Copyright © 2011-2022 走看看