识别低频噪声中的短高频声音(objc / c)

时间:2011-03-04 19:50:18

标签: objective-c c audio frequency

我目前正在创建一个应用程序,它使用高频声音向其他设备发出信号。

(发射器):设备会产生大约20khz的短暂声音。

(接收方):另一台设备将在距离发射机一小段距离处收听此频率的声音(约10米)设备接收来自麦克风的音频数据

背景噪音相当大,从大约0到10khz(大约是人类语音范围)不等,并且会由一小群人制作。

我需要接收设备能够检测到与噪声分开的20khz声音,

并知道收到它的时间。

使用适当的算法,库或更好的C或

代码提供帮助

Objc检测这种高频声音将不胜感激。

4 个答案:

答案 0 :(得分:3)

20 kHz可能正在推动它,因为(a)大多数声卡具有18 - 20 kHz的低通(抗反射)滤波器和(b)大多数扬声器和麦克风在20 kHz时往往具有较差的响应。你可能想考虑说15 kHz?

实际检测部分应该很简单 - 只需在音频频率上实现窄带通滤波器,整流输出和低通滤波器(例如10 Hz)。

答案 1 :(得分:0)

您可能需要研究FFT(快速傅立叶变换)。该算法允许您分析波形并将其转换为频谱以进行进一步分析。

答案 2 :(得分:0)

如果是Mac OS或iOS,我会开始研究Core Audio的音频单元。

1这是Apple的Core Audio Overview

2一些AudioUnits for Mac OS

3或iOS AudioUnit Hosting

答案 3 :(得分:0)

使用iphone扬声器时,高频率的声音根本无法传播。