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’ (SeeCustomizing
 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’ (SeeCustomizing 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.