我的老板希望我开发一款应用程序,使用iPhone识别人类听不到的20-24赫兹的声音频率。 (iPhone频率响应:20 Hz至20 kHz)
这可能吗?如果是的话,有人可以给我一些建议吗?从哪里开始?
答案 0 :(得分:6)
在开始这项工作之前,您需要确保iPhone硬件在物理上能够检测到如此低的频率。大多数麦克风在低频时具有非常差的灵敏度,并且消费者模拟输入级通常具有高通滤波器,其衰减低于~30Hz的频率。您需要尝试使用iPhone上的现有音频捕获应用程序捕获包含感兴趣信号的一些测试声音,并查看是否记录了低频成分。如果没有,那么您的应用程序是非首发。
答案 1 :(得分:1)
您正在寻找的是快速傅里叶变换。这是用于将基于时间的信号转换为基于频率的信号的主要算法。
似乎Accelerate框架有一些FFT支持,所以我开始考虑这个问题,已经有几个帖子已经有了。
Apple有一些示例openCL代码用于在Mac上执行此操作,但AFAIK openCL尚未在iOS上使用。
您还需要检查麦克风的频率响应(我认为有些应用程序可以通过麦克风进行示波器显示,这对我们有帮助。)
你的基本方法是从麦克风中取出一大块声音。过滤它,然后根据你需要做的事情,可以在频率上调低它。