我在信号处理方面不是很有经验,看起来这应该是一个简单的问题。我有两台计算机,一台以 44.1 kHz 的采样率播放 19 kHz 的音调,另一台以 44.1 kHz 的采样率进行监听,并尝试查找是否存在 19kHz 音调。信号的传输是在嘈杂的环境中进行的,我尝试使用 FFT 和 Goertzel 找到 19 kHz 波的幅度,但都没有给我一个决定性的值(幅度非常小)。
对于 FFT,我使用 JTransform,运行 forwardFFT,然后找到 19 kHz 所在的 bin,并通过 (imaginary * imaginary + real * real) 获得该频率 bin 的分量的幅度。
对于 Goertzel,我遵循了该站点上的伪代码:http ://www.mstarlabs.com/dsp/goertzel/goertzel.html 。我觉得如果样本大小相同,FFT 和 Goertzel 都应该给出相同的幅度,但它们为该频率仓提供不同的值。
我预计幅度会大于 10,但我不相信这是可行的。作为第一步,我相信我至少需要滤除 19 kHz 以下的噪声,但我不确定。也许应该先做一些高通滤波?关于如何检测 19 kHz 正弦波的任何建议?谢谢你。更新:
这是我从麦克风获得的原始数据图:
我觉得这只是噪音,但我不确定。