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.
--- 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
*