我正在研究项目,在那里我需要可视化光谱分析来设置一些精确的参数。现在我将箱子转换为屏幕空间,因为在线性空间中,较低频率的幅度被压扁在一起。这是我在c ++中的代码:
R.id.calendar_month
我试图通过使用不同的方法来计算float windowSize = 640;
float windowHeight = 480;
for (size_t i = 0; i < bins; i++)
{
float m = audioIn.getSpectrum.at(i)*windowHeight;
float pos = i;
drawLine(vec2(pos, 0), vec2(pos, m));
}
,但却失败了。我猜想我缺少关于对数的关键知识。
免责声明:这是个人艺术项目,而不是家庭作业。
答案 0 :(得分:2)
通常,光谱仪以10对数刻度显示。
假设您的0 Hz
从nyquist Hz
转到float nyquist = 22050.0;
float logMax = log10(nyquist);
float log = log10((float)i * nyquist / (float)bins);
float pos = log / logMax * windowSize;
,您可能会尝试这样的事情(对于44.1kHz音频):
ga('set', 'userId', <?php echo get_current_user_id(); ?>);