iPhone:CPU的处理能力是否足以进行DSP / Fourier变换 / 频域处理?

8
我希望能够实时分析MIC音频(不仅仅是片段或预先录制的样本),并显示频率图并过滤掉音频的某些方面。iPhone是否足够强大?考虑到Google和iPhone语音识别、Shazaam和其他音乐识别应用程序以及吉他调音器应用程序的存在,我认为答案是肯定的。但是,我不知道我将要处理哪些限制。有人在这个领域玩过吗?
5个回答

3

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

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


3

苹果的示例代码aurioTouch中有FFT实现。


1
哇,这些开发者听说过注释吗?有人将他们的C++移植到Objective-C了吗?虽然这并不是很重要,但可能会使代码更易读。谢谢。 - mahboudz
vDSP和FFT现在成为OS4的一部分,加入了Accelerate.framework。 - slf

2
“足够快”可能与您(或客户)期望的频率分辨率大小以及基本采样率有关。 N点FFT的计算量约为N*log2(N),因此如果您没有足够的MIPS,减少N是一个可能的让步领域。 在许多应用程序中,采样率是不可协商的,但如果可以协商,那么这将是另一个可能性。

采样率必须是我可能寻找的最高频率的两倍,对吗? - mahboudz
1
正确。在频率域中,箱之间的间距取决于FFT中点数(N)的数量,奈奎斯特频率始终位于顶部(采样率的一半)。 - Overdrive

1
我制作了一个可以实时计算FFT的应用程序。

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

你可以在GitHub上找到我的FFT代码(尽管它有点粗糙)

http://github.com/alexbw/iPhoneFFT

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


我想我今天在CoreAudio列表上看到你提到oscope。祝贺你成功将其发布到应用商店! - mahboudz
谢谢!关于采样率限制的问题确实令人失望,但 iPhone 仍然是一个非常出色的音频分析平台。 - alexbw

0

你不能只是将用C编写的FFT代码移植到你的应用程序中...这里有一个使浮点运算复杂化的thumb编译器选项。你需要将其放入arm模式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接