【问题标题】:RMS in Frequency Domain频域中的 RMS
【发布时间】:2014-07-29 19:55:40
【问题描述】:

我正在尝试使用 C++ 创建光谱分析器插件;在 FFT 之后,我想以某种方式使用 RMS 对每个 bin 进行平均。原因是因为我希望频率图以较慢的速度显示以便更好地查看。我怎样才能做到这一点?更具体地说,我有一个 FFT,样本大小为 4096,采样频率为 44,100 HZ。我每 40 毫秒更新一次显示。每个 FFT 帧都以人眼快速显示。我怎样才能通过某种类型的平均来解决这个问题?

谢谢,

以赛亚·汤普森

【问题讨论】:

  • 对我来说听起来更像是过滤掉高频成分。也许你真的想要一个去除它们的低通滤波器。
  • 达菲莫,感谢您的回复。更具体地说,我有一个 FFT,样本大小为 4096,采样频率为 44,100 HZ。我每 40 毫秒更新一次显示。每个 FFT 帧都以人眼快速显示。我怎样才能通过某种类型的平均来解决这个问题?
  • 您可以使用 bin_value = (old_bin_value * 0.8) + new_bin_value 之类的方法获得衰减平均效果。
  • 谢谢两位。两个答案都在正确的轨道上。

标签: c++ fft rms


【解决方案1】:

您每 40 毫秒的显示更新当然是没有意义的。您每秒有 44.100 个样本,每个 FFT 有 4096 个样本,因此每秒大约有 11 个 FFT。那是每 90 毫秒,而不是 40 毫秒。

此外,显示它的常用方法是使用频谱图。不要使用 4096 bin FFT,无论如何这都是多余的。相反,使用 1024 点 FFT。您现在将获得每秒 44 个 FFT。对每个 bin 进行颜色编码,并将每个 FFT 绘制在垂直线上。横轴是时间轴。您现在可以在单个屏幕上显示半分钟的 FFT,它会以 44 像素/秒的速度水平滚动。这对于眼睛跟踪来说足够慢。

【讨论】:

  • 非常感谢您的回复。刷新率太快是对的,但我相信我确实需要 4096 FFT。我正在复制此处显示的频谱分析仪:www.waves.com/plugins/h-eq-hybrid-equalizer。感谢您的宝贵时间。
  • @IsaiahThompson:7 频段均衡器?!您可以使用 256 点 FFT 来做到这一点。
  • 如果你看一下图表,频率从 10 HZ 开始。使用 256 点 FFT,bin 将增加约 86 HZ,这是一个巨大的跳跃。
  • 如果您将 9Hz 分量放大 3dB,您不会注意到! (最低的 bin 开始于 0 hz,DC)
  • 感谢您的客气话。前十行以十赫兹递增。接下来的 10 行以 100 HZ 递增,中间有多个点,然后以 1,000 Hz 等递增。您对此建议的 FFT 大小是多少?
猜你喜欢
  • 1970-01-01
  • 2014-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多