【问题标题】:How to analyse the FFT output (Array [512])?如何分析 FFT 输出(阵列 [512])?
【发布时间】:2017-04-06 19:27:59
【问题描述】:

FFT 输出的值是什么意思?

我正在使用 AudioKit 的 FFT 算法(为 Swift 编写的框架),当我 fft AudioNode(麦克风声音)时,它给了我一个包含 fft 数据的变量。它是 512 个位置(0 到 511)的变量。

当我这样做时,它给了我非常小的结果,比如 0.00004231 甚至 2.41233e-7,有时是 2.41233e-12。这些值是什么意思?

我的想法:

    index 0: 0 - x Hz
          1: x - 2x Hz
          2: 2x- 3x Hz
          ::
          ::
          and so on...

    Each array has the Amplitude value of that position.

我说的对吗?如果不是,请解释一下。这对我有很大帮助。

【问题讨论】:

  • 从理论上讲,我知道 FFT 的作用,但我不知道如何读取输出数据。

标签: ios swift audio signal-processing fft


【解决方案1】:

傅立叶变换将信号从时域映射到频域。因此,每个 FFT 样本都会测量原始信号中给定的频率强度。

例如,fft[2] 表示原始信号中 2 赫兹的频率有多强。请记住,AudioKit 返回的fft 数组中可能存在一些缩放,因此请检查这 512 个样本所涵盖的实际频率范围。

【讨论】:

  • 好吧,数组的每个索引显示什么?幅度?就像我在问题中所说的那样,我的想法有效吗?
  • @DenisCandido 是的,总的来说,您也走在了正确的轨道上!
  • @DenisCandido ...但请记住,FFT 信号范围(例如 fft[2])与原始信号的单位不同。
  • 感谢您的回答。我将尝试使用大量此类数据训练神经网络。你认为它会得到好的结果吗?
  • @DenisCandido 这真的取决于神经网络的设计。但是,如果您打算检测给定的信号主频率,那么 FFT 是可靠/快速的选择!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-27
  • 2016-01-16
相关资源
最近更新 更多