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
as the default reference quantity; this default can be changed by changing
the value of the customizable variable
calc-lu-power-reference (see Customizing Calc).
For field quantities, Calc uses
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 (see Customizing Calc). A
non-default reference quantity will be read from the stack if the
capital O prefix is used.
The l q (
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
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
20 dB RET 4 W RET O l q will return
The H l q [
lufquant] command behaves like l q but
computes field quantities instead of power quantities.
The l d (
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 (
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 +
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 -
lupsub] or H l - [
The l * (
lupmul] and H l *
lufmul] commands will “multiply” a logarithmic unit by a
number; the l / (
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.