我正在尝试使用C++创建一个频谱分析仪插件;在快速傅立叶变换之后,我想以某种方式使用均方根对每个面元进行平均。原因是因为我希望频率图以较慢的速度显示,以便更好地查看。我如何才能做到这一点?更具体地说,我有一个采样大小为4096,采样频率为44,100 HZ的FFT。我每隔40毫秒更新一次显示。对于人眼来说,每个FFT帧都显示得很快。我如何通过某种类型的平均来平滑这一点?
谢谢,
以赛亚·汤普森
发布于 2014-07-30 15:16:42
你的显示器每40毫秒更新一次当然是没有意义的。每秒有44.100个样本,每个FFT有4096个样本,所以大约是每秒11个FFT。这是每90ms一个,而不是40ms。
此外,通常的显示方式是以频谱图的形式显示。不要使用4096 bin FFT,这无论如何都是大材小用。取而代之的是使用1024点的FFT。你现在可以得到每秒44次的FFT。对每个bin进行颜色编码,并将每个FFT绘制在一条垂直线上。水平轴是时间轴。你现在可以在一个屏幕上显示半分钟的FFT,它将以44像素/秒的速度水平滚动。这足够慢了,眼睛可以追踪到。
https://stackoverflow.com/questions/25023827
复制相似问题