基于MATLAB的线性分组码的编码译码程序

基于matlab的线性分组码的编码译码程序

一、实验目的

1.熟悉线性分组码的编码译码原理
2.掌握编写线性分组码的编码译码程序的要点
3.掌握使用matlab的仿真要点

二、实验内容

1.完成对任意信息序列的编码
2.根据生成矩阵,形成监督矩阵
3.根据得到的监督矩阵,得到伴随式,并根据它进行译码
4.验证工作的正确性

三、实验代码

G=[1 0 0 1 0 1;
   0 1 0 1 1 0;
   0 0 1 0 1 1]
H=gen2par(G)
disp('监督矩阵为:H=');
disp(H);
I=[0 0 0;0 0 1;0 1 0;0 1 1;1 0 0;1 0 1;1 1 0;1 1 1];
C=rem(I*G,2);
disp('所得许用码组结果为:C=');
disp(C)
%译码并判别
clear all;
close all;
G=[1 0 0 1 0 1;
   0 1 0 1 1 0;
   0 0 1 0 1 1];
R=input('请输入接收到的码组R:');
[a,b]=size(R)
E=[0 0 0 0 0 0;1 0 0 0 0 0;
   0 1 0 0 0 0;0 0 1 0 0 0;
   0 0 0 1 0 0;0 0 0 0 1 0;0 0 0 0 0 1];
H=gen2par(G);
S=rem(R*H',2);
disp('所得伴随式为:S=');
disp(S);
i=1;
for i=1:1:a
    M(i,1)=S(i,1).*4+S(i,2).*2+S(i,3);
end
for i=1:1:a
    switch(M(i,1))
        case 0
            A(i,:)=R(i,:)+E(1,:);
        case 5
            A(i,:)=R(i,:)+E(2,:);
        case 6
            A(i,:)=R(i,:)+E(3,:);
        case 3
            A(i,:)=R(i,:)+E(4,:);
        case 4
            A(i,:)=R(i,:)+E(5,:);
        case 2
            A(i,:)=R(i,:)+E(6,:);
        case 1
            A(i,:)=R(i,:)+E(7,:);
    end
end
for i=1:1:a
    switch(M(i,1))
        case 0
            disp('没有出现错误!');
        case 1
            disp('注意:第1位出现一个错误!请纠正!');
        case 2
            disp('注意:第2位出现一个错误!请纠正!');
        case 4
            disp('注意:第3位出现一个错误!请纠正!');
        case 3
            disp('注意:第4位出现一个错误!请纠正!');
        case 6
            disp('注意:第5位出现一个错误!请纠正!');
        case 5
            disp('注意:第6位出现一个错误!请纠正!');
    end
end
A=rem(A,2);
disp('检纠错后的码组A=');
disp(A);
j=1;
while j<=3
    I(:,j)=A(:,j);
    j=j+1;
end
disp('译出的信息序列I=');
disp(I);

四、实验结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 32
    收藏
  • 打赏
    打赏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:鲸 设计师:meimeiellie 返回首页
评论 14

打赏作者

阿仇_Parsifal

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值