这是场景:
我生成的信号是: 200ms @ 2kHz 1000ms of zeros 200ms @ 2kHz
我想计算它们之间的时间延迟,而不是两个合成音频部分之间的时间延迟。但是通过在扬声器上播放信号并使用麦克风记录它(增加噪音)
Fs = 44100
我试过:1.互相关2.计算8820个样本大小的RMS窗口的两个最大值之间的差异。 (当窗口位于声音部分时,我们得到最大值。
扬声器和麦克风之间的距离约为 30 厘米。我无法得到稳定的结果。为什么?
最佳答案
如果您想准确一致地执行此操作,那么我过去使用的一种方法是将一个 channel (例如左 channel )从输出环回输入,然后使用另一个(即右) channel 进行时序测试.然后,您可以在左(环回)和右(实际音频) channel 之间进行交叉关联。这消除了许多潜在的错误来源(缓冲区延迟、硬件延迟、软件问题等),因为左右 channel 将始终“同步”,并且您应该能够将测量精确到 +/- 1 个采样周期(在 44.1 kHz 时为 +/- 12 µs)。
关于matlab - 音频信号的延时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24009805/