iPhone SDK通过iphone麦克风测量频率

时间:2010-07-08 14:01:57

标签: iphone sdk frequency measure

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

由于

3 个答案:

答案 0 :(得分:3)

如果您的目标是iOS 4及更高版本,Apple现在包含Accelerate框架。来自Apple的“What's new”页面:

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

  

<强>加速

     

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

答案 1 :(得分:0)

你会想要使用FFT,所以我建议你看看这个Q&amp; A:

Do you know a good and efficient FFT?

答案 2 :(得分:0)

您可以使用EZAudio类来获取频率 Download the Demo Here 并使用此方法获取频率

- (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);
      });
 }