补充一点,关于生成矩阵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)); %如果S与H的第i列之和B为0矩阵,则表示R中第i个码字有误。

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

disp(i)

else

E(1,i)=0;

end;

end;

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

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

disp(C);

最新文章

  1. Android之layout_gravity与gravity解析
  2. windows 下ssh 客户端
  3. winform建立非矩形窗体
  4. libevent (二) 接收TCP连接
  5. IOS时间戳
  6. uva 11488 Hyper Prefix Sets(狂水)
  7. Appium下Android keyevent整理
  8. super用法
  9. bootm命令中地址参数,内核加载地址以及内核入口地址
  10. webform基础介绍及页面传值(session,cookie)、跳转页面
  11. Dreamer2.1 发布 新增将Bean解析成xml和json
  12. 与众不同 windows phone (29) - Communication(通信)之与 OData 服务通信
  13. php中des加密解密 匹配C#des加密解密 对称加密
  14. Cs231n课堂内容记录-Lecture 9 深度学习模型
  15. Zepto tap 穿透bug、解决移动端点击穿透问题
  16. TypeError: view must be a callable or a list/tuple in the case of include()
  17. unity Texture贴图纹理及相关属性
  18. springmvc中Controller方法的返回值
  19. SSH和SSL比较
  20. 订制EditText光标

热门文章

  1. android AVD启动失败原因之一
  2. python中enumerate()函数用法
  3. Android6.0------权限管理
  4. Ansible 小手册系列 三(命令介绍)
  5. debug调试日志和数据查询
  6. hdu4453
  7. bfs+状态压缩dp
  8. New Concept English three(16)
  9. 实现DQN算法玩CartPole
  10. Java之引用类型分析(SoftReference/WeakReference/PhantomReference)