matlab实现CRC

上传人:lil****ar 文档编号:333429718 上传时间:2022-09-02 格式:PDF 页数:1 大小:20.44KB
返回 下载 相关 举报
matlab实现CRC_第1页
第1页 / 共1页
亲,该文档总共1页,全部预览完了,如果喜欢就下载吧!
资源描述

《matlab实现CRC》由会员分享,可在线阅读,更多相关《matlab实现CRC(1页珍藏版)》请在金锄头文库上搜索。

1、matlab实现CRC适于任何于等于32位的CRC校验function crcout = crcX(datain,tempstr,initdata,refin,refout,xorout)%cala crc%author *%parameter: initdata -xor the fisrt reg; refin - the datain need reflect%refout: out crc need reflect; xorout- crc reg xor xoroutmcrctemp = uint32(bin2dec(tempstr);len = length(tempstr);si

2、ze = length(datain);for i = 0:(fix(len/8)+1) datain(end+1) = 0;endif refin = 0 datain = reflect(datain , 8);end%andvalue = num2str(uint8(zeros(1,len+1);%andvalue(len+1) = 1;andvalue = bitshift(1,len);midout = uint32(0);for i = 0:(size*8)-1)+len) midout = bitshift(midout,1); if bitand(datain(fix(i/8)

3、+1),bitshift(1,7-rem(i,8) = 0 midout = bitor(midout,1); end if i = len-1 midout = bitxor(midout,initdata); end if bitand(midout,andvalue)=0 midout = bitxor(midout,mcrctemp); end% dec2bin(midout)endif refout = 0 midout = reflect(midout,len);endmidout = bitxor(midout,xorout);andvalue = bitshift(429496

4、7295,len-32);crcout = bitand(midout,andvalue);end function outdata=reflect(data,bitnum)%reflect this data%paramter explain: bitnum reflect bit numbersize=length(data);outdata = zeros(1,size);mvalue = bitshift(4294967295,bitnum);for i = 1:size outdata(i) = data(i); outdata(i) = bitand(outdata(i),mvalue); for j=0:(bitnum-1) if bitand(data(i),bitshift(1,j) = 0 outdata(i) = bitor(outdata(i),bitshift(1,bitnum -1 - j); end endendend

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号