Bug 1064: Correct Friis propagation loss equation
authorDean Armstrong <deanarm@gmail.com>
Tue, 01 Mar 2011 16:58:05 +0000
changeset 6846 8cbf95884984
parent 6845 7dc660ca04ff
child 6847 138f00c56381
Bug 1064: Correct Friis propagation loss equation The FrissSpectrumPropagationLoss model doesn't implement Friis formula correctly - the whole numerator needs to be squared, rather than just the last term.
RELEASE_NOTES
src/spectrum/model/friis-spectrum-propagation-loss.cc
src/spectrum/model/friis-spectrum-propagation-loss.h
--- a/RELEASE_NOTES	Tue Mar 01 09:59:55 2011 -0500
+++ b/RELEASE_NOTES	Tue Mar 01 16:58:05 2011 +0000
@@ -29,6 +29,7 @@
 
    - Fixed the UanPhyGen::IsStateBusy method, error with logical OR
    - CsmaNetDevice ReceiveErrorModel was not dropping the packet
+   - bug 1064 - Correct Friis propagation loss equation in spectrum module
 
 Known issues
 ------------
--- a/src/spectrum/model/friis-spectrum-propagation-loss.cc	Tue Mar 01 09:59:55 2011 -0500
+++ b/src/spectrum/model/friis-spectrum-propagation-loss.cc	Tue Mar 01 16:58:05 2011 +0000
@@ -86,7 +86,8 @@
     }
 
   NS_ASSERT (f > 0);
-  double loss = ( d * f * f) / ((3e8 * 3e8) / (4 * M_PI)) ;
+  double loss_sqrt = (4 * M_PI * f * d) / 3e8;
+  double loss = loss_sqrt * loss_sqrt;
 
   if (loss < 1)
     {
--- a/src/spectrum/model/friis-spectrum-propagation-loss.h	Tue Mar 01 09:59:55 2011 -0500
+++ b/src/spectrum/model/friis-spectrum-propagation-loss.h	Tue Mar 01 16:58:05 2011 +0000
@@ -49,7 +49,7 @@
    * Return the propagation loss L according to a simplified version of Friis'
    * formula in which antenna gains are unitary:
    *
-   *         4 * pi * d * f^2
+   *      (4 * pi * d * f) ^ 2
    * L = ----------------------
    *               C^2
    *