This code repository contains a C++ software implementation of Recommendation ITU-R P.452 with a prediction procedure for the evaluation of interference between stations on the surface of the Earth at frequencies above about 0.1 GHz.
This implementation corresponds to the original reference MATLAB/Octave implementation of Recommendation ITU-R P.452-18 approved by ITU-R Working Party 3M and published by Study Group 3 on ITU-R SG 3 Software, Data, and Validation Web Page.
File/Folder | Description |
---|---|
/src/P452.cpp |
C++ implementation of Recommendation ITU-R P.452-18 |
/src/maps/ |
Subfolder containing data maps provided with Recommendation ITU-R P.452 (see Integrating ITU Digital Products). |
/tests/ |
Folder containing validation tests against the reference MATLAB/Octave implementation from ITU-R SG 3 Software, Data, and Validation Web Page |
This software uses ITU digital products that are integral part of Recommendations. These products must not be reproduced or distributed without explicit written permission from the ITU.
Download and extract the required maps to ./src/maps
:
- From ITU-R P.452-18:
DN50.TXT
N050.TXT
- Ensure all files are placed in
./src/maps
before running the code.
Lb = tl_p452(maps, f, p, d, h, g, zone, htg, hrg, phit_e, phit_n, phir_e, phir_n, Gt, Gr, pol, dct, dcr, press, temp);
Variable | Type | Units | Limits | Description |
---|---|---|---|---|
maps |
class P452DigitalMaps |
Object containing all the digital maps (DN50, N050) necessary for computation | ||
f |
double | GHz | ~0.1 ≤ f ≤ ~50 |
Frequency |
p |
double | % | 0.001 ≤ p ≤ 50 |
Time percentage for which the calculated basic transmission loss is not exceeded |
d |
vector<double> |
km | 0 < max(d) ≤ ~10000 |
Terrain profile distances (in the ascending order from the transmitter) |
h |
vector<double> |
m (asl) | Terrain profile heights | |
g |
vector<double> |
m (asl) | Clutter + Terrain profile heights | |
zone |
vector<int> |
1 - Coastal Land, 2 - Inland, 3 - Sea | Radio-climatic zone types | |
htg |
double | m | Tx antenna height above ground level | |
hrg |
double | m | Rx antenna height above ground level | |
phit_e |
double | deg | -180 ≤ phit_e ≤ 180 |
Tx Longitude |
phit_n |
double | deg | -90 ≤ phit_n ≤ 90 |
Tx Latitude |
phir_e |
double | deg | -180 ≤ phir_e ≤ 180 |
Rx Longitude |
phir_n |
double | deg | -90 ≤ phir_n ≤ 90 |
Rx Latitude |
Gt Gr |
double | dBi | Tx/Rx antenna gain in the direction of the horizon saalong the great-circle interference path. | |
pol |
int | pol = 1, 2 |
Polarization of the signal: 1 - horizontal, 2 - vertical | |
dct |
double | km | dct ≥ 0 |
Distance over land from the Tx antenna to the coast along the great-circle interference path. To be set to zero for a terminal on a ship or sea platform. |
dcr |
double | km | dcr ≥ 0 |
Distance over land from the Rx antenna to the coast along the great-circle interference path. To be set to zero for a terminal on a ship or sea platform. |
press |
double | hPa | Dry air pressure. | |
temp |
double | deg C | Air temperature. |
Variable | Type | Units | Description |
---|---|---|---|
Lb |
double | dB | Basic transmission loss |
Validation can be performed by compiling the code and runing the tests as follows
./build.sh
The code was tested and runs on:
- Apple clang version 4.0.0 (tags/RELEASE_400/final) on x86_64-apple-darwin22.6.0
The code uses googletest for automatised testing.