File Exchange

image thumbnail


version (65.7 KB) by Grant Lohsen
A class that contains two RF propagation loss models; longley-rice and hata


Updated 15 Jun 2016

View License

-An implementation of a point to point Longley-Rice model in matlab based on FORTAN and C implementation from NTIS ITS:
-A Hata model for cellular

-a velocity of propagation algorithm from "Compensating for propagation errors in elecgtromagnetic measuring systems" by Sidney Bertram. Published in Volume 8 issue 3, march 1971 pg 58-63 of IEEE Spectrum.

Comments and Ratings (11)

Smith Bob

Great job Grant and wencheng zuo! However owing to the obstacles described earlier of Alejandro , can you elaborate on how to use this code? Or send an email to:

Thanks for your code, which has been successfully debugged

Great job! But as with the problem described earlier, can you elaborate on how to use this code? Or send an email to:

I seem to also get an error like that described by Sang Woo

>> CL_Propagation_RF_LR
Invalid default value for property 'cID' in class 'CL_Propagation_RF_LR':
Undefined variable "signalType_" or class "signalType_.LR".

Not sure why it is not working, could someone help?

sang woo

Great work Grant. This is just what i need. However, i got problem to activate code. Example
obj = CL_Propagation_RF_LR; => error at "cID = signalType_.LR;" error said signalType_.LR is not defind.
If i remove "cID = signalType_.LR;" and conduct obj.test then Constants_.Z0 parameter is not found.

Also operation of point to point also not working due to some input value problem.
I confuses with elevation data input type. other i just input simple values but does not working.

struct_Input.Frequency = 1000000000;
struct_Input.Elevation = 10; %%.Elevation - terrain elevation profile, (list of points) (m)
struct_Input.Resolution = 1000;
struct_Input.TX_Height = 100;
struct_Input.RX_Height = 1;
struct_Input.eps = 1;
struct_Input.sgm =1;
struct_Input.surfref = 1;
struct_Input.Climate = 1;
struct_Input.Polarization =1;
struct_Input.Confidence = 0.99;
struct_Input.Reliability = 0.99;

Neal: obj is due to this class being object oriented. see this for more info:

as to the rest of the care and feeding of the function please see my comment to Stylianos

Neal Seidl

Hi Grant,

Can you please elaborate on how to setup and call point_to_point()? What is the parameter "obj"? Thanks!

Grant Lohsen

Stylianos, for Longley-Rice prop loss use the point_to_point function and feed as detailed in the file

%Point to Point Longley-Rice
function struct_Output = point_to_point(obj,struct_Input)
%Function Name:
% point_to_point
% struct_Input - Input containing the fields:
% .Frequency - Frequency to calculate loss at (Hz)
% .Elevation - terrain elevation profile, (list of points) (m)
% .Resolution - terrain input resolution (distance b/t points) (m)
% .TX_Height - Transmit antenna height above ground (m)
% .RX_Height - Recieve antenna height above ground (m)
% .eps - Soil dielectric
% .sgm - Surface conductivity
% .surfref - Surface refractivity
% .Climate - Climate, 1-Equitorial, 2-Continental Subtropical, 3-Maritime Tropical, 4-Desert
% 5-Continental Temperate, 6-Maritime Temperate Over Lane 7-Maritime Temperate Over Sea
% .Polarization - 1 is vertical, 0 is horizontal.
% .Confidence - confidence for statistical analysis (.01 to .99)
% .Reliability - Reliability to calculate statistics for (.01 to .99)
% struct_Output - Output containing the fields:
% .dbloss - Final Output loss (dB)
% .error_ID - Error ID, 0 = no error, 1 = may be out of range, 3 = out of range
% .error_msg - Detailed error info (string)
%Functions Called:
% fLongleyRicePropSetup
% fLongleyRicePointtoPoint
% fAttVariability
% Calculate path loss using the Longley-Rice Irregular terrain
% model.


I don't see how it works

MATLAB Release Compatibility
Created with R2012b
Compatible with any release
Platform Compatibility
Windows macOS Linux