资源简介

本资源用matlab实现了CRC校验编码、译码和海明编码、译码,并把相关代码封装成GUI界面。

资源截图

代码片段和文件信息

clear
close all
DataS = input(‘请输入数据比特:‘  ‘s‘);
AS = input(‘请输入生成多项式系数:‘‘s‘);
Length_D = length(DataS);
Length_A = length(AS);
for i = 1 : Length_D
    Data(i) = str2num(DataS(i));%转化成数组
end
for i = 1 : Length_A
    A(i) = str2num(AS(i));
end
Data(Length_D+1 : Length_A+Length_D-1) = 0;
m =  Length_A+Length_D-1;
n = Length_A;
CSC_code = Data;
for i = 1 : m-n+1                       %长除法求余数
    if(Data(i) ==1)
        for j = 1 : n
            if(Data(i+j-1) == A(j))
                Data(i+j-1) = 0;
            else 
                Data(i+j-1) = 1;
            end
        end
    end
end
CSC_code(m-n+2 : m) = Data(m-n+2 : m);
for i = 1:m
    Code(i) = num2str(CSC_code(i)); %转化成字符串输出
end
disp([‘长除法所求的得余数为:‘num2str(Code(m-n+2 : m))]);
disp([‘待发送数据的CRC编码为:‘num2str(Code)]);

%译码过程
% dcCodes = input(‘请输入接收到的编码:‘‘s‘);
% for i = 1 : m
% dcCode(i)=str2num(dcCodes(i));
% end
% for i = 1 : m-n+1                       %长除法求余数
%     if(dcCode(i) ==1)
%         for j = 1 : n
%             if(dcCode(i+j-1) == A(j))
%                 dcCode(i+j-1) = 0;
%             else 
%                 dcCode(i+j-1) = 1;
%             end
%         end
%     end
% end
% l=zeros(1n-1);
% if(dcCode(m-n+2 : m)==l)
%     disp(‘接收正确‘);
% else
%     disp([‘接收错误余数为:‘num2str(dcCode(m-n+2 : m))]);
% end
%     

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-04-09 19:36  CRC\
     文件        1449  2014-03-19 21:26  CRC\CRC(编码译码程序).m
     目录           0  2014-04-09 19:36  CRC\封装界面后\
     文件        3945  2014-03-20 21:20  CRC\封装界面后\CRC.fig
     文件        4275  2014-03-20 21:23  CRC\封装界面后\CRC.m
     目录           0  2014-04-09 19:37  hamming\
     文件        1517  2014-03-20 19:55  hamming\Hamming(编码译码程序).m
     目录           0  2014-04-09 19:37  hamming\封装界面后\
     文件        4159  2014-03-20 21:47  hamming\封装界面后\hamming.fig
     文件        3934  2014-03-24 18:58  hamming\封装界面后\hamming.m

评论

共有 条评论