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