def received_power(self, tx_power, freq, tx_pos_gps, rx_pos_gps): w = 3e8 / freq # Wavelength in meters C = w**2 / ((4 * np.pi)**2 * self.L) d = util.distance(tx_pos_gps, rx_pos_gps) if d < w: return tx_power return tx_power * C / (d**2)
def received_power(self, tx_power, freq, tx_pos_gps, rx_pos_gps): w = 3e8 / freq # Wavelength in meters d = util.distance(tx_pos_gps, rx_pos_gps) if d < w: return tx_power h_t = tx_pos_gps[2] h_r = rx_pos_gps[2] return tx_power * h_t**2 * h_r**2 / (d**4 * self.L)
def p_reception(self, tx_power, freq, tx_pos_gps, rx_pos_gps, rx_sensitivity): d = util.distance(tx_pos_gps, rx_pos_gps) h_t = tx_pos_gps[2] h_r = rx_pos_gps[2] CR = self.communication_range(rx_sensitivity, tx_power, freq, h_t, h_r) p_rx = self.nakagami(d, CR) return p_rx