如果我记得分贝范围是位深度* 6。
我播放他的位深度 = 16(使用 NAudio lib)的 wav 文件,我得到 fft 结果,然后我计算每个 fft 结果的分贝。20 * Math.log10(fftData[i]) 我得到了奇怪的结果(-109 ...)它怎么可能超过-96(对于16位)?
(我使用.net 4)
谢谢!
时域中幅度的动态范围的限制不会延续到频域中分量的幅度。方波可以用分辨率仅为 1 位的音频信号来表示,没有任何动态范围。但在频域中,它是由 sin(x) + 1/3 sin(3x) + 1/5 sin(5x) 定义的……分数系数说明了这一点。高次谐波是一个无限级数,系数越来越小,动态范围没有限制。
此外,为了回应您的跟进:是的,出于显示和可视化的目的,您应该选择一些限制,例如 -120 dB 并忽略以下内容。我认为忽略 -120 dB 以下内容的理由是人类听觉的动态范围约为 120 dB。您可能还会考虑 -96 dB 量化噪声以下的内容,但我不确定。
dB 是比率的量度,而不是绝对幅度。您的 -109 dB 数字是相对于某个任意 0 dB 参考点的比率,在您的情况下,该参考点可能对应于满量程,也可能不对应。
同样重要的是要注意,正如马特 M 已经提到的那样,仅一个频率仓中的能量可能比对应于 1 位信号的能量小很多,因为它代表了相对较小带宽(单位为V / sqrt(Hz)
)中的能量。