【问题标题】:Calculate Decibel from amplitude - Android media recorder从振幅计算分贝 - Android 媒体记录器
【发布时间】:2015-06-02 20:57:33
【问题描述】:

如何从 maxAmplitude 计算分贝,我编写了一个 android 应用程序以定期获取 maxAmplitude,我需要以分贝向用户显示 o/p。

【问题讨论】:

    标签: android audio decibel


    【解决方案1】:

    分贝是一个相对单位,它们表示您的信号相对于某个参考功率的功率。

    如果您使用的是振幅,那么公式是:

    power_db = 20 * log10(amp / amp_ref);
    

    (见http://en.wikipedia.org/wiki/Decibel#Field_quantities)。

    还要注意,最大幅度通常不是响度(甚至功率)的一个很好的指标。更典型的是,您应该测量信号的RMS power,并将其转换为 dB。

    【讨论】:

    • 这个公式中的 amp_ref 是什么?
    • @Sharj:您的参考幅度。分贝是一个相对单位,不是绝对的。它们表示相对于某个参考水平的比率。您可以选择参考水平。
    • 如果单位是幅度,则乘数是 20。如果单位是功率,则乘数是 10。
    • @Sharj:参考电平的一个示例是消费电子产品中使用的 0.447V 峰值信号幅度,请参阅en.wikipedia.org/wiki/Line_level。因此,-6dB 降低相当于信号幅度降低 2。
    • @Alexander:我正在尝试通过给移动 MediaPlayer 音量或振幅来生成以分贝为单位的音调,这可能吗?
    【解决方案2】:

    普通手机麦克风未经过校准以测量绝对响度,因此如果没有声音计来初始校准手机,则无法进行校准。正如 Oli 提到的,您也许可以计算响度的相对变化,但我希望您想要复制一个真实的声级计。

    【讨论】:

      猜你喜欢
      • 2015-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多