2

我需要一种从麦克风获取频率并确定平均频率的方法。有图书馆或其他东西来处理这个吗?

谢谢

4

3 回答 3

3

如果您的目标是 iOS 4 及更高版本,Apple 现在包含 Accelerate 框架。来自 Apple 的“最新消息”页面:

http://developer.apple.com/technologies/iphone/whats-new.html#api

加速

Accelerate 提供数百个针对 iPhone 和 iPod touch 优化的数学函数,包括信号处理例程、快速傅里叶变换、基本向量和矩阵运算,以及用于分解矩阵和求解线性方程组的行业标准函数。

于 2010-07-08T14:20:19.683 回答
0

你会想要使用 FFT,所以我建议你看看这个问答:

你知道一个好的和高效的 FFT 吗?

于 2010-07-08T14:10:09.430 回答
0

您可以使用EZAudio类来获取频率 在此处下载演示 并使用此方法获取频率

- (void) fft:(EZAudioFFT *)fft updatedWithFFTData:(float *)fftData bufferSize:(vDSP_Length)bufferSize
 {
     float maxFrequency = [fft maxFrequency];

       NSString *noteName = [EZAudioUtilities noteNameStringForFrequency:maxFrequency
                                                                includeOctave:YES];
            dispatch_async(dispatch_get_main_queue(), ^{
                [audioPlotFreq updateBuffer:fftData withBufferSize:(UInt32)bufferSize];
            NSLog(@"Frequncy : %f Highest Note : %@",maxFrequency,noteName);
      });
 } 
于 2015-07-24T09:07:46.830 回答