CRC二进制除法的一些总结
使用Matlab生成一个 60位的随机数,用2048个12位的多项式对其做除法运算,查看其余数的重复情况。
用足够多的随机数60位随机数做第一问的除法运算,观察总体的重复的概率分布。
第一次用matlab编程。
查找了crc循环冗余的资料,就跟着crc求余数的思路。
Crc方法:把12位多项式当做除数,把多项式系数变成二进制01编码,最高次1, 于是12位多项式相
然后,把生成的随机数也变成二进制,在其后面补R=(多项式长度-1)个0,
再除以多项式,二进制除法就相当于异或计算,不进位。余数的取最后的R位。(做到这里就达到题目的要求了)再将随机数的后R位用余数替换,除以二进制多项式,若余数为0,则正确,不为0,错误。
1.十进制转二进制dec2bin
转化后的二进制格式,要转变成向量矩阵,才能进行矩阵合并,进而补0
oba=dec2bin(a) ;
d=[];
for l=1:length(oba)
d=[d str2num(oba(l))];
end
d;
2.设置一个空矩阵x[],最后填充时,格式要对,还要把向量转成十进制
r=num2str(r)
r=bin2dec (r
- 1XXXXXXXXXXX共2048个12位多项式,十进制时2048到4095
后一位确定为1,所以都不能被2整除所以可以作为判断条件。 - [q,v]=deconv()相当于多项式除法,结果可能为负数
Mod2,模2取余法,求得余数。
5.用二进制计算要注意之前各种数据格式的转化!!格式不对,会报错。而且有时回报2^53的错
这是crc,运行100次的概率图
这是用十进制直接除100次的概率图
十进制运行1W次的概率。
用crc算法,matlab运行太慢,里面有太多的for循环。其核心是多项式除法,即异或除法,所以和10进制除法不一样。
附加crc代码:
x=[];
i=0;
a=unidrnd(2^60-1)
oba=dec2bin(a) ;
d=[];
for l=1:length(oba)
d=[d str2num(oba(l))];
end
d;
for m=2048:4095
obj=dec2bin(m) ;c=[];for j=1:length(obj)c=[c str2num(obj(j))];endc;
R=length(c)-1;
[q,r] = deconv([d zeros(1,R)],c);
r=mod(r(end-R+1:end),2);
r=num2str(r);
r=bin2dec®;
i=i+1;
x(i)=r;
end
end
fprintf(‘x=%dx[]’)
第二问
假设用2000个随机数分别求第一个多项式…第2048个多项式,看哪个余数的重复最少。即验证2048个crc多项式哪个最优。
只用把除数的循环提前,再加一个2000次循环就可以了。
把数据导入excel中操作比较方便,筛选出余数个数最多的多项式。111001010011
CRC二进制除法的一些总结相关推荐
- CRC循环冗余校验引起的二进制除法如何计算风暴
文章目录 知道两个概念 模2和 模2减 两种不同的二进制除法 除法 模2除法 CRC 循环冗余校验 编码过程 差错检测能力 谈CRC循环冗余校验的之前,先把二进制除法说一下,先回忆一下十进制之间的除法 ...
- 计算机网络:二进制除法与CRC校验
在此记录两道计算机网络教材的课后题: 1.要发送的数据为1101011011.采用CRC的生成多项式是P(X)=X^4+X+1.试求应添加在数据后面的余数.数据在传输过程中最后一个1变成了0,问接收端 ...
- 二进制除法\模2除法
二进制除法: http://blog.csdn.net/luishen/article/details/5735360 http://baike.baidu.com/link?url=TRC6yBKY ...
- 计算机组成二进制除法,计算机组成原理:3.4.1 定点原码 除法器
<计算机组成原理:3.4.1 定点原码 除法器>由会员分享,可在线阅读,更多相关<计算机组成原理:3.4.1 定点原码 除法器(28页珍藏版)>请在人人文库网上搜索. 1.计算 ...
- 二进制除法移位相减_二进制除法计算器
二进制除法怎么算(共2篇)二进制的运算法则1 2 微型计算机运算基础1 2 1 二进制数的运算方法电子计算机具有强大的运算能力,它可以进行两种运算:算术运算和逻辑运算.1.二进制数的算术运算二进制数的 ...
- 计算机原理中的二进制除法,多字节除法--汇编实现原理
2.1长除法 长除法适用于整式除法.小数除法.多项式除法(即因式分解)等较重视计算过程和商数的除法,过程中兼用了乘法和减法. 长除法与手工计算除法方法一致. 以8592÷24为例: 从计算过程可以看出 ...
- 二进制除法移位相减_verilog移位相减实现除法(转载)
引言 除法器在FPGA里怎么实现呢?当然不是让用"/"和"%"实现. 在Verilog HDL语言中虽然有除的运算指令,但是除运算符中的除数必须是2的幂,因此无 ...
- 计算机中的二进制除法
文章目录 计算机中的二进制除法 一.原码除法的规则 二.恢复余数法 三.加减交替法 计算机中的二进制除法 一.原码除法的规则 原码除法运算规则如下: (1)除数≠0.对于定点纯小数,|被除数|< ...
- 简易理解并计算二进制除法
二进制除法可以算是二进制算法中最难(相对加减乘)的一个,有些人在理解上出现一些误差,下面教大家如何简单理解并计算二进制除法 首先介绍一下二进制的运算规则:1÷1=1:1÷0=0(无意义):0÷1=0: ...
最新文章
- 监听android 上的完成按键
- c语言课后题2.52.8答案,C语言练习题(8)-只要答案不要分析,要速度,要正确51.(1 爱问知识人...
- 图片向上滚动字幕代码html,如何通过制作滚动字幕的软件实现这种片尾的向上滚动字幕效果...
- java 获取 网卡名称_Java获取网卡信息详解
- Ubuntu设置为命令行登录
- android自定义view(自定义数字键盘)
- ieee754浮点数转换工具_关于JS浮点数运算不精确的原因和解决方案
- linux+有趣的指令,6个有趣的Linux命令(乐趣终端) - 第二部分
- 【转】用Qt生成dll类库及调用方法
- Python数据库连接池DBUtils(基于pymysql模块连接数据库)
- 如何使用shell收集linux系统状态,并把结果发给远端服务器
- 简单介绍,基于ldirectord的高可用lvs-dr调度器
- mysql5.6 prompt的用法详解
- Java反射原理与Class类(详解)
- [2018.09.05 T1] Lyk Love painting
- 展讯8541E:NFC PM1810驱动调试
- 记各常见手机屏幕尺寸
- Acute Angle Cloud与Achain达成战略合作,共促区块链系统发展
- 爬取豆瓣高分电影榜实例
- 数据标注员需要专业系统的学习么?
热门文章
- 微信支付JsApi 40163错误
- xutils3传参(集合、对象)
- android二次打包教程,Android应用程序打包签名、加固、二次打包(图形/命令行)...
- 互联网吹牛逼指南:我们和腾讯有深度合作=公司用QQ邮箱
- matlab中调用histeq函数命令,根据MATLAB的histeq函数改写的运行在OpenCV下的直方图规定化源码!...
- jsx语法技巧vue
- Docear放大字体
- 1.SQL的基本入门
- 微软分段推出电子墨水白板应用程序
- 这款软件可以将大脑活动实时呈现在网页上