【问题标题】:iPhone: CPU power to do DSP/Fourier transform/frequency domain?iPhone:做 DSP/傅立叶变换/频域的 CPU 能力?
【发布时间】:2010-11-28 08:54:38
【问题描述】:

我想持续分析 MIC 音频(不仅仅是剪辑或预先录制的样本),并显示频率图并过滤掉音频的某些方面。 iPhone 是否足够强大?鉴于谷歌和 iPhone 语音识别、Shazaam 和其他音乐识别应用程序以及吉他调音器应用程序,我怀疑答案是肯定的。但是,我不知道我必须处理哪些限制。

有人在这个区域玩吗?

【问题讨论】:

    标签: iphone audio signal-processing fft


    【解决方案1】:

    我制作了一个实时计算 FFT 的应用

    http://www.itunes.com/apps/oscope

    你可以在 GitHub 上找到我的 FFT 代码(虽然有点粗糙)

    http://github.com/alexbw/iPhoneFFT

    Apple 的新 iPhone OS 4.0 SDK 允许使用“Accelerate”库对 FFT 进行内置计算,因此如果它是您应用功能的核心部分,我肯定会开始使用新操作系统。

    【讨论】:

    • 我想我今天看到你在 CoreAudio 列表中提到了 oscope。恭喜它在应用商店上架!
    • 谢谢!对这些采样率限制感到非常沮丧,但 iPhone 仍然是一个令人难以置信的音频分析平台。
    【解决方案2】:

    “足够快”可能取决于您(或您的客户)对您正在寻找的频率分辨率和基本采样率的期望。

    N 点 FFT 的计算量级为 N*log2(N),因此如果您没有足够的 MIPS,减少 N 是您潜在的让步领域。

    在许多应用中,采样率是不可协商的,但如果是,这将是另一种可能性。

    【讨论】:

    • 采样率必须是我可能正在寻找的最高频率的两倍,对吗?
    • 正确。频域中 bin 之间的间距是 FFT 中点数 (N) 的函数,奈奎斯特频率始终位于顶部(采样率的一半)。
    【解决方案3】:

    您不能只将用 C 编写的 FFT 代码移植到您的应用程序中……拇指编译器选项会使浮点运算复杂化。您需要将其置于手臂模式

    【讨论】:

      【解决方案4】:

      Apple 的示例代码 aurioTouch 有一个 FFT 实现。

      【讨论】:

      • 谢谢。哇。那些开发者听说过 cmets 吗?有人做过他们的 c++ 的 obj-c 移植吗?并不是说它那么重要,但它可能会使它更具可读性。
      • vDSP 和 FFT 现在是 os4 的一部分,并添加了 Accelerate.framework
      【解决方案5】:

      我见过的进行某种音乐/语音识别的应用程序需要互联网连接,因此很可能这些只是对音频进行某种特征计算并通过 http 发送这些特征以在服务器。

      无论如何,十几年前在较小的 CPU 上已经完成了频率图和过滤。 iPhone应该没问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-07-02
        • 2012-11-10
        • 1970-01-01
        • 2011-08-02
        • 1970-01-01
        • 1970-01-01
        • 2011-04-09
        相关资源
        最近更新 更多