gpt4 book ai didi

c# - 使用C#从16位音频样本值计算dBFS值时,输出不精确

转载 作者:行者123 更新时间:2023-12-03 00:08:36 26 4
gpt4 key购买 nike

我正在使用C#从16位波形文件样本(-32768至+32767)计算dBFS值,如下所示:

int sampleValue = -32700;

double dBFSvalue = 20 * Math.Log10(Math.Abs(sampleValue) / 32768);

但是,当我尝试打印dBFS值时,32768的sampleValue结果应为“0”,而sampleValue的任何其他值均导致“-infinity”。
MessageBox.Show($"Result: {dBFSvalue}dBFS");

这与Double类型的显示有关吗?
如何转换数字以“-60.5 dBFS”的形式正确显示?

谢谢。

最佳答案

将第二行代码替换为

double dBFSvalue = 20 * Math.Log10(Math.Abs(sampleValue) / 32768.0);

您需要 .0才能将其计算为浮点数。否则,它将被计算为整数,并且括号中的项将被评估为0。

关于c# - 使用C#从16位音频样本值计算dBFS值时,输出不精确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38368210/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com