我只需要对创建频率分析仪的一些非常基本的方面进行一些说明。我正在编写一个 c++ 程序,到目前为止它只是一个媒体播放器,带有一个自定义资源管理器。您可以制作播放列表、随机播放、重复播放等。
但我的目标是继续添加功能。到目前为止,我只有一个信号电平表,现在我正在尝试添加一个频率分析仪。
我正在使用fftReal。所以我正处于我有输出的阶段,我正在缩放到 dbfs,我认为这是正确的,但并不完全确定。
for (int i=0; i < fftsize/2; ++i)
db[i]=20*log(sqrt(imaginary[i]*imaginary[i]+real[i]*real[i]));
所以我知道我应该在某处应用一个窗口函数,并且我试图了解如何做到这一点。但我也想知道这一点。如果我想将数据显示为上下弹出的矩形,而不是绘制点并用线连接,并且我想将矩形的数量限制在大约 50 个左右。我是否采用一个范围的平均分贝。
我注意到在许多应用中,频率范围是倾斜的,频率越高,单元之间的距离越小。使用什么样的比例尺,我怎样才能分解光谱以便我有一个很好的视觉效果?
很抱歉,如果这一切之前都讨论过,我已经在谷歌上搜索了一段时间,总的来说我被信息淹没了,但我需要先了解一些关键的事情。
谢谢