我已经为每个时间和频率获得了2D振幅阵列。但是,要绘制频谱图,像素强度应根据幅度水平(例如红色最高绿色最低)。
(我从FFT和sqrt得到幅度(实^ 2 + img ^ 2))
首先我将其转换为对数刻度10 * log10(幅度^ 2) (*我不确定当放大器为0时如何管理,不会出现错误)
然后,我只需找到Mix_amp并将所有元素缩放到0-1之间的值。
问题是。当从无噪声声音生成频谱图时,就像计算机生成的20-20kHz的清晰声音一样,我得到了一个很好的向上直线。然而,对于实际的歌曲,频谱图的特性似乎不够明显,因此当我想在后期阶段应用峰值发现时,它将变得困难。
我是否做了一些不适合这些流程的事情?
答案 0 :(得分:0)
您可能无法在真实歌曲中找到单峰。
即,每个基波的和弦有3个或更多基音+谐波。
多种乐器也可能以不同的强度播放不同的音调。
而不是Max Amp通过窗口内的总功率进行标准化。如果频率包含的功率超过了该功率的x%,那么您就找到了峰值。
如果你有紧密的音调,你需要处理频谱泄漏。使用适当的窗口和/或更大的FFT可能有助于区分。