From 0c4ff44a6e04731222fe903f989bb20a13c90dea Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 6 Mar 2015 21:57:17 +0000 Subject: [PATCH] 2.43 --- .txt | 34 +++-- CHANGELOG | 4 + _curvature | 369 +++------------------------------------------------ _fresnel | 369 +++------------------------------------------------ _fresnel60 | 369 +++------------------------------------------------ _profile | 2 +- _reference | 365 +++----------------------------------------------- main.cpp | 2 +- models.cpp | 45 +++++-- signalserver | Bin 150216 -> 150216 bytes 10 files changed, 124 insertions(+), 1435 deletions(-) diff --git a/.txt b/.txt index 5ed928f..262e41c 100644 --- a/.txt +++ b/.txt @@ -2,25 +2,25 @@ --==[ Path Profile Analysis ]==-- Transmitter site: Tx -Site location: 52.1947 North / 2.0959 West +Site location: 51.8648 North / 2.2022 West Ground elevation: 0.00 meters AMSL -Antenna height: 30.00 meters AGL / 30.00 meters AMSL -Distance to Rx: 19.89 kilometers -Azimuth to Rx: 89.69 degrees -Depression angle to Rx: -0.1701 degrees +Antenna height: 36.00 meters AGL / 36.00 meters AMSL +Distance to Rx: 1.00 kilometers +Azimuth to Rx: 91.27 degrees +Depression angle to Rx: -1.5004 degrees Receiver site: Rx -Site location: 52.1953 North / 1.8041 West +Site location: 51.8646 North / 2.1877 West Ground elevation: 0.00 meters AMSL -Antenna height: 2.00 meters AGL / 2.00 meters AMSL -Distance to Tx: 19.89 kilometers -Azimuth to Tx: 269.92 degrees -Depression angle to Tx: -0.0088 degrees +Antenna height: 10.00 meters AGL / 10.00 meters AMSL +Distance to Tx: 1.00 kilometers +Azimuth to Tx: 271.29 degrees +Elevation angle to Tx: +1.4914 degrees Longley-Rice path calculation parameters used in this analysis: Earth's Dielectric Constant: 15.000 Earth's Conductivity: 0.005 Siemens/meter Atmospheric Bending Constant (N-units): 301.000 ppm -Frequency: 800.000 MHz +Frequency: 900.000 MHz Radio Climate: 5 (Continental Temperate) Polarisation: 1 (Vertical) Fraction of Situations: 50.0% @@ -30,9 +30,9 @@ Fraction of Time: 50.0% Summary for the link between Tx and Rx: -Free space path loss: 116.50 dB -Longley-Rice path loss: 170.10 dB -Attenuation due to terrain shielding: 53.60 dB +Free space path loss: 91.52 dB +Longley-Rice path loss: 92.83 dB +Attenuation due to terrain shielding: 1.32 dB Mode of propagation: Longley-Rice model error number: 0 (No error) @@ -41,8 +41,6 @@ Longley-Rice model error number: 0 (No error) No obstructions to LOS path due to terrain were detected -Antenna at Rx must be raised to at least 83.99 meters AGL -to clear the first Fresnel zone. +The first Fresnel zone is clear. -Antenna at Rx must be raised to at least 37.97 meters AGL -to clear 60% of the first Fresnel zone. +60% of the first Fresnel zone is clear. diff --git a/CHANGELOG b/CHANGELOG index e1beb66..6ca0927 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,9 @@ SIGNAL SERVER CHANGE LOG +2.43 - 06 Mar 2015 +Improved model error handling +Tweaked params for Ericsson model and inverted environment variables to match rest + v2.41 - 27 February 2015 Simpler PPA output for scripting Enabled new models for PPA (previously just ITM) diff --git a/_curvature b/_curvature index 10238b0..b151541 100644 --- a/_curvature +++ b/_curvature @@ -1,351 +1,18 @@ -0.000 -2.000 -0.057 -1.992 -0.114 -1.984 -0.170 -1.976 -0.227 -1.969 -0.284 -1.963 -0.341 -1.957 -0.398 -1.951 -0.454 -1.947 -0.511 -1.942 -0.568 -1.938 -0.625 -1.935 -0.682 -1.932 -0.738 -1.930 -0.795 -1.928 -0.852 -1.926 -0.909 -1.926 -0.966 -1.925 -1.022 -1.925 -1.079 -1.926 -1.136 -1.927 -1.193 -1.929 -1.250 -1.931 -1.306 -1.934 -1.363 -1.937 -1.420 -1.941 -1.477 -1.945 -1.534 -1.950 -1.590 -1.955 -1.647 -1.960 -1.704 -1.967 -1.761 -1.973 -1.818 -1.981 -1.875 -1.988 -1.931 -1.997 -1.988 -2.005 -2.045 -2.015 -2.102 -2.025 -2.159 -2.035 -2.215 -2.046 -2.272 -2.057 -2.329 -2.069 -2.386 -2.081 -2.443 -2.094 -2.499 -2.107 -2.556 -2.121 -2.613 -2.135 -2.670 -2.150 -2.727 -2.165 -2.783 -2.181 -2.840 -2.198 -2.897 -2.215 -2.954 -2.232 -3.011 -2.250 -3.067 -2.268 -3.124 -2.287 -3.181 -2.307 -3.238 -2.326 -3.295 -2.347 -3.351 -2.368 -3.408 -2.389 -3.465 -2.411 -3.522 -2.434 -3.579 -2.457 -3.635 -2.480 -3.692 -2.504 -3.749 -2.528 -3.806 -2.553 -3.863 -2.579 -3.919 -2.605 -3.976 -2.631 -4.033 -2.658 -4.090 -2.686 -4.147 -2.714 -4.203 -2.742 -4.260 -2.771 -4.317 -2.801 -4.374 -2.831 -4.431 -2.861 -4.487 -2.893 -4.544 -2.924 -4.601 -2.956 -4.658 -2.989 -4.715 -3.022 -4.771 -3.055 -4.828 -3.089 -4.885 -3.124 -4.942 -3.159 -4.999 -3.195 -5.056 -3.231 -5.112 -3.267 -5.169 -3.305 -5.226 -3.342 -5.283 -3.380 -5.340 -3.419 -5.396 -3.458 -5.453 -3.498 -5.510 -3.538 -5.567 -3.579 -5.624 -3.620 -5.680 -3.662 -5.737 -3.704 -5.794 -3.746 -5.851 -3.790 -5.908 -3.833 -5.964 -3.878 -6.021 -3.922 -6.078 -3.968 -6.135 -4.013 -6.192 -4.060 -6.248 -4.106 -6.305 -4.154 -6.362 -4.201 -6.419 -4.250 -6.476 -4.298 -6.532 -4.348 -6.589 -4.397 -6.646 -4.448 -6.703 -4.498 -6.760 -4.550 -6.816 -4.602 -6.873 -4.654 -6.930 -4.707 -6.987 -4.760 -7.044 -4.814 -7.100 -4.868 -7.157 -4.923 -7.214 -4.978 -7.271 -5.034 -7.328 -5.091 -7.384 -5.148 -7.441 -5.205 -7.498 -5.263 -7.555 -5.321 -7.612 -5.380 -7.668 -5.440 -7.725 -5.500 -7.782 -5.560 -7.839 -5.621 -7.896 -5.682 -7.952 -5.744 -8.009 -5.807 -8.066 -5.870 -8.123 -5.933 -8.180 -5.997 -8.237 -6.062 -8.293 -6.127 -8.350 -6.192 -8.407 -6.258 -8.464 -6.325 -8.521 -6.392 -8.577 -6.459 -8.634 -6.527 -8.691 -6.596 -8.748 -6.665 -8.805 -6.734 -8.861 -6.804 -8.918 -6.875 -8.975 -6.946 -9.032 -7.017 -9.089 -7.089 -9.145 -7.162 -9.202 -7.235 -9.259 -7.309 -9.316 -7.383 -9.373 -7.457 -9.429 -7.533 -9.486 -7.608 -9.543 -7.684 -9.600 -7.761 -9.657 -7.838 -9.713 -7.916 -9.770 -7.994 -9.827 -8.073 -9.884 -8.152 -9.941 -8.231 -9.997 -8.312 -10.054 -8.392 -10.111 -8.473 -10.168 -8.555 -10.225 -8.637 -10.281 -8.720 -10.338 -8.803 -10.395 -8.887 -10.452 -8.971 -10.509 -9.056 -10.565 -9.141 -10.622 -9.227 -10.679 -9.313 -10.736 -9.400 -10.793 -9.487 -10.849 -9.575 -10.906 -9.663 -10.963 -9.752 -11.020 -9.841 -11.077 -9.931 -11.133 -10.021 -11.190 -10.112 -11.247 -10.204 -11.304 -10.295 -11.361 -10.388 -11.417 -10.481 -11.474 -10.574 -11.531 -10.668 -11.588 -10.762 -11.645 -10.857 -11.702 -10.952 -11.758 -11.048 -11.815 -11.145 -11.872 -11.241 -11.929 -11.339 -11.986 -11.437 -12.042 -11.535 -12.099 -11.634 -12.156 -11.734 -12.213 -11.833 -12.270 -11.934 -12.326 -12.035 -12.383 -12.136 -12.440 -12.238 -12.497 -12.341 -12.554 -12.444 -12.610 -12.547 -12.667 -12.651 -12.724 -12.756 -12.781 -12.861 -12.838 -12.966 -12.894 -13.072 -12.951 -13.179 -13.008 -13.286 -13.065 -13.393 -13.122 -13.501 -13.178 -13.610 -13.235 -13.719 -13.292 -13.828 -13.349 -13.938 -13.406 -14.049 -13.462 -14.160 -13.519 -14.272 -13.576 -14.384 -13.633 -14.496 -13.690 -14.609 -13.746 -14.723 -13.803 -14.837 -13.860 -14.952 -13.917 -15.067 -13.974 -15.182 -14.030 -15.299 -14.087 -15.415 -14.144 -15.532 -14.201 -15.650 -14.258 -15.768 -14.314 -15.887 -14.371 -16.006 -14.428 -16.126 -14.485 -16.246 -14.542 -16.367 -14.598 -16.488 -14.655 -16.609 -14.712 -16.732 -14.769 -16.854 -14.826 -16.978 -14.883 -17.101 -14.939 -17.226 -14.996 -17.350 -15.053 -17.476 -15.110 -17.601 -15.167 -17.728 -15.223 -17.854 -15.280 -17.982 -15.337 -18.109 -15.394 -18.238 -15.451 -18.367 -15.507 -18.496 -15.564 -18.626 -15.621 -18.756 -15.678 -18.887 -15.735 -19.018 -15.791 -19.150 -15.848 -19.282 -15.905 -19.415 -15.962 -19.548 -16.019 -19.682 -16.075 -19.817 -16.132 -19.952 -16.189 -20.087 -16.246 -20.223 -16.303 -20.359 -16.359 -20.496 -16.416 -20.634 -16.473 -20.771 -16.530 -20.910 -16.587 -21.049 -16.643 -21.188 -16.700 -21.328 -16.757 -21.469 -16.814 -21.610 -16.871 -21.751 -16.927 -21.893 -16.984 -22.035 -17.041 -22.178 -17.098 -22.322 -17.155 -22.466 -17.211 -22.610 -17.268 -22.755 -17.325 -22.901 -17.382 -23.047 -17.439 -23.193 -17.495 -23.340 -17.552 -23.488 -17.609 -23.636 -17.666 -23.785 -17.723 -23.934 -17.779 -24.083 -17.836 -24.233 -17.893 -24.384 -17.950 -24.535 -18.007 -24.687 -18.064 -24.839 -18.120 -24.991 -18.177 -25.144 -18.234 -25.298 -18.291 -25.452 -18.348 -25.607 -18.404 -25.762 -18.461 -25.917 -18.518 -26.074 -18.575 -26.230 -18.632 -26.387 -18.688 -26.545 -18.745 -26.703 -18.802 -26.862 -18.859 -27.021 -18.916 -27.181 -18.972 -27.341 -19.029 -27.502 -19.086 -27.663 -19.143 -27.825 -19.200 -27.987 -19.256 -28.150 -19.313 -28.313 -19.370 -28.477 -19.427 -28.641 -19.484 -28.806 -19.540 -28.971 -19.597 -29.137 -19.654 -29.303 -19.711 -29.470 -19.768 -29.637 -19.824 -29.805 -19.881 -29.973 +0.000 -10.000 +0.057 -11.490 +0.114 -12.981 +0.172 -14.473 +0.229 -15.965 +0.286 -17.457 +0.343 -18.950 +0.401 -20.444 +0.458 -21.938 +0.515 -23.432 +0.572 -24.927 +0.630 -26.423 +0.687 -27.919 +0.744 -29.415 +0.801 -30.913 +0.858 -32.410 +0.916 -33.908 +0.973 -35.407 diff --git a/_fresnel b/_fresnel index dec6472..46dcfaa 100644 --- a/_fresnel +++ b/_fresnel @@ -1,352 +1,19 @@ 0.000 -0.000 -0.057 -4.609 -0.114 -6.508 -0.170 -7.960 -0.227 -9.178 -0.284 -10.246 -0.341 -11.208 -0.398 -12.088 -0.454 -12.904 -0.511 -13.667 -0.568 -14.385 -0.625 -15.065 -0.682 -15.712 -0.738 -16.329 -0.795 -16.920 -0.852 -17.488 -0.909 -18.035 -0.966 -18.562 -1.022 -19.071 -1.079 -19.564 -1.136 -20.042 -1.193 -20.506 -1.250 -20.957 -1.306 -21.395 -1.363 -21.822 -1.420 -22.238 -1.477 -22.643 -1.534 -23.039 -1.590 -23.425 -1.647 -23.803 -1.704 -24.172 -1.761 -24.533 -1.818 -24.887 -1.875 -25.233 -1.931 -25.572 -1.988 -25.904 -2.045 -26.230 -2.102 -26.549 -2.159 -26.863 -2.215 -27.170 -2.272 -27.472 -2.329 -27.769 -2.386 -28.060 -2.443 -28.346 -2.499 -28.627 -2.556 -28.903 -2.613 -29.174 -2.670 -29.441 -2.727 -29.704 -2.783 -29.962 -2.840 -30.216 -2.897 -30.465 -2.954 -30.711 -3.011 -30.953 -3.067 -31.191 -3.124 -31.425 -3.181 -31.656 -3.238 -31.883 -3.295 -32.107 -3.351 -32.327 -3.408 -32.543 -3.465 -32.757 -3.522 -32.967 -3.579 -33.174 -3.635 -33.378 -3.692 -33.579 -3.749 -33.777 -3.806 -33.972 -3.863 -34.164 -3.919 -34.353 -3.976 -34.540 -4.033 -34.724 -4.090 -34.905 -4.147 -35.083 -4.203 -35.259 -4.260 -35.432 -4.317 -35.602 -4.374 -35.770 -4.431 -35.936 -4.487 -36.099 -4.544 -36.260 -4.601 -36.418 -4.658 -36.574 -4.715 -36.728 -4.771 -36.879 -4.828 -37.028 -4.885 -37.175 -4.942 -37.320 -4.999 -37.462 -5.056 -37.603 -5.112 -37.741 -5.169 -37.877 -5.226 -38.011 -5.283 -38.143 -5.340 -38.273 -5.396 -38.401 -5.453 -38.526 -5.510 -38.650 -5.567 -38.772 -5.624 -38.892 -5.680 -39.010 -5.737 -39.126 -5.794 -39.241 -5.851 -39.353 -5.908 -39.463 -5.964 -39.572 -6.021 -39.679 -6.078 -39.784 -6.135 -39.887 -6.192 -39.989 -6.248 -40.088 -6.305 -40.186 -6.362 -40.282 -6.419 -40.377 -6.476 -40.469 -6.532 -40.560 -6.589 -40.649 -6.646 -40.737 -6.703 -40.823 -6.760 -40.907 -6.816 -40.990 -6.873 -41.071 -6.930 -41.150 -6.987 -41.228 -7.044 -41.304 -7.100 -41.378 -7.157 -41.451 -7.214 -41.522 -7.271 -41.592 -7.328 -41.660 -7.384 -41.726 -7.441 -41.791 -7.498 -41.855 -7.555 -41.917 -7.612 -41.977 -7.668 -42.036 -7.725 -42.093 -7.782 -42.149 -7.839 -42.203 -7.896 -42.255 -7.952 -42.307 -8.009 -42.356 -8.066 -42.405 -8.123 -42.451 -8.180 -42.497 -8.237 -42.540 -8.293 -42.583 -8.350 -42.623 -8.407 -42.663 -8.464 -42.701 -8.521 -42.737 -8.577 -42.772 -8.634 -42.806 -8.691 -42.838 -8.748 -42.868 -8.805 -42.897 -8.861 -42.925 -8.918 -42.951 -8.975 -42.976 -9.032 -43.000 -9.089 -43.022 -9.145 -43.043 -9.202 -43.062 -9.259 -43.079 -9.316 -43.096 -9.373 -43.111 -9.429 -43.124 -9.486 -43.136 -9.543 -43.147 -9.600 -43.156 -9.657 -43.164 -9.713 -43.171 -9.770 -43.176 -9.827 -43.179 -9.884 -43.182 -9.941 -43.182 -9.997 -43.182 -10.054 -43.180 -10.111 -43.176 -10.168 -43.172 -10.225 -43.165 -10.281 -43.158 -10.338 -43.149 -10.395 -43.138 -10.452 -43.126 -10.509 -43.113 -10.565 -43.098 -10.622 -43.082 -10.679 -43.065 -10.736 -43.046 -10.793 -43.025 -10.849 -43.003 -10.906 -42.980 -10.963 -42.956 -11.020 -42.930 -11.077 -42.902 -11.133 -42.873 -11.190 -42.843 -11.247 -42.811 -11.304 -42.777 -11.361 -42.743 -11.417 -42.707 -11.474 -42.669 -11.531 -42.630 -11.588 -42.589 -11.645 -42.547 -11.702 -42.504 -11.758 -42.459 -11.815 -42.412 -11.872 -42.364 -11.929 -42.315 -11.986 -42.264 -12.042 -42.211 -12.099 -42.157 -12.156 -42.102 -12.213 -42.045 -12.270 -41.986 -12.326 -41.926 -12.383 -41.865 -12.440 -41.802 -12.497 -41.737 -12.554 -41.671 -12.610 -41.603 -12.667 -41.533 -12.724 -41.462 -12.781 -41.390 -12.838 -41.316 -12.894 -41.240 -12.951 -41.163 -13.008 -41.084 -13.065 -41.003 -13.122 -40.921 -13.178 -40.837 -13.235 -40.751 -13.292 -40.664 -13.349 -40.575 -13.406 -40.484 -13.462 -40.392 -13.519 -40.298 -13.576 -40.202 -13.633 -40.104 -13.690 -40.005 -13.746 -39.904 -13.803 -39.801 -13.860 -39.696 -13.917 -39.589 -13.974 -39.481 -14.030 -39.371 -14.087 -39.259 -14.144 -39.145 -14.201 -39.029 -14.258 -38.911 -14.314 -38.792 -14.371 -38.670 -14.428 -38.547 -14.485 -38.421 -14.542 -38.293 -14.598 -38.164 -14.655 -38.032 -14.712 -37.899 -14.769 -37.763 -14.826 -37.625 -14.883 -37.485 -14.939 -37.343 -14.996 -37.199 -15.053 -37.052 -15.110 -36.903 -15.167 -36.752 -15.223 -36.599 -15.280 -36.443 -15.337 -36.285 -15.394 -36.125 -15.451 -35.962 -15.507 -35.797 -15.564 -35.630 -15.621 -35.459 -15.678 -35.287 -15.735 -35.111 -15.791 -34.934 -15.848 -34.753 -15.905 -34.570 -15.962 -34.384 -16.019 -34.195 -16.075 -34.003 -16.132 -33.809 -16.189 -33.611 -16.246 -33.411 -16.303 -33.207 -16.359 -33.001 -16.416 -32.791 -16.473 -32.578 -16.530 -32.362 -16.587 -32.142 -16.643 -31.919 -16.700 -31.693 -16.757 -31.463 -16.814 -31.229 -16.871 -30.992 -16.927 -30.750 -16.984 -30.505 -17.041 -30.256 -17.098 -30.003 -17.155 -29.745 -17.211 -29.484 -17.268 -29.218 -17.325 -28.947 -17.382 -28.671 -17.439 -28.391 -17.495 -28.106 -17.552 -27.816 -17.609 -27.520 -17.666 -27.219 -17.723 -26.913 -17.779 -26.600 -17.836 -26.282 -17.893 -25.957 -17.950 -25.626 -18.007 -25.288 -18.064 -24.943 -18.120 -24.591 -18.177 -24.231 -18.234 -23.863 -18.291 -23.487 -18.348 -23.102 -18.404 -22.707 -18.461 -22.304 -18.518 -21.889 -18.575 -21.465 -18.632 -21.028 -18.688 -20.580 -18.745 -20.118 -18.802 -19.642 -18.859 -19.152 -18.916 -18.645 -18.972 -18.121 -19.029 -17.577 -19.086 -17.013 -19.143 -16.426 -19.200 -15.813 -19.256 -15.171 -19.313 -14.497 -19.370 -13.785 -19.427 -13.030 -19.484 -12.224 -19.540 -11.355 -19.597 -10.408 -19.654 -9.359 -19.711 -8.169 -19.768 -6.764 -19.824 -4.965 -19.881 -1.852 -19.890 0.000 \ No newline at end of file +0.057 -4.240 +0.114 -5.811 +0.172 -6.882 +0.229 -7.666 +0.286 -8.245 +0.343 -8.660 +0.401 -8.934 +0.458 -9.081 +0.515 -9.105 +0.572 -9.008 +0.630 -8.786 +0.687 -8.430 +0.744 -7.920 +0.801 -7.226 +0.858 -6.284 +0.916 -4.959 +0.973 -2.736 +0.996 0.000 \ No newline at end of file diff --git a/_fresnel60 b/_fresnel60 index 46862e3..5dd24c0 100644 --- a/_fresnel60 +++ b/_fresnel60 @@ -1,352 +1,19 @@ 0.000 -0.000 -0.057 -2.765 -0.114 -3.905 -0.170 -4.776 -0.227 -5.507 -0.284 -6.148 -0.341 -6.725 -0.398 -7.253 -0.454 -7.742 -0.511 -8.200 -0.568 -8.631 -0.625 -9.039 -0.682 -9.427 -0.738 -9.797 -0.795 -10.152 -0.852 -10.493 -0.909 -10.821 -0.966 -11.137 -1.022 -11.443 -1.079 -11.739 -1.136 -12.025 -1.193 -12.304 -1.250 -12.574 -1.306 -12.837 -1.363 -13.093 -1.420 -13.343 -1.477 -13.586 -1.534 -13.823 -1.590 -14.055 -1.647 -14.282 -1.704 -14.503 -1.761 -14.720 -1.818 -14.932 -1.875 -15.140 -1.931 -15.343 -1.988 -15.542 -2.045 -15.738 -2.102 -15.930 -2.159 -16.118 -2.215 -16.302 -2.272 -16.483 -2.329 -16.661 -2.386 -16.836 -2.443 -17.007 -2.499 -17.176 -2.556 -17.342 -2.613 -17.505 -2.670 -17.665 -2.727 -17.822 -2.783 -17.977 -2.840 -18.129 -2.897 -18.279 -2.954 -18.427 -3.011 -18.572 -3.067 -18.715 -3.124 -18.855 -3.181 -18.994 -3.238 -19.130 -3.295 -19.264 -3.351 -19.396 -3.408 -19.526 -3.465 -19.654 -3.522 -19.780 -3.579 -19.905 -3.635 -20.027 -3.692 -20.148 -3.749 -20.266 -3.806 -20.383 -3.863 -20.499 -3.919 -20.612 -3.976 -20.724 -4.033 -20.834 -4.090 -20.943 -4.147 -21.050 -4.203 -21.155 -4.260 -21.259 -4.317 -21.361 -4.374 -21.462 -4.431 -21.562 -4.487 -21.659 -4.544 -21.756 -4.601 -21.851 -4.658 -21.944 -4.715 -22.037 -4.771 -22.127 -4.828 -22.217 -4.885 -22.305 -4.942 -22.392 -4.999 -22.477 -5.056 -22.562 -5.112 -22.644 -5.169 -22.726 -5.226 -22.807 -5.283 -22.886 -5.340 -22.964 -5.396 -23.040 -5.453 -23.116 -5.510 -23.190 -5.567 -23.263 -5.624 -23.335 -5.680 -23.406 -5.737 -23.476 -5.794 -23.544 -5.851 -23.612 -5.908 -23.678 -5.964 -23.743 -6.021 -23.807 -6.078 -23.870 -6.135 -23.932 -6.192 -23.993 -6.248 -24.053 -6.305 -24.112 -6.362 -24.169 -6.419 -24.226 -6.476 -24.282 -6.532 -24.336 -6.589 -24.390 -6.646 -24.442 -6.703 -24.494 -6.760 -24.544 -6.816 -24.594 -6.873 -24.642 -6.930 -24.690 -6.987 -24.737 -7.044 -24.782 -7.100 -24.827 -7.157 -24.871 -7.214 -24.913 -7.271 -24.955 -7.328 -24.996 -7.384 -25.036 -7.441 -25.075 -7.498 -25.113 -7.555 -25.150 -7.612 -25.186 -7.668 -25.221 -7.725 -25.256 -7.782 -25.289 -7.839 -25.322 -7.896 -25.353 -7.952 -25.384 -8.009 -25.414 -8.066 -25.443 -8.123 -25.471 -8.180 -25.498 -8.237 -25.524 -8.293 -25.550 -8.350 -25.574 -8.407 -25.598 -8.464 -25.620 -8.521 -25.642 -8.577 -25.663 -8.634 -25.683 -8.691 -25.703 -8.748 -25.721 -8.805 -25.738 -8.861 -25.755 -8.918 -25.771 -8.975 -25.786 -9.032 -25.800 -9.089 -25.813 -9.145 -25.826 -9.202 -25.837 -9.259 -25.848 -9.316 -25.857 -9.373 -25.866 -9.429 -25.875 -9.486 -25.882 -9.543 -25.888 -9.600 -25.894 -9.657 -25.899 -9.713 -25.902 -9.770 -25.905 -9.827 -25.908 -9.884 -25.909 -9.941 -25.909 -9.997 -25.909 -10.054 -25.908 -10.111 -25.906 -10.168 -25.903 -10.225 -25.899 -10.281 -25.895 -10.338 -25.889 -10.395 -25.883 -10.452 -25.876 -10.509 -25.868 -10.565 -25.859 -10.622 -25.849 -10.679 -25.839 -10.736 -25.827 -10.793 -25.815 -10.849 -25.802 -10.906 -25.788 -10.963 -25.773 -11.020 -25.758 -11.077 -25.741 -11.133 -25.724 -11.190 -25.706 -11.247 -25.686 -11.304 -25.666 -11.361 -25.646 -11.417 -25.624 -11.474 -25.601 -11.531 -25.578 -11.588 -25.554 -11.645 -25.528 -11.702 -25.502 -11.758 -25.475 -11.815 -25.447 -11.872 -25.419 -11.929 -25.389 -11.986 -25.358 -12.042 -25.327 -12.099 -25.294 -12.156 -25.261 -12.213 -25.227 -12.270 -25.192 -12.326 -25.156 -12.383 -25.119 -12.440 -25.081 -12.497 -25.042 -12.554 -25.002 -12.610 -24.962 -12.667 -24.920 -12.724 -24.877 -12.781 -24.834 -12.838 -24.789 -12.894 -24.744 -12.951 -24.698 -13.008 -24.650 -13.065 -24.602 -13.122 -24.552 -13.178 -24.502 -13.235 -24.451 -13.292 -24.398 -13.349 -24.345 -13.406 -24.290 -13.462 -24.235 -13.519 -24.179 -13.576 -24.121 -13.633 -24.062 -13.690 -24.003 -13.746 -23.942 -13.803 -23.880 -13.860 -23.818 -13.917 -23.754 -13.974 -23.689 -14.030 -23.623 -14.087 -23.555 -14.144 -23.487 -14.201 -23.417 -14.258 -23.347 -14.314 -23.275 -14.371 -23.202 -14.428 -23.128 -14.485 -23.053 -14.542 -22.976 -14.598 -22.898 -14.655 -22.819 -14.712 -22.739 -14.769 -22.658 -14.826 -22.575 -14.883 -22.491 -14.939 -22.406 -14.996 -22.319 -15.053 -22.231 -15.110 -22.142 -15.167 -22.051 -15.223 -21.959 -15.280 -21.866 -15.337 -21.771 -15.394 -21.675 -15.451 -21.577 -15.507 -21.478 -15.564 -21.378 -15.621 -21.276 -15.678 -21.172 -15.735 -21.067 -15.791 -20.960 -15.848 -20.852 -15.905 -20.742 -15.962 -20.630 -16.019 -20.517 -16.075 -20.402 -16.132 -20.285 -16.189 -20.167 -16.246 -20.047 -16.303 -19.924 -16.359 -19.800 -16.416 -19.675 -16.473 -19.547 -16.530 -19.417 -16.587 -19.285 -16.643 -19.152 -16.700 -19.016 -16.757 -18.878 -16.814 -18.737 -16.871 -18.595 -16.927 -18.450 -16.984 -18.303 -17.041 -18.154 -17.098 -18.002 -17.155 -17.847 -17.211 -17.690 -17.268 -17.531 -17.325 -17.368 -17.382 -17.203 -17.439 -17.035 -17.495 -16.864 -17.552 -16.689 -17.609 -16.512 -17.666 -16.332 -17.723 -16.148 -17.779 -15.960 -17.836 -15.769 -17.893 -15.574 -17.950 -15.375 -18.007 -15.173 -18.064 -14.966 -18.120 -14.754 -18.177 -14.538 -18.234 -14.318 -18.291 -14.092 -18.348 -13.861 -18.404 -13.624 -18.461 -13.382 -18.518 -13.134 -18.575 -12.879 -18.632 -12.617 -18.688 -12.348 -18.745 -12.071 -18.802 -11.785 -18.859 -11.491 -18.916 -11.187 -18.972 -10.872 -19.029 -10.546 -19.086 -10.208 -19.143 -9.856 -19.200 -9.488 -19.256 -9.103 -19.313 -8.698 -19.370 -8.271 -19.427 -7.818 -19.484 -7.334 -19.540 -6.813 -19.597 -6.245 -19.654 -5.615 -19.711 -4.901 -19.768 -4.058 -19.824 -2.979 -19.881 -1.111 -19.890 0.000 \ No newline at end of file +0.057 -2.544 +0.114 -3.487 +0.172 -4.129 +0.229 -4.600 +0.286 -4.947 +0.343 -5.196 +0.401 -5.361 +0.458 -5.448 +0.515 -5.463 +0.572 -5.405 +0.630 -5.272 +0.687 -5.058 +0.744 -4.752 +0.801 -4.335 +0.858 -3.771 +0.916 -2.975 +0.973 -1.642 +0.996 0.000 \ No newline at end of file diff --git a/_profile b/_profile index caa8840..ecf8cdc 100644 --- a/_profile +++ b/_profile @@ -1 +1 @@ -19.890 0.000 \ No newline at end of file +0.996 0.000 \ No newline at end of file diff --git a/_reference b/_reference index e7a13e5..9480292 100644 --- a/_reference +++ b/_reference @@ -1,352 +1,19 @@ 0.000 0.000 0.057 0.000 0.114 0.000 -0.170 0.000 -0.227 0.000 -0.284 0.000 -0.341 0.000 -0.398 0.000 -0.454 0.000 -0.511 0.000 -0.568 0.000 -0.625 0.000 -0.682 0.000 -0.738 0.000 -0.795 0.000 -0.852 0.000 -0.909 0.000 -0.966 0.000 -1.022 0.000 -1.079 0.000 -1.136 0.000 -1.193 0.000 -1.250 0.000 -1.306 0.000 -1.363 0.000 -1.420 0.000 -1.477 0.000 -1.534 0.000 -1.590 0.000 -1.647 0.000 -1.704 0.000 -1.761 0.000 -1.818 0.000 -1.875 0.000 -1.931 0.000 -1.988 0.000 -2.045 0.000 -2.102 0.000 -2.159 0.000 -2.215 0.000 -2.272 0.000 -2.329 0.000 -2.386 0.000 -2.443 0.000 -2.499 0.000 -2.556 0.000 -2.613 0.000 -2.670 0.000 -2.727 0.000 -2.783 0.000 -2.840 0.000 -2.897 0.000 -2.954 0.000 -3.011 0.000 -3.067 0.000 -3.124 0.000 -3.181 0.000 -3.238 0.000 -3.295 0.000 -3.351 0.000 -3.408 0.000 -3.465 0.000 -3.522 0.000 -3.579 0.000 -3.635 0.000 -3.692 0.000 -3.749 0.000 -3.806 0.000 -3.863 0.000 -3.919 0.000 -3.976 0.000 -4.033 0.000 -4.090 0.000 -4.147 0.000 -4.203 0.000 -4.260 0.000 -4.317 0.000 -4.374 0.000 -4.431 0.000 -4.487 0.000 -4.544 0.000 -4.601 0.000 -4.658 0.000 -4.715 0.000 -4.771 0.000 -4.828 0.000 -4.885 0.000 -4.942 0.000 -4.999 0.000 -5.056 0.000 -5.112 0.000 -5.169 0.000 -5.226 0.000 -5.283 0.000 -5.340 0.000 -5.396 0.000 -5.453 0.000 -5.510 0.000 -5.567 0.000 -5.624 0.000 -5.680 0.000 -5.737 0.000 -5.794 0.000 -5.851 0.000 -5.908 0.000 -5.964 0.000 -6.021 0.000 -6.078 0.000 -6.135 0.000 -6.192 0.000 -6.248 0.000 -6.305 0.000 -6.362 0.000 -6.419 0.000 -6.476 0.000 -6.532 0.000 -6.589 0.000 -6.646 0.000 -6.703 0.000 -6.760 0.000 -6.816 0.000 -6.873 0.000 -6.930 0.000 -6.987 0.000 -7.044 0.000 -7.100 0.000 -7.157 0.000 -7.214 0.000 -7.271 0.000 -7.328 0.000 -7.384 0.000 -7.441 0.000 -7.498 0.000 -7.555 0.000 -7.612 0.000 -7.668 0.000 -7.725 0.000 -7.782 0.000 -7.839 0.000 -7.896 0.000 -7.952 0.000 -8.009 0.000 -8.066 0.000 -8.123 0.000 -8.180 0.000 -8.237 0.000 -8.293 0.000 -8.350 0.000 -8.407 0.000 -8.464 0.000 -8.521 0.000 -8.577 0.000 -8.634 0.000 -8.691 0.000 -8.748 0.000 -8.805 0.000 -8.861 0.000 -8.918 0.000 -8.975 0.000 -9.032 0.000 -9.089 0.000 -9.145 0.000 -9.202 0.000 -9.259 0.000 -9.316 0.000 -9.373 0.000 -9.429 0.000 -9.486 0.000 -9.543 0.000 -9.600 0.000 -9.657 0.000 -9.713 0.000 -9.770 0.000 -9.827 0.000 -9.884 0.000 -9.941 0.000 -9.997 0.000 -10.054 0.000 -10.111 0.000 -10.168 0.000 -10.225 0.000 -10.281 0.000 -10.338 0.000 -10.395 0.000 -10.452 0.000 -10.509 0.000 -10.565 0.000 -10.622 0.000 -10.679 0.000 -10.736 0.000 -10.793 0.000 -10.849 0.000 -10.906 0.000 -10.963 0.000 -11.020 0.000 -11.077 0.000 -11.133 0.000 -11.190 0.000 -11.247 0.000 -11.304 0.000 -11.361 0.000 -11.417 0.000 -11.474 0.000 -11.531 0.000 -11.588 0.000 -11.645 0.000 -11.702 0.000 -11.758 0.000 -11.815 0.000 -11.872 0.000 -11.929 0.000 -11.986 0.000 -12.042 0.000 -12.099 0.000 -12.156 0.000 -12.213 0.000 -12.270 0.000 -12.326 0.000 -12.383 0.000 -12.440 0.000 -12.497 0.000 -12.554 0.000 -12.610 0.000 -12.667 0.000 -12.724 0.000 -12.781 0.000 -12.838 0.000 -12.894 0.000 -12.951 0.000 -13.008 0.000 -13.065 0.000 -13.122 0.000 -13.178 0.000 -13.235 0.000 -13.292 0.000 -13.349 0.000 -13.406 0.000 -13.462 0.000 -13.519 0.000 -13.576 0.000 -13.633 0.000 -13.690 0.000 -13.746 0.000 -13.803 0.000 -13.860 0.000 -13.917 0.000 -13.974 0.000 -14.030 0.000 -14.087 0.000 -14.144 0.000 -14.201 0.000 -14.258 0.000 -14.314 0.000 -14.371 0.000 -14.428 0.000 -14.485 0.000 -14.542 0.000 -14.598 0.000 -14.655 0.000 -14.712 0.000 -14.769 0.000 -14.826 0.000 -14.883 0.000 -14.939 0.000 -14.996 0.000 -15.053 0.000 -15.110 0.000 -15.167 0.000 -15.223 0.000 -15.280 0.000 -15.337 0.000 -15.394 0.000 -15.451 0.000 -15.507 0.000 -15.564 0.000 -15.621 0.000 -15.678 0.000 -15.735 0.000 -15.791 0.000 -15.848 0.000 -15.905 0.000 -15.962 0.000 -16.019 0.000 -16.075 0.000 -16.132 0.000 -16.189 0.000 -16.246 0.000 -16.303 0.000 -16.359 0.000 -16.416 0.000 -16.473 0.000 -16.530 0.000 -16.587 0.000 -16.643 0.000 -16.700 0.000 -16.757 0.000 -16.814 0.000 -16.871 0.000 -16.927 0.000 -16.984 0.000 -17.041 0.000 -17.098 0.000 -17.155 0.000 -17.211 0.000 -17.268 0.000 -17.325 0.000 -17.382 0.000 -17.439 0.000 -17.495 0.000 -17.552 0.000 -17.609 0.000 -17.666 0.000 -17.723 0.000 -17.779 0.000 -17.836 0.000 -17.893 0.000 -17.950 0.000 -18.007 0.000 -18.064 0.000 -18.120 0.000 -18.177 0.000 -18.234 0.000 -18.291 0.000 -18.348 0.000 -18.404 0.000 -18.461 0.000 -18.518 0.000 -18.575 0.000 -18.632 0.000 -18.688 0.000 -18.745 0.000 -18.802 0.000 -18.859 0.000 -18.916 0.000 -18.972 0.000 -19.029 0.000 -19.086 0.000 -19.143 0.000 -19.200 0.000 -19.256 0.000 -19.313 0.000 -19.370 0.000 -19.427 0.000 -19.484 0.000 -19.540 0.000 -19.597 0.000 -19.654 0.000 -19.711 0.000 -19.768 0.000 -19.824 0.000 -19.881 0.000 -19.890 0.000 \ No newline at end of file +0.172 0.000 +0.229 0.000 +0.286 0.000 +0.343 0.000 +0.401 0.000 +0.458 0.000 +0.515 0.000 +0.572 0.000 +0.630 0.000 +0.687 0.000 +0.744 0.000 +0.801 0.000 +0.858 0.000 +0.916 0.000 +0.973 0.000 +0.996 0.000 \ No newline at end of file diff --git a/main.cpp b/main.cpp index 3b23a01..cb57821 100755 --- a/main.cpp +++ b/main.cpp @@ -1,4 +1,4 @@ -double version=2.42; +double version=2.43; /****************************************************************************\ * Signal Server: Server optimised SPLAT! by Alex Farrant * ****************************************************************************** diff --git a/models.cpp b/models.cpp index 08f386e..ef02b14 100644 --- a/models.cpp +++ b/models.cpp @@ -88,7 +88,7 @@ modes 1 = URBAN, 2 = SUBURBAN, 3 = OPEN if(f<150 || f>1500){ printf("Error: Hata model frequency range 150-1500MHz\n"); - return 0; + exit(EXIT_FAILURE); } float lRxH = log10(11.75*RxH); float C_H = 3.2*lRxH*lRxH-4.97; @@ -123,7 +123,7 @@ http://morse.colorado.edu/~tlen5510/text/classwebch3.html */ if(f<150 || f>2000){ printf("Error: COST231 Hata model frequency range 150-2000MHz\n"); - return 0; + exit(EXIT_FAILURE); } int C = 3; // 3dB for Urban @@ -157,40 +157,49 @@ double SUIpathLoss(float f,float TxH, float RxH, float d, int mode){ mode 1 = Hilly + trees mode 2 = Flat + trees OR hilly + light foliage mode 3 = Flat + light foliage + http://www.cl.cam.ac.uk/research/dtg/lce-pub/public/vsa23/VTC05_Empirical.pdf */ d=d*1000; // km to m if(f<1900 || f>11000){ printf("Error: SUI model frequency range 1.9-11GHz\n"); - return 0; + exit(EXIT_FAILURE); } + // Terrain mode A is default double a = 4.6; double b = 0.0075; - double c = 12.6; - double s = 10.6; + double c = 12.6; + double s = 10.6; // Optional fading value int XhCF = -10.8; + if(mode==2){ a=4.0; b=0.0065; c=17.1; - s=9.6; + s=6; // average } if(mode==3){ a=3.6; b=0.005; c=20; - s=8.2; + s=3; // Optimistic XhCF = -20; } 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); return A + (10*y*log10(d/d0)) + Xf + Xh + s; } double ECC33pathLoss(float f,float TxH, float RxH, float d, int mode){ + + if(f<700 || f>3500){ + printf("Error: ECC33 model frequency range 700-3500MHz\n"); + exit(EXIT_FAILURE); + } + // MHz to GHz f=f/1000; @@ -206,19 +215,29 @@ double ECC33pathLoss(float f,float TxH, float RxH, float d, int mode){ } double EricssonpathLoss(float f,float TxH, float RxH, float d, int mode){ - double a0=36.2, a1=30.2, a2=12, a3=0.1; - if(mode==2){ // Med loss + /* + http://research.ijcaonline.org/volume84/number7/pxc3892830.pdf + AKA Ericsson 9999 model + */ + // Default is Urban which bizarrely has lowest loss + double a0=36.2, a1=30.2, a2=-12, a3=0.1; + + if(f<150 || f>3500){ + printf("Error: Ericsson9999 model frequency range 150-3500MHz\n"); + exit(EXIT_FAILURE); + } + + if(mode==2){ // Suburban / Med loss a0=43.2; a1=68.93; } - if(mode==3){ // Low loss + if(mode==1){ // "Rural" but has highest loss according to Ericsson. a0=45.95; a1=100.6; } double g1 = (11.75 * RxH) * (11.75 * RxH); double g2 = (44.49 * log10(f)) - 4.78 * ((log10(f) * log10(f))); - double PL = a0+ a1 * log10(d) + a2 * log10(TxH) + a3 * log10(TxH) * log10(d) - (3.2 * log10(g1)) + g2; - return PL; + return a0 + a1 * log10(d) + a2 * log10(TxH) + a3 * log10(TxH) * log10(d) - (3.2 * log10(g1)) + g2; } double FSPLpathLoss(float f, float d){ diff --git a/signalserver b/signalserver index f23230a78a1ad66fd852872ab4d756fc14dfe1b1..75f94519a3e6137d39543b08d725151b54c1ea0a 100755 GIT binary patch delta 41644 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 BUl0HQ delta 41553 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