使用FFT查找java中整个音频流的频率?

时间:2015-10-03 11:39:20

标签: java audio

基本上我尝试了很多来查找java中以.wav格式录制的音频的频率。我从以前的问题中了解到我需要对录制的音频应用FFT。我搜索了很多,但我无法理解如何应用FFT。我想帮助解决这两个问题......

1.从java文档中我读到... PCM编码接受基于时域的音频数据。它根据数组中的采样率存储音频的压力点(例如,如果sampleRate是44100,那么在编码期间,java中的AudioFormat方法将检查每秒44100个后续压力点)。但是对于应用FFT,我们需要获取音频的这个时间域信息。我尝试使用以下代码来打印该数组......但我不确定这是否是实际的时域信息..pz帮我这个

  targetLine.start();

  data = new byte[targetLine.getBufferSize() /5];
  .
  .
  .     
for(int j=0;j<data.length;j++)
  {
       System.out.print(data[j]+","); 
  }

(&#39;数据&#39;是那个数组)

输出如下:

95,45,-49,51,-127,57,-51,62,119,67,-82,71,98,75,79,78,-54,80,-87,82,-15,83,-6,84,123,85,-104,85,121,85,...

直到达到data.length。

2.如何在这个时域信息上应用FFT ....我检查了许多教程......许多算法但我无法理解。 PLZ建议我学习如何应用FFT的任何网站或教程。

0 个答案:

没有答案