Code Monkey home page Code Monkey logo

ehata's Introduction

The Extended Hata (eHata) Urban Propagation Model

Description

This source repository contains a C language reference version of the eHata urban propagation model. The model was developed by NTIA and used in NTIA Technical Report TR-15-517, "3.5 GHz Exclusion Zone Analyses and Methodology," June 2015 [TR-15-517] for the 3.5 GHz exclusion zone analysis.

Input Parameters

  • float pfl[] : A terrain profile line. EHata uses the ITM-method of formatting terrain information, in that:
    • float pfl[0] : Number of points + 1
    • float pfl[1] : Resolution, in meters
    • float pfl[i] : Elevation above sea level, in meters
  • float f__mhz : The frequency, in MHz
  • float h_m__meter : The height of the mobile, in meters.
  • float h_b__meter : The height of the base station, in meters.
  • int enviro_code : The NLCD environment code

Output Parameters

  • float plb: The path loss, in dB.
  • InterValues intervalues : [Optional] A data structure containing intermediate values from the eHata calculations.

Function Signatures

  • void ExtendedHata(float pfl[], float f__mhz, float h_b__meter, float h_m__meter, int enviro_code, float *plb)
  • void ExtendedHata_DBG(float pfl[], float f__mhz, float h_b__meter, float h_m__meter, int enviro_code, float *plb, InterValues *interValues)

Dependencies

The eHata reference implementation is only dependent on the math.lib library.

Intermediate Values

When calling the ExtendedHata_DBG() function, the function will populate the InterValues data structure with intermediate values from the eHata calculations. Those values are as follows:

  • float d_bp__km: The breakpoint distance, in km.
  • float att_1km: Attenuation at 1 km.
  • float att_100km: Attenuation at 100 km.
  • float h_b_eff__meter: Effective height of the base station, in meters.
  • float h_m_eff__meter: Effective height of the mobile, in meters.
  • float pfl10__meter: 10% terrain quantile, in meters.
  • float pfl50__meter: 50% terrain quantile, in meters.
  • float pfl90__meter: 90% terrain quantile, in meters.
  • float deltah__meter: Terrain irregularity parameter.
  • float d__km: Total path distance, in km.
  • float d_hzn__meter[2]: Horizon distances, in meters.
  • float h_avg__meter[2]: Average heights, in meters.
  • float theta_m__mrad: Slope of the terrain at the at the mobile, in millirads
  • float beta: Percentage of path that is sea.
  • int iend_ov_sea: Flag specifying which end is over the sea.
  • float hedge_tilda: Horizon correction factor.
  • bool single_horizon: Flag for specifying number of horizons.
  • float slope_max: Intermediate value when calculating the mobile terrain slope.
  • float slope_min: Intermediate value when calculating the mobile terrain slope.
  • int trace_code: Trace flag showing program flow.

Notes on Code Style

  • In general, variables follow the naming convention in which a single underscore denotes a subscript (pseudo-LaTeX format), where a double underscore is followed by the units, i.e. h_m__meter.
  • Variables are named to match their corresponding mathematical variables in the underlying technical references, i.e., gamma_1.
  • Most values are calculated and stored in the InterValues data structure that is passed between function calls. In general, only the correction factor functions return their result as a value.

References

  • [Okumura, 1968] Okumura, Y., Ohmori, E., Kawano, T., Fukuda, K. "Field Strength and Its Variability in VHF and UHF Land-Mobile Radio Service", Review of the Electrical Communication Laboratory, Vol. 16, Num 9-10. Sept-Oct 1968. pp. 825-873.
  • [Hata, 1980] Hata, M. "Empirical Formula for Propagation Loss in Land Mobile Radio Services", IEEE Transactions on Vehicular Technology, Vol VT-29, Num 3.
    Aug 1980. pp 317-325. DOI: 10.1109/T-VT.1980.23859
  • TR-15-517 Drocella, E., Richards, J., Sole, R., Najmy, F., Lundy, A., McKenna, P. "3.5 GHz Exclusion Zone Analyses and Methodology", NTIA Report 15-517, June 2015.

Configuring and Building

This project was developed and built using Microsoft Visual Studio 2015, using the Visual Studio 2015 (v140) C compiler. By default, the project file is configured to build with Runtime Library set to Multi-threaded (/MT), thus removing the requirement that the target machine have the matching version of the Microsoft C Redistributable installed.

Test and Validation

This code repository contains a representative set of test cases to validate the compiled software against. The /test/ folder contains:

  • test-inputs.csv : A csv file containing inputs, locations, and expected path loss. It also contains the name of the corresponding pfl file
  • /pfls/ : A directory containing pfls for the test cases

The pfls were generated using the re-sampled terrain data that can be downloaded from here: https://www.its.bldrdoc.gov/resources/radio-propagation-software/resampled-terrain-data/re-sampled-terrain-data.aspx

Legal

Please read the LICENSE.md file

ehata's People

Contributors

wkozmantia avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.