Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Anchor
A17.3
A17.3
The Hata model (also referred to as Okumura-Hata) was originally developed for non-Line-Ofof-Sight (Non-LOSLoS) paths in urban environments typical of mobile services - that is with low-height mobile terminals moving in cluttered environment. In the SEAMCAT propagation library, you the user will find it under the name “Extended Hata”.

The Hata-SRD variation was developed in CEPT within the Project Team SE24 for studies of Short Range Devices (SRD). The basis for modification was an assumption that although SRD devices are usually operated at low antenna heights (typically person-carried devices, i.e. with antenna height of ca. 1.5 m), but the interference would usually occur at relatively short distances (up to 100 m or so) when direct-Line-Ofof-Sight (LOSLoS) or near-direct-LOS LoS might be assumed. Therefore the Hata-SRD model includes adjusted expression of a certain the parameter b(Hb), which in the standard Hata model would introduce significant extra additional path loss when transmitter antenna height is much less than 30 m. It was found that this extra additional loss is not justified in the considered SRD scenarios of short range & direct-LOS LoS communication/coupling. In the SEAMCAT propagation library, you the user will find it the model under the name  “Extend Hata - SRD”

...



Image Added

Image RemovedImage Removed

Image Added

Anchor
F468F473F468
F473
Figure 468473: SEAMCAT Interface to the extended Extended Hata propagation model (general model on the left) and its adapted version for SRDs (on the right)


 

Anchor
T078T079T078
T079
Table 7879: Description of the Extended Hata and Extended Hata (SRD) models

...


Description

Symbol

Type

Unit

Comments

Variation

 

 

 




Variation in path loss takes into account the uncertainty of building design, furniture, room size, etc.

General environment

 

 

 




Environment of the propagation: urban, rural, suburban

Propagation environment

 

 

 




Environment of the propagation: Below roof, Above roof (used for standard deviation calculations)

ONLY USED IF VARIATION OPTION IS CHECKED

Wall loss(indoor - indoor)

 


Scalar

S

dB

 


Wall loss std dev (indoor - indoor)

 


Scalar

S

dB

 


Loss between adjacent floor

 


Scalar

S

dB

 

 


Empirical parameters:

b

 

 



This parameter is used for the necessary corrections to be performed in the local environments if the transmitter and receiver are located in the same building in order to apply the correct wall attenuation between them. The snippet of code below this table indicates the exact calculation performed within SEAMCAT.

Size of the

room (d

room

)

droom

S

Scalar

m

 


Height of each floor

hfloor

S

Scalar

m

 

 

...



Method in SEAMCAT to perform corrections to the local environments, depending on the location of the transmitter and receiver (i.e. within the same building or in different buildings):


Code Block
 protected static LocalEnvCorrections localEnvCorrections(LocalEnvCorrections localEnvironmentCorrections,LinkResult linkResult,
            double floorHeight,double roomSize, double wiLoss, double floorLoss, double empiricalParam, double wiStdDev) {

        //LocalEnvCorrections result = new LocalEnvCorrections(0, localEnvironmentCorrections.rStdDev);
        LocalEnvironmentResult rxEnv = linkResult.rxAntenna().getLocalEnvironment();
        LocalEnvironmentResult txEnv = linkResult.txAntenna().getLocalEnvironment();
        // CAUTION : do NOT permute the order of the tests
        if ( rxEnv.getEnvironment() == Indoor && txEnv.getEnvironment() == Indoor) {
            if ( linkResult.isTxRxInSameBuilding() ) {
                // Transmitter and receiver are located in the same building
                // specific calculation : replaces standard calculation
                double rK;

                rK = Math.abs(
                        Math.floor(linkResult.txAntenna().getHeight()/ floorHeight) -
                        Math.floor(linkResult.rxAntenna().getHeight()/ floorHeight)
                );

                double d1 = linkResult.txAntenna().getHeight() - linkResult.rxAntenna().getHeight();
                double realDistance = Math.sqrt( (d1*d1) + (linkResult.getTxRxDistance()*linkResult.getTxRxDistance()) );

                 localEnvironmentCorrections.rMedianLoss = -27.6
                        + 20.0
                        * Math.log10(1000 * realDistance)
                         +  20.0
                        * Math.log10(linkResult.getFrequency())
                        + Math.floor(1000 * linkResult.getTxRxDistance() / roomSize)
                        * wiLoss
                        + Math.pow(rK,
                        ((rK + 2.0) / (rK + 1.0) - empiricalParam))
                        * floorLoss;
                localEnvironmentCorrections.rStdDev = wiStdDev;
            } else {
                // Transmitter and receiver are located in different buildings
                // Calculation is similar to indoor-outdoor case with doubled
                // corrections
                localEnvironmentCorrections.rMedianLoss += rxEnv.getWallLoss() + txEnv.getWallLoss();
                localEnvironmentCorrections.rStdDev = Math
                        .sqrt(
                                localEnvironmentCorrections.rStdDev * localEnvironmentCorrections.rStdDev +
                                        ((txEnv.getWallLossStdDev() * txEnv.getWallLossStdDev()) +
                                                (rxEnv.getWallLossStdDev() * rxEnv.getWallLossStdDev())));
            }
        } else if (rxEnv.getEnvironment() == Indoor && txEnv.getEnvironment() == Outdoor) {
            localEnvironmentCorrections.rMedianLoss += rxEnv.getWallLoss();
            localEnvironmentCorrections.rStdDev = Math.sqrt(localEnvironmentCorrections.rStdDev * localEnvironmentCorrections.rStdDev +
                    rxEnv.getWallLossStdDev() * rxEnv.getWallLossStdDev());
        } else if (rxEnv.getEnvironment() == Outdoor && txEnv.getEnvironment() == Indoor) {
            localEnvironmentCorrections.rMedianLoss += txEnv.getWallLoss();
            localEnvironmentCorrections.rStdDev = Math.sqrt(localEnvironmentCorrections.rStdDev * localEnvironmentCorrections.rStdDev +
                    txEnv.getWallLossStdDev()*txEnv.getWallLossStdDev());
        }
        // outdoor outdoor => no correction
        return localEnvironmentCorrections;
		}