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 + -
显示快捷键?