gpt4 book ai didi

c - 取出均匀间隔的对数箱

转载 作者:太空宇宙 更新时间:2023-11-03 23:54:17 25 4
gpt4 key购买 nike

我写了 2048 个信号样本的 fft,结果是 C 中的 1025 个频率值。(丢弃其他 1025 个样本(即 >n/2 个样本))。

现在我必须从这些也在 318 到 2000hz 之间的频率值中取出 32 个均匀间隔的对数 bin。

如有任何帮助,我们将不胜感激。

最佳答案

This question告诉您如何计算出 FFT 的每个结果代表的频率。然后,找出哪些频率进入哪个区间。然后,在每个 bin 中,合并该 bin 中频率的 FFT 结果。 (通常人们对频率表示的能量感兴趣,如该频率的 FFT 结果的幅度表示。如果是这样,则计算 bin 中每个结果的幅度并将这些幅度相加以获得 bin 的总数.)

如果您有 n 个 bin 以对数方式间隔,其中第一个 bin 以频率 A 开始,最后一个 bin 以频率 B 结束,则 bin i(编号从 0 到 n-1)以频率 exp((ln(B)- ln(A))*i/n)*A。该公式:

  • 对 B 和 A 取对数。
  • 取对数之间的距离 (ln(B)-ln(A))。
  • 将该距离划分为间隔(乘以 i/n 为第 ith 个间隔)。
  • 将该距离从对数转换为频率(应用 exp)。
  • 乘以 A 以设置起点(撤消 ln(A) 的减法)。

所以这个公式为您提供了每个箱子的起点和终点,您可以使用它来划分您的箱子。如果您想以 2000 Hz 开始最后一个 bin 而不是以 2000 Hz 结束它,或者您想要将开始和结束 bin 集中在 318 Hz 和 2000 Hz 左右而不是完全在这些频率上终止它们,您将必须调整公式.

关于c - 取出均匀间隔的对数箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11849900/

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