iPhone上的频率检测

iPhone上的频率检测,iphone,objective-c,audio,fft,frequency,Iphone,Objective C,Audio,Fft,Frequency,我目前正在使用的应用程序的一部分将用作调谐器。我希望能够使用iPhone显示用户给定信号的峰值频率。我使用了在iPhone模拟器上运行得非常好的。然而,当我在一个真正的设备上尝试它时,它没有 论坛建议我使用apple FFT和accelerate框架来实现这一点,但它似乎过于复杂。我真的很感激,如果有人编程的调谐器或类似的可以指向我一个好的方向 谢谢 有一个问题。这表明,如果基波的振幅低于谐波,则自相关在寻找基波方面比FFT更有效。与FFT相比,自相关稍微不那么复杂。加速框架将再次为您提供帮助。

我目前正在使用的应用程序的一部分将用作调谐器。我希望能够使用iPhone显示用户给定信号的峰值频率。我使用了在iPhone模拟器上运行得非常好的。然而,当我在一个真正的设备上尝试它时,它没有

论坛建议我使用apple FFT和accelerate框架来实现这一点,但它似乎过于复杂。我真的很感激,如果有人编程的调谐器或类似的可以指向我一个好的方向

谢谢

有一个问题。这表明,如果基波的振幅低于谐波,则自相关在寻找基波方面比FFT更有效。与FFT相比,自相关稍微不那么复杂。加速框架将再次为您提供帮助。然而,通常情况并非如此

我不知道有什么现成的解决方案可以帮你完成所有的工作。vDSP编程指南中有您可能想了解的内容,需要一些时间才能习惯,但它确实值得。恐怕FFT是提取峰值频率最合理的第一步。大多数来源似乎还表明,在运行FFT之前对时域信号应用窗口功能是至关重要的(或者,由于端点的不连续性,您将获得高频伪影)

您可能还想退房。

这里有一个。这表明,如果基波的振幅低于谐波,则自相关在寻找基波方面比FFT更有效。与FFT相比,自相关稍微不那么复杂。加速框架将再次为您提供帮助。然而,通常情况并非如此

我不知道有什么现成的解决方案可以帮你完成所有的工作。vDSP编程指南中有您可能想了解的内容,需要一些时间才能习惯,但它确实值得。恐怕FFT是提取峰值频率最合理的第一步。大多数来源似乎还表明,在运行FFT之前对时域信号应用窗口功能是至关重要的(或者,由于端点的不连续性,您将获得高频伪影)


您可能还想查看。

峰值频率通常与(音乐)调谐器估计的基音频率不同。查找音高估计。

峰值频率通常与(音乐)调谐器估计的音高频率不同。查找音高估计。

根据以前的经验执行此操作:

  • FFT并不像你想象的那么精确,而且计算成本也很高
  • 自相关给出了很好的结果
  • 如果你有一个强大的基础,过零可以非常准确,并且计算效率非常高(只需计算信号在一段时间内过零的次数,f=(2 x时间段,以秒计)/(过零次数)\

  • 希望这能有所帮助。

    根据以前的经验:

  • FFT并不像你想象的那么精确,而且计算成本也很高
  • 自相关给出了很好的结果
  • 如果你有一个强大的基础,过零可以非常准确,并且计算效率非常高(只需计算信号在一段时间内过零的次数,f=(2 x时间段,以秒计)/(过零次数)\

  • 希望这能有所帮助。

    谢谢所有的答案!我的代码中有一部分遗漏了使SC listener也能在设备上工作,但现在正试图将其更改为Apple自己的AVAudioRecorder,因为它被认为要快得多。问题是cocos2d框架阻止了声音录制,直到您调用一种方法这是允许的。它现在像一个符咒一样工作了!:)
    再次感谢!

    感谢所有的答案!我的代码中遗漏了让SC listener也能在设备上工作的一部分,但现在正试图将其更改为Apple自己的AVAudioRecorder,因为它应该快得多。问题是cocos2d框架阻止了声音录制,直到您调用一种允许我们d这个。它现在像一个符咒一样起作用了!:) 再次感谢

    你说的“峰值频率”是什么意思?我猜你是说音高?你说的“峰值频率”是什么意思?我猜你是说沥青?