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.
Asked
Active
Viewed 3.1k times
2 Answers
11
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.

Oliver Charlesworth
- 267,707
- 33
- 569
- 680
-
3what's amp_ref in this formula? – Sharjeel Sep 23 '11 at 00:47
-
2@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. – Oliver Charlesworth Sep 23 '11 at 10:59
-
1If the units are amplitudes the multiplier is 20. If the units are power the multiplier is 10. – user207421 Oct 23 '14 at 08:16
-
1@Sharj: One example of reference level is the peak signal amplitude of 0.447V used in consumer electronics, see https://en.wikipedia.org/wiki/Line_level. Therefore, -6dB decrease is equivalent to a decrease by 2 in the signal amplitude. – Alexander Jun 28 '18 at 07:29
-
@Alexander:i m trying to generate tone in decibels by giving mobile MediaPlayer volume or amplitude, is it possible? – rashmi sm Feb 28 '19 at 13:13
-
here I am calculating db=(int) (20 * Math.log(((double) maxAmplitude) / 32767d)) – Sumit Sep 21 '21 at 11:19
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.

Nick
- 11,475
- 1
- 36
- 47