我有以下问题:随着时间的推移,我有2个信号。它们来自同一个来源,因此它们应该是相同的。我想检查一下他们是否真的。
并发症:
我的想法是用傅里叶变换,卷积和统计方法进行比较。有人可以给我发一些链接,我可以找到更多关于如何处理这个问题的信息吗?
答案 0 :(得分:4)
您只需移动它们就可以轻松校正相位,使其质心对齐。 (或者,在傅里叶域中,仅乘以第一系数的相位的倒数。)
同样,如果你想排列仅给出部分数据的图像,你可以只是交叉关联并取最大值(这在傅立叶域中也很容易)。
这使得这个过程中唯一棘手的部分是处理采样率。现在,如果您先了解采样率是多少(并且它们是否与有理数相关),您可以使用sinc插值/下采样将它们重新调整为通用采样率:
https://ccrma.stanford.edu/~jos/st/Bandlimited_Interpolation_Time_Limited_Signals.html
如果你不知道采样率,你可能会有点紧张。从技术上讲,你可以尝试对信号的所有不同反应进行强制攻击,但这样做往往会很慢或者产生平庸的结果。
作为最后一个建议,如果您只想准确匹配声音,可以尝试使用倒谱并验证信号的峰值是否足够接近某个容差范围内。这种类型的分析在声音和语音识别中被大量使用,并进行了一些改进以使其在本地运行更多。它倾向于与语音和音乐等调频数据一起使用效果最佳:
答案 1 :(得分:3)
傅里叶变换确实听起来像是正确的方式。
有太多的数学信息让我开始在这里解释,所以如果你真的想知道发生了什么(因为我认为你不能只使用FT而不理解它)你应该使用麻省理工学院的这个参考OpenCourseWare:http://ocw.mit.edu/courses/mathematics/18-103-fourier-analysis-theory-and-applications-spring-2004/lecture-notes/
希望它有所帮助。
答案 2 :(得分:0)
如果您正在使用Linux机箱并且已经记录了需要处理的波形,您可以尝试使用file
命令显示有关录制的详细信息。它在wav文件上调用时为您提供采样率,但我不确定您录制的是哪种格式。
如果信号相对于彼此进行时移,您可以尝试将具有增量延迟的delta函数卷积,然后进行比较。在MATLAB上,conv
和all
应该足够好了。
这些只是“原始”尝试(几乎就像黑客攻击问题一样)。可能存在移位不变的算法可能会做得更好。
希望有所帮助。