gpt4 book ai didi

vba - VB FFT - 难以理解结果与频率的关系

转载 作者:行者123 更新时间:2023-12-03 07:38:28 24 4
gpt4 key购买 nike

试图理解我正在使用的 fft(快速傅里叶变换)例程(窃取)(回收)

输入是一个包含 512 个数据点的数组,它们是样本波形。测试数据生成到该数组中。 fft 将该数组变换到频域。尝试理解频率、周期、采样率和 fft 数组中位置之间的关系。我将用例子来说明:

==========================================

采样率为 1000 个样本/秒。生成一组 10Hz 的样本。

输入数组的峰值位于 arr(28)、arr(128)、arr(228) ...周期 = 100 个样本点

fft 数组中的峰值位于索引 6 处(不包括 0 处的巨大值)

==========================================

采样率为 8000 个样本/秒生成 440Hz 的样本集

输入数组峰值包括 arr(7)、arr(25)、arr(43)、arr(61) ...周期 = 18 个采样点

fft 数组中的峰值位于索引 29 处(不包括 0 处的巨大值)

==========================================

如何将 fft 数组中峰值的索引与频率联系起来?

最佳答案

如果忽略虚部,则频率分布在各个箱中呈线性:

频率@i =(采样率/2)*(i/Nbins)。

因此,对于第一个示例,假设您有 256 个 bin,最大的 bin 对应的频率为 1000/2 * 6/256 = 11.7 Hz。由于您的输入为 10Hz,我猜测 bin 5 (9.7Hz) 也有一个很大的分量。为了获得更高的准确性,您需要采集更多样本,以获得更小的数据箱。

您的第二个示例给出 8000/2*29/256 = 453Hz。再次强调,关闭,但您需要更多垃圾箱。这里的分辨率仅为 4000/256 = 15.6Hz。

关于vba - VB FFT - 难以理解结果与频率的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/138558/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com