ECC33 sanity check

This commit is contained in:
alex
2015-11-10 22:41:54 +00:00
parent 7ef7b8eec5
commit f20c7e6997
5 changed files with 14 additions and 5 deletions
+3
View File
@@ -1,5 +1,8 @@
SIGNAL SERVER CHANGELOG
2.63 - 10 Nov 2015
Added sanity check and handicap to ECC33 model when used with low Tx heights in hilly areas = sea of red
2.62 - 30 Oct 2015
Fixed near field 'lattice' bug at 30m resolution caused by previous fix to fill in void around antenna.
Credit to Nils Lofstad for helping nail this down.
+1 -1
View File
@@ -1,4 +1,4 @@
double version = 2.62;
double version = 2.63;
/****************************************************************************\
* Signal Server: Server optimised SPLAT! by Alex Farrant *
******************************************************************************
+6
View File
@@ -5,6 +5,11 @@
double ECC33pathLoss(float f, float TxH, float RxH, float d, int mode)
{
// Sanity check as this model operates within limited Txh/Rxh bounds
if(TxH-RxH<0){
RxH=RxH/(d*2);
}
if (f < 700 || f > 3500) {
printf("Error: ECC33 model frequency range 700-3500MHz\n");
exit(EXIT_FAILURE);
@@ -22,5 +27,6 @@ double ECC33pathLoss(float f, float TxH, float RxH, float d, int mode)
if (mode > 1) { // Medium city (Europe)
Gr = (42.57 + 13.7 * log10(f)) * (log10(RxH) - 0.585);
}
return Afs + Abm - Gb - Gr;
}
+1 -1
View File
@@ -338,7 +338,7 @@ void PlotPropPath(struct site source, struct site destination,
char fd_buffer[64];
int buffer_offset = 0;
distance = 5280.0 * path.distance[y];
xmtr_alt =
four_thirds_earth + source.alt + path.elevation[0];
+3 -3
View File
@@ -41,9 +41,9 @@ double SUIpathLoss(float f, float TxH, float RxH, float d, int mode)
}
double d0 = 100;
double A = 20 * log10((4 * M_PI * d0) / (300 / f));
double y = (a - b * TxH) + c / TxH;
double y = a - (b * TxH) + (c / TxH);
double Xf = 6 * log10(f / 2000);
double Xh = XhCF * log10(RxH / 2);
double Xh = XhCF * log10(RxH / 20);
return A + (10 * y * log10(d / d0)) + Xf + Xh + s;
return A + (10 * y) * (log10(d / d0)) + Xf + Xh + s;
}