3

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

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

任何援助将不胜感激。

4

1 回答 1

1

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

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

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

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

于 2012-08-07T18:44:17.447 回答