频域RMS

时间:2014-07-29 19:55:40

标签: c++ fft rms

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

谢谢,

Isaiah Thompson

1 个答案:

答案 0 :(得分:0)

您的显示器每40毫秒更新一次是毫无意义的。您每秒有44.100个样本,每个FFT有4096个样本,因此每秒大约有11个FFT。这是每90毫秒一次,而不是40毫秒。

此外,显示此信息的常用方法是作为频谱图。不要使用4096 bin FFT,这无论如何都是过度杀伤。而是使用1024点FFT。您现在每秒可获得44次FFT。对每个箱进行颜色编码,并在垂直线上绘制每个FFT。横轴是时间轴。您现在可以在一个屏幕上显示半分钟的FFT,它将以44像素/秒的速度水平滚动。这足以让眼睛跟踪。

相关问题