FFT吉他调谐器应用 - 不正确frequncy [英] FFT guitar tuner application - incorrect frequncy

查看:296
本文介绍了FFT吉他调谐器应用 - 不正确frequncy的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在一个吉他调谐器的应用程序。据我所知,FFT是这种应用的一个不错的选择。然而,随着最后期限得到日益密切,和我原来的规格提交指定使用这种算法。所以很遗憾,我坚持了下来。

I have been working on a guitar tuner application. I understand that the FFT is a bad choice for this kind of application. However, as deadlines get ever closer, and my original specification submission specified use of this algorithm. So unfortunately I am stuck with it.

由于答案previous问题,并利用这个博客的:的http://blog.bjornroche.com/2012/07/frequency-detection-using-fft-aka-pitch.html

Thanks to answers to previous questions and use of this blog: http://blog.bjornroche.com/2012/07/frequency-detection-using-fft-aka-pitch.html

我有一个应用程序,采用音频,计算出的频率和图形与比较结果已知的音符范围在5个八度。

I have an application that takes in audio, calculates the frequency and both graphs and compares the result to known note ranges at 5 octaves.

的最后一个问题是,仍计算的频率从读取的频率变化而变化。我已经使用提供的频率发生器线上一个我发现,这将得到的注释,上述的频率或波纹管的给定的一个。

The final issue is that the frequency calculated still varies from the frequency read in. I have used a frequency generator provided online an I have found that It will get the frequency of a note above or bellow the given one.

例如一个C读取将得到B关于尖锐或升C在不同的八度。手机从噪声源的距离也影响读数。

for example a C read in will get B sharp or C sharp at different octaves. Distance of the phone from the noise source also effects the readings.

有没有发生这种情况和修复已知的例子,还是因为FFT算法,而我的应用程序不能正常工作?

Is there a known example of this occurring and fixes, or is it because of the FFT algorithm, and my application can't work correctly?

我的code可以在previous找到:
<一href=\"http://stackoverflow.com/questions/16652999/displaying-a-double-frequency-that-is-updated-constantly-while-recording-with/16662775?noredirect=1#16662775\">Displaying与Android

My code can be found at a previous: Displaying a double (frequency) that is updated constantly while recording with Android

一个低通滤波器已被添加到去除背景环境噪声,和一个环形缓冲器已被添加到获得给定的数个频率的平均值。

A low pass filter has been added to remove background environmental noise, and a ring buffer has been added to get the average of several frequencies given.

推荐答案

如果你的频率是关闭的一点,这可能意味着你要么需要使用更长的FFT或峰估计算法(如抛物线或其他插值对FFT结果的内核)。

If your frequency is off by a little, it might mean you either need to use a longer FFT or a peak estimation algorithm (such as a parabolic or other interpolation kernel) on the FFT result.

如果您的FFT频率的结果跳八度,这可能意味着你需要缩小你的允许的频率估计范围或如倒谱/倒谱估计使用间距估计算法的低通滤波器的带宽,自相/滞后估计,或谐波产品型谱,et.al。

If your FFT frequency result jumps octaves, it may mean you need to narrow your allowable frequency estimate range or your low pass filter bandwidth using a pitch estimation algorithm, such as a cepstrum/cepstral estimator, autocorrelation/lag estimator, or harmonic product spectrum, et.al.

同时还要注意缺陷,如使用了错误的采样率或错误的数据格式等。

Also watch out for bugs such as using the wrong sample rate or the wrong data formats, etc.

这篇关于FFT吉他调谐器应用 - 不正确frequncy的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆