Calculate Decibel from amplitude - Android media recorder
Asked Answered
K

2

5

How to calculate decibel from maxAmplitude, I wrote an android application to get maxAmplitude at regular interval, I need to show the o/p to the user in decibels.

Kylstra answered 4/7, 2011 at 13:3 Comment(0)
H
12

Decibels are a relative unit, they express the power of your signal relative to some reference power.

If you are working with amplitudes, then the formula is:

power_db = 20 * log10(amp / amp_ref);

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

Note also that maximum amplitude is not usually a very good indicator of loudness (or even of power). More typically, you should measure the RMS power of your signal, and convert that to dB instead.

Harquebusier answered 4/7, 2011 at 13:6 Comment(6)
what's amp_ref in this formula?Omnifarious
@Sharj: Your reference amplitude. Decibels are a relative unit, not absolute. They express a ratio relative to some reference level. It's up to you to choose a reference level.Harquebusier
If the units are amplitudes the multiplier is 20. If the units are power the multiplier is 10.Lantern
@Sharj: One example of reference level is the peak signal amplitude of 0.447V used in consumer electronics, see en.wikipedia.org/wiki/Line_level. Therefore, -6dB decrease is equivalent to a decrease by 2 in the signal amplitude.Sock
@Alexander:i m trying to generate tone in decibels by giving mobile MediaPlayer volume or amplitude, is it possible?Jabe
here I am calculating db=(int) (20 * Math.log(((double) maxAmplitude) / 32767d))Alpha
W
7

Regular phone microphones aren't calibrated to measure absolute loudness, so it's not possible without also having a sound meter to initially calibrate the phone. As Oli mentions, you may be able to calculate a relative change in loudness, but I expect you want to replicate a real sound level meter.

Walkup answered 4/7, 2011 at 13:8 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.