calc: Logarithmic Units
12.5 Logarithmic Units
======================
The units ‘dB’ (decibels) and ‘Np’ (nepers) are logarithmic units which
are manipulated differently than standard units. Calc provides commands
to work with these logarithmic units.
Decibels and nepers are used to measure power quantities as well as
field quantities (quantities whose squares are proportional to power);
these two types of quantities are handled slightly different from each
other. By default the Calc commands work as if power quantities are
being used; with the ‘H’ prefix the Calc commands work as if field
quantities are being used.
The decibel level of a power P1, relative to a reference power P0, is
defined to be 10 log10(P1/P0) dB. (The factor of 10 is because a
decibel, as its name implies, is one-tenth of a bel. The bel, named
after Alexander Graham Bell, was considered to be too large of a unit
and was effectively replaced by the decibel.) If F is a field quantity
with power P=k F^2, then a reference quantity of F0 would correspond to
a power of P0=k F0^2. If P1=k F1^2, then
10 log10(P1/P0) = 10 log10(F1^2/F0^2) = 20 log10(F1/F0).
In order to get the same decibel level regardless of whether a field
quantity or the corresponding power quantity is used, the decibel level
of a field quantity F1, relative to a reference F0, is defined as 20
log10(F1/F0) dB. For example, the decibel value of a sound pressure
level of 60 uPa relative to 20 uPa (the threshold of human hearing) is
20 log10(60 uPa/ 20 uPa) dB = 20 log10(3) dB, which is about 9.54 dB.
Note that in taking the ratio, the original units cancel and so these
logarithmic units are dimensionless.
Nepers (named after John Napier, who is credited with inventing the
logarithm) are similar to bels except they use natural logarithms
instead of common logarithms. The neper level of a power P1, relative
to a reference power P0, is (1/2) ln(P1/P0) Np. The neper level of a
field F1, relative to a reference field F0, is ln(F1/F0) Np.
For power quantities, Calc uses 1 mW as the default reference
quantity; this default can be changed by changing the value of the
customizable variable ‘calc-lu-power-reference’ (Customizing
Calc). For field quantities, Calc uses 20 uPa as the default
reference quantity; this is the value used in acoustics which is where
decibels are commonly encountered. This default can be changed by
changing the value of the customizable variable
‘calc-lu-field-reference’ (Customizing Calc). A non-default
reference quantity will be read from the stack if the capital ‘O’ prefix
is used.
The ‘l q’ (‘calc-lu-quant’) [‘lupquant’] command computes the power
quantity corresponding to a given number of logarithmic units. With the
capital ‘O’ prefix, ‘O l q’, the reference level will be read from the
top of the stack. (In an algebraic formula, ‘lupquant’ can be given an
optional second argument which will be used for the reference level.)
For example, ‘20 dB <RET> l q’ will return ‘100 mW’; ‘20 dB <RET> 4 W
<RET> O l q’ will return ‘400 W’. The ‘H l q’ [‘lufquant’] command
behaves like ‘l q’ but computes field quantities instead of power
quantities.
The ‘l d’ (‘calc-db’) [‘dbpower’] command will compute the decibel
level of a power quantity using the default reference level; ‘H l d’
[‘dbfield’] will compute the decibel level of a field quantity. The
commands ‘l n’ (‘calc-np’) [‘nppower’] and ‘H l n’ [‘npfield’] will
similarly compute neper levels. With the capital ‘O’ prefix these
commands will read a reference level from the stack; in an algebraic
formula the reference level can be given as an optional second argument.
The sum of two power or field quantities doesn’t correspond to the
sum of the corresponding decibel or neper levels. If the powers
corresponding to decibel levels D1 and D2 are added, the corresponding
decibel level “sum” will be
10 log10(10^(D1/10) + 10^(D2/10)) dB.
When field quantities are combined, it often means the corresponding
powers are added and so the above formula might be used. In acoustics,
for example, the sound pressure level is a field quantity and so the
decibels are often defined using the field formula, but the sound
pressure levels are combined as the sound power levels, and so the above
formula should be used. If two field quantities themselves are added,
the new decibel level will be
20 log10(10^(D1/20) + 10^(D2/20)) dB.
If the power corresponding to D dB is multiplied by a number N, then the
corresponding decibel level will be
D + 10 log10(N) dB,
if a field quantity is multiplied by N the corresponding decibel level
will be
D + 20 log10(N) dB.
There are similar formulas for combining nepers. The ‘l +’
(‘calc-lu-plus’) [‘lupadd’] command will “add” two logarithmic unit
power levels this way; with the ‘H’ prefix, ‘H l +’ [‘lufadd’] will add
logarithmic unit field levels. Similarly, logarithmic units can be
“subtracted” with ‘l -’ (‘calc-lu-minus’) [‘lupsub’] or ‘H l -’
[‘lufsub’]. The ‘l *’ (‘calc-lu-times’) [‘lupmul’] and ‘H l *’
[‘lufmul’] commands will “multiply” a logarithmic unit by a number; the
‘l /’ (‘calc-lu-divide’) [‘lupdiv’] and ‘H l /’ [‘lufdiv’] commands will
“divide” a logarithmic unit by a number. Note that the reference
quantities don’t play a role in this arithmetic.