频率/音调检测假人 [英] frequency / pitch detection for dummies
问题描述
虽然我在这个网站处理基音检测的概念......他们都处理许多问题,这片神奇的 FFT 的与我不熟悉。我试图构建需要实现基音检测Android应用程序。我完全不理解的是用来做这个算法。
While I have many questions on this site dealing with the concept of pitch detection... They all deal with this magical FFT with which I am not familiar. I am trying to build an Android application that needs to implement pitch detection. I have absolutely no understanding for the algorithms that are used to do this.
这不可能的是的硬盘可以吗?共有约8十亿毕竟吉他调谐器的应用程序在Android Market上。
It can't be that hard can it? There are around 8 billion guitar tuner apps on the android market after all.
有人能帮助?
推荐答案
一个快速傅立叶变换改变从时域到频域的功能。因此,而不是F(T),其中 F
是您从麦克风获取的信号和<$ C $的 C> T
是信号的时间指数,你会得到 G(θ)
,其中先按g
是的FFT˚F
和θ
是频率。一旦你拥有了 G(θ)
,你只需要找到该θ
的最高幅度,意为最响 频率。这将是您领了声音的主要间距。
A Fast Fourier Transform changes a function from time domain to frequency domain. So instead of f(t)
where f
is the signal that you are getting from the microphone and t
is the time index of that signal, you get g(θ)
where g
is the FFT of f
and θ
is the frequency. Once you have g(θ)
, you just need to find which θ
with the highest amplitude, meaning the "loudest" frequency. That will be the primary pitch of the sound that you are picking up.
至于实际执行的FFT,如果谷歌快速傅里叶变换样本code,你会得到一大堆的例子。
As for actually implementing the FFT, if you google "fast fourier transform sample code", you'll get a bunch of examples.
这篇关于频率/音调检测假人的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!