返回信息流因为课程设计要用CRC校验,找了半天也没有看到哪个能实现二进制多项式除法的。。。求大神指点!!
这是一条镜像帖。来源:北邮人论坛 / matlab / #11055同步于 2014/7/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖
matlab里边能实现二进制多项式除法的函数是什么?
LoveSummer
2014/7/2镜像同步1 回复
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
function output = CRC(input,poly)
%% input
%input:经过分割后的数据块
%% output
% output:添加检验码之后的每一个传输块数据
len = length(input);
len_check = length(poly) - 1;
output = zeros(1,len+len_check);
output(1:len) = input;%CRC 循环冗余校验码的原理就是在最高位是1的时候进行异或运算,否则进行左移一位。
for ii=1:len
if output(1) == 1
output(1:len_check+1) = mod ((output(1:len_check+1)+poly),2);%异或运算
end
output = [output(2:end) output(1)];%进行移位
end
output = [input output(1:len_check)];
end
以前写LTE链路时候写的一个CRC校验的函数,poly是校验多项式,你参考一下~~~~