如何分析 FFT 输出(数组[512])?

5

FFT输出的值代表什么意思?

我正在使用AudioKit的FFT算法(用于Swift编写的框架),当我对AudioNode(麦克风声音)进行fft时,它会给我一个包含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是做什么的,但我不知道如何读取输出数据。 - denisb411
1个回答

5
傅里叶变换将信号从时域映射到频域。因此,每个FFT样本测量原始信号中给定频率的强度。
例如,fft [2] 表示原始信号中 2 Hz 频率的强度。请注意,AudioKit 返回的 fft 数组可能存在一些缩放,请检查这 512 个样本所覆盖的实际频率范围。

每个数组的索引显示了什么?振幅吗?就像我在问题中所说的那样,我的想法是有效的吗? - denisb411
@DenisCandido 是的,一般来说,你也是正确的轨道上! - Paulo Mattos
@DenisCandido... 但请记住,FFT信号范围(例如fft [2])与原始信号的单位不同。 - Paulo Mattos
谢谢你的回答。我会尝试用大量的数据来训练神经网络。你认为它会得到好的结果吗? - denisb411
1
@DenisCandido 这真的取决于神经网络的设计。但是,如果您计划检测给定信号的主要频率,则FFT是一个可靠/快速的选择! - Paulo Mattos
我看到一个回答说它在每个索引上以40Hz的速度运行 (即[040,4080,...]),但我丢失了这个问题并创建了这个来确认我的想法。很高兴听到这是一个不错的选择,因为我放弃了使用频率分析(使用逻辑)来检测和弦。这与语音识别一样复杂。 - denisb411

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接