【问题标题】:Trying to use FFT to get exact frequencies with Android AudioRecord尝试使用 FFT 通过 Android AudioRecord 获得准确的频率
【发布时间】:2014-02-09 23:05:44
【问题描述】:

我知道我绝对不是第一个询问使用 FFT 来查找 Android 的 AudioRecord 频率的人,但是在阅读了大量论坛之后,我仍然不太了解它。

我最终使用了 ComplexDoubleFFT 类,它是 Herschel Common Science System 的一部分以及类似于 here 的代码。

AudioRecord recorder = new AudioRecord(MediaRecorder.AudioSource.MIC, rate, channelConfig, audioFormat, bufferSize);

...

double[] micBufferData = new double[audioData.length];
      int x=0;
      for(short data : audioData)
      {
          micBufferData[x] = data;
          x++;
      }


      FFT newFFT = new FFT(bufferSize/2);
      newFFT.ft(micBufferData);

接下来要做的事情基本上与我在上面提到的线程中完成的事情相同,因为它对他们有用。但是,他们有一个名为 toTransform 的数组,我不确定他们从哪里得到它。我假设这是他们的 FFT 值列表,但我不知道如何获得这些值!我已经浏览了 ComplexDoubleFFT 的类文件,它甚至没有任何地方返回它的输出。希望我措辞所有这些的方式不会令人困惑。非常感谢任何帮助!

【问题讨论】:

  • 您可能需要显示代码或说明此 toTransform 数组的用途。
  • @hotpaw2 我已经想通了,但如果你想让我详细说明我做了什么,我可以这样做。

标签: android fft audio-recording


【解决方案1】:

我想通了。 ComplexDoubleFFT 类中的函数 ft 动态更改您传递给它的数组。如果其他人在这方面需要帮助(或者只是帮助在 Android 中使用 FFT),请在此处留言,我会详细说明。

【讨论】:

  • 您能详细说明一下吗?我正在尝试做同样的事情
  • 您到底需要什么帮助?一般的 FFT,与 Android 一起使用,或者特别是与我上面提到的相同库一起使用?
猜你喜欢
  • 1970-01-01
  • 2011-08-12
  • 1970-01-01
  • 2012-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-11
相关资源
最近更新 更多