【问题标题】:How to convert decibel values into positive values? [closed]如何将分贝值转换为正值? [关闭]
【发布时间】:2011-06-29 06:24:22
【问题描述】:

我得到的分贝值是负数。我只想将这些值绘制在从 0 到 100 的图表上。那么有没有办法将分贝值转换为正值?

【问题讨论】:

  • 您可以从我的回答中删除接受吗?

标签: iphone objective-c ios math signal-processing


【解决方案1】:

0 dB 对应于满量程输入是很常见的(请记住,普通的 dB 比例实际上定义了一个 比率,而不是绝对值,因此 0 dB 的含义有些随意)。例如16 位音频,值通常范围从 0 dB-96 dB。要在 0 - 100 的范围内表示这一点,您只需添加 96 dB 即可将此范围扩大到 0..+96 dB

【讨论】:

    【解决方案2】:

    这不是特定于分贝的解决方案,但如果您希望您的比例在 0-100 之间,请取最小值(我们称之为 minVal),并添加 -minVal 以得到 0。然后除以它乘以你的最大值,然后乘以 100。

    【讨论】:

    • 进行除法时,确保最大值是添加-minval后得到的值。
    【解决方案3】:

    只需使用 fabs() C++ 方法

    晶圆厂功能 双晶圆厂(双 x); 浮动晶圆厂(浮动 x);长双晶圆厂(长双 x); 计算绝对值

    返回 x 的绝对值 ( /x/ )。

    在 C++ 中,abs 也是在 this 中声明的 具有相同行为的标头。

    参数 x 浮点值。

    返回值 x 的绝对值。

    可移植性 在 C 中,只有双 此函数的版本存在于 这个名字。

    fabs reference

    【讨论】:

    • 这将使值变为正值,但相对于图表上的其他点,它不会处于正确的位置。
    • "那么有没有办法将分贝值转换为正值?"这就是问题所在,而我的答案正是他想要的。
    • -1:它并没有真正回答这个问题,因为使用abs反转结果图(或者更糟,如果同时存在正和负 dB 值),这几乎可以肯定 不是 OP 想要的。
    • @Terente:从 OP 需要将其值转换和/或缩放到所需范围的问题中应该是相当明显的。建议他使用abs() 没有帮助。
    • 嘿,他给了我想要的正确答案。而且我还做了一些修改以获得适当的正分贝值。
    猜你喜欢
    • 2014-08-05
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多