问题标签 [error-detection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
protocols - 自制通信协议的校验和
我必须实现一个通过 I 2 C 运行并用于两个分布式微控制器的板对板通信的通信协议。为了确保数据完整性,我想在通信协议中添加一个校验和,并认为应该适合 CRC-8 或 CRC-16 之类的东西,但不幸的是我没有胶水,我应该使用哪个标准来确定最佳算法,并且在下一步,最佳设置(如 CRC 的多项式值)。
我的协议很简单,只定义了一个 32 位读取和一个 32 位写入命令:
I 2 C 主读命令:
- 请求(I 2 C WR):2 字节内存索引 + 校验和
- 响应(I 2 C RD):4 字节数据 + 校验和
I 2 C 主机写命令:
- 请求(I 2 C WR):2 字节内存索引 + 4 字节数据 + 校验和
我在论坛帖子上读到,CRC 长度取决于应验证的数据大小,因此 CRC-8 可以充分验证 CRC-16 的 2 8 % 8 (=32bit) 和 2 16 % 8 (=8KiB) 数据. 如果真是这样的话,CRC-8应该就够了,但是不知道这个说法对不对……
有人可以帮助我,我如何确定我的协议的最佳校验和算法?
algorithm - 获取没有控制位的原始汉明字
如何在没有汉明编码的情况下获得原始单词?
例如:我有这个汉明编码的词:011001101100 我怎样才能回到原来的词?正确答案是:00111100
python - Reed Solomon 错误检测能力不是 2T
我正在建立一个 Reed Solomon 库来纠正和检测进来的错误。为简单起见,让我们看一下 Reed Solomon 配置,其中
这可以纠正任何 1 个符号错误,并且,这篇文章的目的,它可以检测 2 个符号错误。关于 RS 错误检测的文献有限,但您可以查看Wikipedia 文章中的简介:
通过将 t 个校验符号添加到数据中,Reed-Solomon 码可以检测最多(包括)错误符号的任意组合,或者纠正最多(包括)⌊t/2⌋ 符号的任何组合。
然而,这似乎与我的观察不符。
我有一个库,主要是根据这篇文章构建的。
据我所知,效果很好。我围绕我们的实现设置了一个详尽的测试,发现有 2 个符号错误(据我理解应该是可检测的)但事实并非如此。据我了解,一个简单的检查来查看是否发生了通过正常检查的不可纠正的错误(即错误定位器是有效的,发现错误具有有效的错误计数,多项式次数是有效的)是重新计算的伴随式更正的消息。如果校正子不为零,那么我们仍然有错误。但是,当我这样做时,校正子全为 0,表明没有发现错误,并且我们在具有 1 个错误符号的错误向量和具有 2 个错误符号的错误向量之间存在冲突。
这是测试:
输出:
如果你还在阅读,谢谢。我知道我没有提供整个库,但我确实提供了输入、输出和关键变量值。我想知道的是我上面写的理解是否错误;我们可以检测 2T 符号错误,其中 2T 是添加符号的数量。因为从这个测试用例中似乎存在冲突,我通过计算以下错误向量中的伴随式来进一步测试这一点,这些错误向量进一步支持冲突,并且 Reed Solomon 不一定能检测到 2T 以内的所有错误。让我知道我是否错了。
和
有碰撞
checksum - 什么是最“位高效”的错误检测方法?
为了检测比特长度n_errors
代码中的许多错误n_total
,我们必须牺牲一定数量n_check
的比特来进行某种校验和。
我的问题是:方法是什么,我必须牺牲最少的位数来检测位长度代码中n_check
给定数量的错误。n_errors
n_total
如果对这个问题没有一般性的答案,我将非常感谢有关以下条件的方法的一些提示:
n_total=32
,n_errors>1
并且显然n_check
应该尽可能小。
谢谢你。
networking - 数据链路层最常用的错误控制机制是什么?
我已经阅读了 3 种错误控制技术,即停止和等待 ARQ、返回 N ARQ 和选择性 ARQ 所有我想知道网络行业目前正在使用哪种技术......
有人可以给我任何链接以获取有关网络行业当前变化的最新信息。
谢谢
javascript - Canvas HIT 测试:处理元素边界和抗锯齿
设置
作为用 Javascript 编写的 Web 矢量编辑工具的一部分,我正在使用类似于Concrete.js的命中画布策略来实现命中测试。大多数情况下,它工作得很好:我画了两次我的形状(一次在显示画布上,一次在命中画布上)。
在查询画布时,我检查命中画布的悬停像素并提取交互信息(即其中存储了哪个对象 ID)。
问题
这在形状内部效果很好,但在抗锯齿使存储数据无效的边界处存在严重缺陷(它与之前存在的任何背景数据混合在一起)。有没有很好的策略来处理这个数据边界问题?
如果不禁用画布方法的抗锯齿,那么我们必然会有一些跨越重叠区域的边界区域,这些区域将存储来自多个区域的合并数据。
简单的场景
在二元场景(一些前景与背景)中,可以减轻这种情况,因为我们可以假设背景没有价值,任何价值都变成了一些前景。
真实场景
但是,在背景之上多个形状相互重叠的一般场景中,是否有任何合理的错误检测策略?(或纠错,但我认为这更难)
如果我可以判断数据是无效的(即它由抗锯齿引起的扰动数据组成),那么我可以对边界处的那几个像素使用不同的策略。但我觉得在我们可以有许多重叠形状的一般情况下,无法判断我提取的数据是否有效。
当然,一种解决方案是不使用命中画布。但我想知道人们是否找到了使用命中画布的解决方案,因为它们似乎非常适合处理复杂的几何图形。
抗锯齿
理想的解决方案是禁用 anti-aliasing,我认为这对于画布方法 [*] 是不可能的。
[*] 我知道我们可以在渲染图像(例如那个问题)时禁用过滤,例如 withimageSmoothingEnabled=false
或 rescaling with image-rendering: pixelated
,但是这些并不能解决绘制形状/路径时的抗锯齿问题。
crc - CRC 错误检测和未检测到的错误概率
如果我们有一个大文件,比如说 1 PB,那么可以检测所有错误的最佳 CRC 是什么?32位够吗?
我还听说undetected error rate (packet or chunk) is= BitR* BER * 0.5^k
哪个 K 是 CRC 的 FSC。在 CRC 32 k 中是 31
我想知道我们是否有更大的数据包或更小的数据包,这将如何影响 CRC ……从这个等式来看,它根本没有影响。
python - 是否有用于在时间序列数据集中连续定位多个相同值的 python 函数?
我正在处理 2020 年每分钟聚合的大型时间序列数据集。该数据集从正在监测热电厂设备的传感器获取值。传感器测量温度、压力、电流等值,并根据每次读数更新数据集。
我正在寻找由传感器引起的数据集中的错误。当来自传感器的输入停留在某个值时,就会出现来自传感器的错误类型之一。例如,当我们知道它应该波动时,其中一个温度传感器连续 20 分钟报告了 71.46 的值。我试图在我当前的数据集中找到这些错误,并希望训练一个模型来检查未来数据集中的重复值。
理想情况下,我希望能够在数据集中找到一个值连续重复 5 次或更多次的时间窗口。
数据采用 pandas 时间数据帧的形式,内核为 python 3.6。如果您有任何建议,请告诉我。
c++ - 从字符串转换的编译时检查?
让我们有一个Foo
从字符串定义转换构造函数的类。根据字符串的内容,此构造函数可以成功(创建 的实例Foo
)或失败(抛出异常):
我们还operator==()
用于比较 aFoo
和字符串:
客户端代码可能最常使用有效的字符串文字调用比较运算符:
但有时它可能会使用无效的字符串文字调用比较运算符(程序员的错误):
有没有办法在编译时而不是运行时检测案例 B?(我希望有,但害怕没有......)
注意:可以检查字符串的有效性,例如,使用正则表达式。