I play this little game in meetings. Whenever someone mentions numbers and there is a factor of 2, I listen for any manager to excitedly pipe up "That's 3dB!".

MANAGERS: Here's how to compute decibels for numbers other than 2.
EVERYONE ELSE: Here's how to mentally compute decibels like a friggin' supercomputer.

An old man showed me this. To be honest, I'm never that far from a calculator (or a Python prompt) and this is mostly useful for impressing people...but boy does it impress people (some people at least).

Here we go.

Here's how it works:
  1. Easily remember the key parts of a mental conversion table.
  2. Use that table to compute surprising fast and accurate estimates.

I love this kind of fast and accurate estimation. It lets you effortlessly consider what if situations without getting bogged down in calculations. That's why I include bits of real-world experience like this in the Lean Hardware Workshop where software professionals learn to build hardware.

Here's the table:
db

Lines in YELLOW are the only ones you have to memorize. The notes on the right-hand side guide your thinking through the process.

Let's go through the complete process and then do some examples to show off.

  1. Memorize these five facts:
    a factor of 1X in decibels is 0dB
    a factor of 1.25X in decibels is 1dB
    a factor of 2X in decibels is 3dB (all managers know this)
    a factor of 3X in decibels is 5dB
    a factor of 10X in decibels is 10dB
  2. Know that the logarithm function is pretty linear between 1 and 1.25 (or between 0dB and 1dB)
  3. Fill in the chart for 1.00 through 1.25. Just linearly estimate the decibels.
  4. Now start filling in the rest of the chart. For the factor of 4X, 4 is twice 2, so add 3dB to whatever whatever is on the chart for the decibel value of 2. (The answer is 6dB.)
  5. For the factor of 6X, 6 is twice 3, so add 3dB to whatever is on the chart for the decibel value of 3. (The answer is 8dB.)
  6. For the factor of 8X, 8 is twice 4, so add 3dB to whatever is on the chart for the decibel value of 4. (The answer is 9dB.)
  7. Now for the remaining lines, just interpolate. Split the difference between the line above and below.

That's it. Now you can mentally recreate this table by just remembering the lines in yellow. As you use it, you'll remember the parts that you use most.

Now how do we use it?

Way back in school, nearly everybody learned that multiplication of regular numbers is addition of logarithms. We're going to use that property here.

Say we want to convert a big number to decibels. We need to factor that number into small parts that are on this table.

For instance, let's convert 40 to decibels. 40 isn't on the chart, but 4*10=40 and both 4 and 10 are on the chart.
4 is 6dB and 10 is 10dB.
6dB + 10dB = 16dB.
So 40 is 16dB.

Got a calculator? You'll see that it's actually 16.02dB. Not bad estimation!

How about a bigger number. How about 12345? There are lots of ways you can do this and the general rule is the more factoring you do, the better your estimation will be.

Let's try an easiest way first:
12345 = 1.2345 * 10000 = 1.2345 * 10 * 10 * 10 * 10

Is 1.2345 close enough to 1.25 that we can just say "Screw it, call it 1dB"? Let's find out.

12345 => 1dB + 10dB + 10dB + 10dB + 10dB = 41dB
With a calculator we see that it's actually 40.9149dB. Is that close enough for you? I think it depends on your application, but probably.

How do we get more accurate?

You'll find your own strategies, but I like the scrappy ones that don't require additional calculations. For instance, in the last example we had a factor of 1.2345. Can we pull out a 1.2? By eyeball, you can see there will be a little bit left...maybe around 1.03...? Can we interpolate between lines of the chart? Maybe 1.03 is about 0.16dB...?
12345 ~= 1.03 * 1.2 * 10 * 10 * 10 * 10
12345 => 0.16dB + 0.8dB + 10dB + 10dB + 10dB + 10dB = 40.96dB. Getting closer!

How do we get REALLY accurate?

The way to get really accurate is to cleanly divide out factors on the chart, leaving the final estimation to be a tiny amount.

Sometimes these rules for divisibility help for finding factors.(There are more rules than this, but these are the valuable ones here.)

  • A number is divisible by 2 if it's even.
  • A number is divisible by 3 if the sum of all the digits is divisible by 3.
  • A number is divisible by 4 if the final two digits are divisible by 4.
  • A number is divisible by 5 if the final digit is 0 or 5.
  • A number is divisible by 9 if the sum of all the digits is divisible by 9.

Let's do a few more examples. Keep in mind the strategy I choose below might not be the one you pick. I usually try to get "close enough" without doing any intermediate calculations to find clean factors.

73 = 7.3 * 10
73 => 8.6dB + 10dB = 18.6dB (eyeball interpolated the value for 7.3)
Actual answer: 18.633dB

679 = 6.79 * 100
679 => 8.4dB + 20dB = 28.4dB (eyeball interpolated the value for 8.4)
Actual ansewr: 28.31dB

4320 = 4.32 * 1000
4320 => 6dB + 30dB = 36dB (Interpolation is hard. Give up.)
Actual answer: 36.35dB

As you can see, without actual math, and even without interpolating between lines of the chart, it's not a bad method.