network-programmingrsscommunicationwireless

How to calculate Received Signal Strength (RSS) and path loss Error in dB?


supposed that the measurement RSS is "-70dBm" and the predicted RSS is "-68dBm, the transmission power of antenna is "-12dBm",

then if the following equation is right? if not, how to calculate it?

Error = |10 * log10 (70/12) - 10 * log10 (68/12)| = 10 * log10 (70/68)

now my measurement is the RSS in dBm, how to convert it into dB?


Solution

  • This often confuses folks in my experience, and as such warrants a thorough explanation.

    The "m" in "dBm" means relative to 1 milliwatt. It is typically used for absolute measurements, whereas "regular" dBs are typically used for power gains/losses/diffs.

    Example:
    in/tx   out/rx
    1w      .5w
    
    (1 milliwatt = 0.001)
    10log(1/0.001) = 30dBm
    10log(0.5/0.0001) = 27dBm
    loss = 3dB
    
    
    10log(1) = 0dB
    10log(0.5) = 3dB
    loss still is 3dB
    (note there is an implied /1w here since the argument to log must be unit-less, e.g. 0.5w/1w = 0.5 "flat" (aka no units))
    
    So in the context of power differences, the m does not matter.
    
    Things to note:
    1/2 of power lost == -3dB gain (or +3dB loss)
    power gains/losses in series are added/subtracted when in dBs -vs- multipled/divided when in watts
    0 watts == -infinity dB
    0 dBm == 1 milliwatt
    log here is base 10 (not 2 nor e)
    reletiveGainOrLoss = 10^(valueOfGainOrLossInDb/10)
    valueOfPowerInMilliwatts = 10^(valueOfPowerInDbm/10)
    
    
    In your example, I'll presume by error you mean the error of the predicted loss relative measured loss:
    predicted loss =
    known transmission power - predicted RSS =
    -12dBm - -68dBm = 
    56dB
    
    measured loss =
    known transmission power - measured RSS =
    -12dBm - -70dBm = 
    58dB
    
    error of predicted loss relative to measured loss =
    |predicted loss - measured loss| = 
    |56dB - 58dB| =
    2dB (==2dBms, but for diffs we should drop the m) = 
    
    Or more directly: 70 - 68 (so easy with dBs!)
    
    This equates to a 63% error (or 58, depending on how it is done):
    10^(-2dB/10) =
    0.63
    (10^(2dB/10) =
    1.584893192461113
    
    In millwatts:
    10^(valueInDbm/10) =
    10^(-70/10) = 0.0000001 milliwatts
    10^(-68/10) = 0.000000158489319 milliwatts
    10^(-12/10) = 0.063095734448019 milliwatts
    
    As a sanity check:
    (0.0000001/0.063095734448019 - 0.000000158489319/0.063095734448019) / (0.0000001/0.063095734448019) =
    (0.000001584893192 - 0.000002511886428) / 0.000001584893192 = 
    -0.000000926993236 / 0.000001584893192 =
    -0.584893190707832
    (note that doing it in watts is much more laborious! (not to even mention float errors))
    

    To answer your other question regarding:

    Error = |10 * log10 (70/12) - 10 * log10 (68/12)| = 10 * log10 (70/68)
    

    The first equation is nonsensical; as discussed above: for dBs we add/subtract -vs- multiply/divide. The second equation is however true, based on one of the rules of logs:

    log a + log b = log ab