问题标签 [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.

0 投票
2 回答
472 浏览

checksum - 哪个是更好的 CRC 方案?

假设我必须对 120 位长的消息进行错误检查。对于校验和方案,我有两种选择:

  1. 将消息拆分为 5 个 24 位字符串,并为每个字符串附加一个 CRC8 字段

  2. 用 CRC32 字段附加整个消息

哪种方案的检错概率更高,为什么?让我们假设没有关于错误模式分布的先验知识。


更新:

如果系统有一种自然的故障模式,即接收到清除位而不是设置位(即,“1”是 Tx-ed,但“0”是 Rx-ed),而相反的情况不会发生,该怎么办?

在这种情况下,长突发错误比特的概率要小得多,假设有效数据具有“0”和“1”的均匀分布,那么最长突发将被最长的“1”字符串所束缚“在消息中。

0 投票
1 回答
91 浏览

python - 动态检测缺失的模块(Python)

在处理更大的项目时,我非常热衷于错误检测和处理。我正在使用用户可能安装或未安装的一些模块,因此我需要考虑这种可能性。

我想知道一种在尝试导入它们时检测缺少哪些模块的方法。目前,我有一组 try/except 块监视 ImportErrors 并将产生错误的模块的名称附加到列表中。

当前代码:

这种方法似乎工作得很好,但我想要一种占用更少整体空间的方法。使用这种多尝试/除块方法的主要原因是我需要检测哪个模块导入有问题。

0 投票
2 回答
248 浏览

networking - 计算机网络错误检测循环冗余校验

谁能告诉我

如果我通过下面给出的方法计算 crc 是否正确:

我这样做是因为数据字的长度很大。

手算

手算

这样对吗?

0 投票
3 回答
1327 浏览

c - 用于非常短的串行数据包的数据包成帧

我们为嵌入式设备设计了简单的固定长度协议。每个数据包只有两个字节:

我们使用“基于 crc 的成帧”,即接收方收集两个字节,计算 CRC4,如果匹配,则认为帧有效。如您所见,没有帧开始或帧结束。

有一个问题:CRC4 的推荐消息长度为 11 位,此处计算为 12 位。据我了解,这意味着 CRC 错误检测属性会降低(但我不确定会降低多少)。

(顺便说一句,如果有人需要 CRC4(或任何其他)的代码并且觉得自己没有足够的技能来编写它,boost 有非常好的 boost::crc 函数可以计算任何 crc )

问题是:这种基于 crc 的框架不起作用,并且我们得到框架错误,即来自一条消息的第二个字节和来自以下消息的第一个字节有时会形成正确的消息。

我的问题是 - 有没有办法在不添加更多字节的情况下纠正框架?我们花了相当长的时间压缩这两个字节中的所有内容,就这样扔掉它会有点难过。不过,我们在操作码字段中确实有一个备用位。

  • 基于时间的成帧不会很可靠,因为我们的无线电频道喜欢一次“吐出”几个数据包
  • 也许还有其他一些比 CRC4 更有效的错误检测方法?

如果我们必须附加更多字节,那么最好的方法是什么?

  • 我们可以使用帧开始字节和字节填充(例如 COBS)(+2 个字节,但我不确定如何处理损坏的消息)
  • 我们可以使用帧开始半字节并将 CRC 扩展为 CRC8(+1 字节)
  • 还有什么?
0 投票
2 回答
10193 浏览

checksum - 检查 CRC 多项式的错误检测能力

我试图找出如何计算任意 CRC 多项式的错误检测能力。

我知道有各种错误检测功能可能(或可能不)适用于任意多项式:

  1. 检测单个位错误:所有 CRC 都可以做到这一点,因为这只需要 CRC 宽度 >= 1。

  2. 突发错误检测:所有 CRC 都可以检测到大小等于其宽度的突发错误。

  3. 奇数位错误的检测:具有偶数项的多项式(这意味着完整的二进制多项式中有偶数个 1 位)的 CRC 可以做到这一点。

  4. 检测随机位错误(取决于帧大小):我有一个现成的 C 算法,允许计算给定 HD 和多项式的最大帧大小。我没有完全理解它,但它有效。

让我们假设一个 16 位 CRC 多项式 x¹⁶+x¹²+x⁵+1 = 0x11021。该多项式可以:

  • 检测所有单位错误(与数据大小无关)。
  • 检测所有高达 16 位宽度的突发错误(与数据大小无关)。
  • 检测所有奇数位错误(因为它有 4 个多项式项;与数据大小无关)。
  • 检测高达 32571 位数据大小的 3 位错误 (HD4)。

以上是正确的吗?

是否有额外的 CRC 错误检测功能?如果是,我如何检查(没有深厚的数学知识)任意 CRC 多项式是否支持它们?

0 投票
1 回答
549 浏览

java - 如何检测 UPC 代码中的错误?

我知道 UPC 代码有一个校验位,以及如何使用这个校验位来查看代码是否有效。

如果代码无效,我的程序需要告诉我错误在哪里。我知道这是可以做到的,但是怎么做呢?我需要检测单个替换错误(例如,输入 5 代替 2)和换位错误(例如,输入 12 而不是 21)。

看起来很简单,但我无法弄清楚。

0 投票
1 回答
1969 浏览

crc - 我想知道 crc 错误概率。我怎样才能得到 2^(-n)?

我想知道 crc 错误概率。

在大多数论文中,crc 错误率被描述为 1-2 (-n)

比如 crc-16 的概率是 1-2 (-16),所以 2 (-16) =1∕65536=0.0015%, prob = 99.9984%

我想知道如何获得这个公式: 2^ (-n)

如果 2 (-n)是正确率,那么 crc-16 和 crc-ccitt 的率是一样的吗?如果消息位比以前大,速率是否相同?

0 投票
1 回答
457 浏览

algorithm - 为什么Luhn算法乘以2?

我对 Luhn 算法有疑问。用于错误检测和校验和数字的 luhn 算法 (mod 10)。例如签证、信用卡等数字。

例如我们有数字:Digits 1 2 3 4 5 6 7 8 9 3

第 1 步:从最右边的第二个数字开始,将备用数字的值乘以 2。示例:数字 1 2 3 4 5 6 7 8 9 3 乘数 X2 X2 X2 X2 X2

Step2:将上述产品的所有单个数字与原始数字中的未加倍数字相加。如果更多 10 则加或减 9。数字。

例子:

步骤3:若总模10等于0,则根据LUHN公式该数有效;否则无效。例子。40 mod 10 = 0 所以有效,如果不是 0 那么无效。

问题是,为什么在步骤 2 中使用乘以 2?什么原因?(请提供链接参考或论文)。谢谢

0 投票
0 回答
66 浏览

visual-studio - 如何使用 Visual Studio 获得更好的错误输出

我正在做一个项目并遇到以下错误

由于几乎不可能从中找到错误的原因,因此我尝试使用 gcc 进行编译-Wall并得到以下输出

这个输出更加详细,并且很快帮助我找到了错误的来源&(类成员应该是Vec left,是Vec& left)。

是否可以使 Visual Studio 变得冗长?

将 Visual Studio 放入 时/Wall,我收到 >1800 个警告,大多数与我的项目完全无关,但我仍然只收到这两个错误。

0 投票
2 回答
1045 浏览

laravel - 你能让 Sublime linter 与 Laravel 刀片一起工作吗?

我在我的所有项目中都使用http://www.sublimelinter.com是否有可以在blade.php 页面中使用的 linter?

或者我怎样才能让它与blade.php页面一起工作?

非常感谢!