matlab中CRC的函数使用
来源:互联网 发布:数字最优化的方法 编辑:程序博客网 时间:2024/06/08 00:33
matlab中CRC的函数使用
先学习一下matlab中CRC函数。
语法如下:
h = crc.generator(‘Polynomial’, polynomial, ‘param1’, val1, etc.)
再看一个例子就比较好容易理解,
- % Construct a CRC generator with a polynomial defined
- % by x^3+x+1, with zero initial states,
- % and with an all-ones final XOR value:
- h = crc.generator(‘Polynomial’, [1 0 1 1], …
- ‘InitialState’, [0 0 0], …
- ‘FinalXOR’, [1 1 1])
% Construct a CRC generator with a polynomial defined% by x^3+x+1, with zero initial states,% and with an all-ones final XOR value:h = crc.generator('Polynomial', [1 0 1 1], ... 'InitialState', [0 0 0], ... 'FinalXOR', [1 1 1])
Polynomial指的是CRC的生成多项式,上面的是二进制表示,同样可以用十六进制表示’0xb’,和上面是等效的,InitialState指的是CRC的初始值,FinalXOR指的是最后的输出需不需要做异或,如果为全零其实就是保持原来的值,全1表示为把结果取反。
这里还有几个参数也按我的理解说一下。ReflectInput这是个布尔变量,当它为true时,进入移位寄存器是按byte进去的,所以要求多项式的长度必须是8的倍数。它的default值是false。
我项目中需要的一个例子如下:
h = cr.generator(‘Polynomial’,[1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1],’InitialState’,[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0],’FinalXOR’,[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]);
%这个多项式为x^16+x^15+x^2+1,注意后面’InitialState’和’FinalXOR’的值都是16个0.
crc_din = 3;%这里是十进制,而且可以用load一个文件后面的几行就是为了load一个文件而处理的
crc_din_bi = de2bi(crc_din,2);%转换成2位的二进制,后面的2指的是2位
crc_din_trans = transpose(crc_din_bi);%这个函数的意思就是把crc_din_bi这个矩阵翻转,比如原来crc_din_bi是一个1x2的矩阵,翻转后变成2x1,前面是行数,后面是列数
crc_din_trans_reshape = reshape(crc_din_trans,[],1);%中间是一个方括号。reshaple的意思是把一个矩阵串起来,按照一列串起来
encoded = generate(h,crc_din_trans_reshape);%执行CRC
这个程序运行的结果是
1%原数据
1%原数据
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
后面16位就是输出的CRC值,其实就是0xa
如果要输出一个文件
fid = fopen(‘crc_out.txt’,’w+’);
for cnt = 1 : size(encoded,1)
fprintf(fid,’%-d\n’,encoded(cnt));
end
fclose(fid;)
- matlab中CRC的函数使用
- matlab中CRC的函数使用
- Matlab中函数使用
- Matlab中窗函数的简单使用
- Matlab中bwlabel函数的使用
- Matlab 中 residuez函数的使用
- MATLAB 中 filter 函数的使用
- Matlab中save函数的使用
- matlab中strcmp函数的使用
- matlab中find函数的使用
- MATLAB中classify函数的使用
- Matlab中uigetfile( ) & iscell() 函数的使用
- Matlab中一些基本函数的使用
- Matlab 中prod函数的使用
- matlab中fmincon函数的使用
- Matlab中set-gca函数的使用
- matlab中窗函数的使用(一)
- matlab中strcmp函数的使用
- 游园不值
- Micorstation 二次开发 之 AddInManager
- JS基础(一)-------JS简介
- 鼠标单击的行反色,删除选定的行
- 深度学习环境搭建(Windows下Anaconda安装与配置)
- matlab中CRC的函数使用
- 欢迎使用CSDN-markdown编辑器
- R中关于包的操作
- CSS 选择符有哪些?哪些属性可以继承?优先级算法如何计算? CSS3新增伪类有那些?
- Lua中面向对象之new的传参方式
- 二哥OJ 1051-1250
- Chtholly's request (思维)
- 以 XXXXdigYYMMdd.txt的形式在手机文件目录下新建文件
- python中进程、线程的浅谈