使用 vDSP 的 iPhone4s、iPhone 5 每秒最大 FFT 数

Posted

技术标签:

【中文标题】使用 vDSP 的 iPhone4s、iPhone 5 每秒最大 FFT 数【英文标题】:iPhone4s, iPhone 5 max FFTs per second using vDSP 【发布时间】:2012-11-12 08:34:47 【问题描述】:

我和我的团队正计划为 ios 构建一个外部配件,用于采样 256KHZ 的超声波。这很多,我想知道 iOS vDSP 是否可以以 256,000 个样本/秒的速度进行从时域到频域的转换,或者我们需要为 FFT 提供基于硬件的解决方案。

来自 Apple 的示例项目(例如 aurioTouch)非常有用,但我找不到比专业音频采样频率更多的采样率。我需要帮助确定以下内容:

    vDSP FFT 能否处理 256,000 个样本/秒?如果没有,除了在硬件中进行转换之外,还有其他创造性的方法可以做到这一点吗?

我发现与此相关的最接近的讨论是

How many FFTs per second can I do on my smartphone? (for performing voice recognition)

【问题讨论】:

您需要指定 os 的 FFT 大小。 FFT 为 O(n log n),因此 n 可以对整体吞吐量产生显着影响。此外,您应该指定是否计划重叠 FFT。 感谢您的回复。目前,我们不确定 n 的最佳值是多少。 n 将是 256 帧。是的,计划是重叠 FFT。 几千个 256 元素的 FFT 是相当微不足道的计算量。现代智能手机是真正的计算机,可以轻松处理。 【参考方案1】:

256 kHz 数据速率比普通 44100 音频快不到 6 倍。并且使用 vDSP/Accelerate 框架的实时音频数据的浮点 FFT 仅在最近的 iOS 设备上使用 1 个 CPU 的 1% 或更少。

【讨论】:

【参考方案2】:

FFT 计算时间将是可用时间的一小部分。

资料来源:我编写了 vDSP FFT。

【讨论】:

【参考方案3】:

为什么不看看设备如何处理上采样信号,从 aurioTouch 开始。

如果您需要更快,您应该测量基于整数的 FFT 实现的速度。

【讨论】:

我们从未考虑过基于整数的 FFT。感谢您的建议,将考虑它。 由于 NEON 指令,最近的 iOS 设备可以像缩放整数一样快或更快地执行浮点 FFT。

以上是关于使用 vDSP 的 iPhone4s、iPhone 5 每秒最大 FFT 数的主要内容,如果未能解决你的问题,请参考以下文章

如何检测iphone4s [重复]

选择器视图约束 iphone4/iphone5

我在iPhone4S上的SSH中的VIM编辑器不显示语法高亮。。

卷积函数 vDSP_imgfir 返回 0 值

Xcode 5 开发代码可以在 iPhone 4s 上运行

iphone 4s如何更改当前位置?