我已经编写了 2048 个信号样本的 fft,结果是 C 中的 1025 个频率值。(丢弃其他 1025 个样本(即>n/2 samples
))。
现在我必须从这些频率值中取出 32 个均匀间隔的对数箱,这些频率值也在 318 到 2000hz 之间。
任何援助将不胜感激。
我已经编写了 2048 个信号样本的 fft,结果是 C 中的 1025 个频率值。(丢弃其他 1025 个样本(即>n/2 samples
))。
现在我必须从这些频率值中取出 32 个均匀间隔的对数箱,这些频率值也在 318 到 2000hz 之间。
任何援助将不胜感激。
这个问题告诉你如何计算出你的 FFT 的每个结果代表什么频率。然后,找出哪些频率进入哪个 bin。然后,在每个 bin 中,组合该 bin 中频率的 FFT 结果。(人们通常对频率表示的能量感兴趣,如该频率的 FFT 结果的幅度所表示的那样。如果是这样,则计算 bin 中每个结果的幅度并将这些幅度相加以获得 bin 的总数.)
如果您有 n 个对数间隔的 bin,其中第一个 bin 以频率 A 开始,最后一个 bin 以频率 B 结束,则 bin i(编号从 0 到 n-1)以频率 exp((ln(B)-ln(A ))*在一个。那个公式:
所以这个公式为你提供了每个 bin 的起点和终点,你可以用它来划分你的 bin。如果你想以 2000 Hz 开始最后一个 bin 而不是以 2000 Hz 结束,或者你想将开始和结束 bin 集中在 318 Hz 和 2000 Hz 左右而不是完全在这些频率上终止它们,你将不得不调整公式.