首页 > 解决方案 > 用openGL绘制频谱图的最佳方法是什么

问题描述

我编写了一个代码来计算正弦和余弦信号的频谱图,应用 Hann 窗口,计算 FFT,计算频率系数的对数幅度。

我通过在openGL中编写一个简单的函数来绘制幅度频谱来测试它是否可以正常工作,我得到了以下结果:

在此处输入图像描述

如您所见,有 2 个条形表示正弦 * cos 波。

我拥有绘制频谱图所需的所有信息(频率、幅度、时间)现在我的问题是如何绘制它?我的第一个想法是绘制点,所以我将使用时间数组作为间隔时间,我需要在 X 轴上绘制点,频率数组到在 Y 轴上绘制它们的位置,幅度将是颜色的点。

也许这是一个低效的想法,因为我看到在 openGL 中绘制点确实效率低下,所以我不知道什么是更好的想法,我在网上找不到任何“简单”的 openGL 频谱图示例。

标签: c++openglspectrogram

解决方案


@HolyBlackCat 评论就是答案

“制作一组颜色,填充一次,然后将其作为纹理提供给 GL”


推荐阅读