source: proiecte/ptvs/src/vnsim/network/propagation/TwoRay.java @ 31

Last change on this file since 31 was 31, checked in by (none), 14 years ago
File size: 1.4 KB
Line 
1/************************************************************************************
2 * Copyright (C) 2008 by Politehnica University of Bucharest and Rutgers University
3 * All rights reserved.
4 * Refer to LICENSE for terms and conditions of use.
5 ***********************************************************************************/
6//Petroaca - two ray propagation model
7package vnsim.network.propagation;
8
9import vnsim.map.object.Globals;
10import vnsim.network.propagation.FreeSpace;
11
12public class TwoRay
13{
14        private static double Hr=Globals.AH;
15        private static double Ht=Globals.AH;
16        private static double crossoverDistance=(4*Math.PI*Ht*Hr)/Globals.DSRC_LAMBDA;
17       
18        public static double getPr(double Pt,double R)
19        {
20                if(Pt<=0.0 || R<=0.0)
21                        return -1;
22               
23                if(R<=crossoverDistance)
24                {
25                        return FreeSpace.getPr(Pt,R);
26                }
27                else
28                {
29                        double aux=Math.pow(Ht,2)*Math.pow(Hr,2);
30                        double R4=Math.pow(R,4);
31                       
32                        return (Pt*Math.pow(Globals.ANTENNA_GAIN,2)*aux)/(R4*Globals.SYSTEM_LOSS);
33                }
34        }
35       
36        public static double getPrAlt(double Pt,double R)
37        {
38                if(Pt<=0 || R<=0)
39                        return -1;
40               
41                double pathloss = -(2*Globals.ANTENNA_GAIN);
42                double freeSpace = (4.0 * Math.PI * R) / Globals.DSRC_LAMBDA;
43                double planeEarth = (R * R) / (Hr*Ht);
44
45                if (planeEarth > freeSpace){
46                        pathloss += 20.0 * Math.log10(planeEarth);
47                }else{
48                        pathloss += 20.0 * Math.log10(freeSpace);
49                }
50           
51                return Pt-pathloss;
52        }
53}
Note: See TracBrowser for help on using the repository browser.