匹配数据的算法

时间:2011-03-12 19:18:44

标签: algorithm string string-matching

我有一个项目,我正在测试一种对噪音非常敏感的设备(电磁,无线电等......)。该设备基于给定输入(音频)生成每秒5-6字节的二进制数据(对于未经训练的眼睛看起来像胡言乱语)。

根据噪音,有时设备会遗漏字符,有时它会插入随机字符,有时是两者的倍数。

我编写了一个应用程序,使用户能够即时查看它生成的错误(与主文件相比[例如,设备应在理想条件下输出的内容])。我的算法基本上取实时数据中的每个字节,并将其与已知主文件中相同位置的字节进行比较。如果字节不匹配,我在当前位置两个方向都有一个10个字符的窗口,我会在附近寻找匹配。如果匹配(加上验证或两个),我会直观地在UI中标记位置并注册错误。

这种方法运行得相当好,实际上,考虑到输入数据的速度,它也可以实时工作。但是,我觉得我所做的并不是最优的,如果数据以更高的速率传输,那么这种方法就会崩溃。

我可以采取其他方法吗?是否有针对此类事物的已知算法?
多年前我读过美国宇航局的数据收集装备(例如与太空和月球/火星上的工艺品交流的装备)尽管在太空中受到巨大干扰,但仍有0.00001%的数据丢失。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我认为主要的兴趣是设备产生的信号?更重要的是什么?检测何时发生错误或使信号对此类错误“稳健”?我最近进行了大量的信号处理,并且对信号进行去噪是我惯例的一部分,我基本上是在尝试估算真实信号并去除任何污染物。

我不知道设备生成的信号是如何被进一步使用的...如果它被记录到计算机上,那么你可以轻松地应用一些去噪,例如尝试小波去噪。您可以使用您选择的多种语言找到用于执行此操作的软件包。