我目前正在为我的第二年开展一个项目。我应该用java编码一个调谐器。我选择了做吉他调音器。查找光谱图的峰值
在互联网上浏览后,我发现了一个Java代码来做FFT。我改变了一下,理解它并进行了测试。我知道它工作正常(我做了一个图形,并使用简单的正弦函数来查看不同的峰值)。
我现在试图找到基本频率。据我所知,这个频率是由第一个高峰给出的。
因此,我想创建一个方法,例如找到我的FFT的前5个峰值,并将其与他们的索引给我。
我首先做了一个简单的方法,在这里我比较了每个点的两个和两个光谱图,当符号发生变化时,我知道这里有一个峰值。这种方法在理想信号下工作良好(没有任何噪音)。然而,如果我增加噪音,它就变得毫无用处。我真的很糟糕的Java(我实际上开始这个项目,基本上我上面描述的简单功能是我的主要作品....只是让你了解我的水平)。
任何人都可以帮助我吗?我真的很感激! :) 在此先感谢!
祝您有美好的一天!
fireangel
音高不是FFT峰值频率。音调频率可能不是第一个峰值或任何峰值。特别是对于从吉他的低弦录制的声音。 – hotpaw2
可能的重复:http://stackoverflow.com/questions/8699360/audio-analysis-frequency-vs-pitch – hotpaw2
谢谢你hotpaw2为你回答。我也提出了球场的概念。根据我的理解,音高与频率有关,所以我认为找到频率可以让我知道音调。 – fireangel3000