crcdecode.m

来自「此代码是用matlab进行AF协作的性能的仿真对误码率进行分析。」· M 代码 · 共 20 行

M
20
字号
% 采用美国16-CRC标准
% 16bit CRC 生成多项式D16+D1+D2+1
% 输入code为要进行解码的码源
% 返回值sign是指示是否出现错误1为有错,0为无错
% 如果正确 指示0 并解码,decode 为解码后的码
function [decode,sign] =CrcDecode(code)
generator = [1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1]; % 16bit CRC 生成多项式D16+D15+D2+1
[divid, remainder]=deconv(code,generator);	% 对多项式的除,就等于做反卷积
 remainder=mod(remainder(end-15:end),2);	% 对除法的余数做模二运算
 if isequal(remainder,[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]);
     sign=0;% 如果正确 指示0 并解码
     decode=code(1:end-16);
 %    msgbox(['CRC[',num2str(code(end-16:end)),']校验正确!']);
 else
     sign=1;
     decode=code(1:end-16);
     
  % msgbox(['CRC校验错误:[',num2str(remainder),']']);
 end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?