Skip to content

Commit

Permalink
Add hard coded params to sim_params instead
Browse files Browse the repository at this point in the history
  • Loading branch information
edwardoughton committed Aug 17, 2019
1 parent 94a4de7 commit 52efcfc
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 38 deletions.
3 changes: 3 additions & 0 deletions scripts/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -881,6 +881,9 @@ def run_simulator(simulation_parameters, spectrum_portfolio,
'rx_losses': 4,
'rx_misc_losses': 4,
'rx_height': 1.5,
'building_height': 20,
'street_width': 20,
'above_roof': 0,
'network_load': 50,
'percentile': 10,
'sectorization': 3,
Expand Down
56 changes: 19 additions & 37 deletions src/pysim5g/system_simulator.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,23 +89,18 @@ def estimate_link_budget(self, frequency, bandwidth,
"""
results = []

seed_value1 = simulation_parameters['seed_value1']
seed_value2 = simulation_parameters['seed_value2']
iterations = simulation_parameters['iterations']
los_breakpoint_m = simulation_parameters['los_breakpoint_m']

for receiver in self.receivers.values():

path_loss, r_model, r_distance, type_of_sight = self.estimate_path_loss(
receiver, frequency, environment, seed_value1, iterations, los_breakpoint_m
receiver, frequency, environment, simulation_parameters
)

received_power = self.estimate_received_power(self.transmitter,
receiver, path_loss
)

interference, i_model, ave_distance, ave_inf_pl = self.estimate_interference(
receiver, frequency, environment, seed_value2, iterations, los_breakpoint_m)
receiver, frequency, environment, simulation_parameters)

noise = self.estimate_noise(
bandwidth
Expand Down Expand Up @@ -150,8 +145,8 @@ def estimate_link_budget(self, frequency, bandwidth,
return results


def estimate_path_loss(self, receiver, frequency,
environment, seed_value, iterations, los_breakpoint_m):
def estimate_path_loss(self, receiver, frequency,environment,
simulation_parameters):
"""
Function to calculate the path loss between a transmitter
Expand Down Expand Up @@ -200,32 +195,25 @@ def estimate_path_loss(self, receiver, frequency,
ant_height = self.transmitter.ant_height
ant_type = self.transmitter.ant_type

los_breakpoint_m = 250

if strt_distance < los_breakpoint_m :
if strt_distance < simulation_parameters['los_breakpoint_m'] :
type_of_sight = 'los'
else:
type_of_sight = 'nlos'

building_height = 20
street_width = 20
above_roof = 0
location = receiver.indoor

path_loss, model = path_loss_calculator(
frequency,
strt_distance,
ant_height,
ant_type,
building_height,
street_width,
simulation_parameters['building_height'],
simulation_parameters['street_width'],
environment,
type_of_sight,
receiver.ue_height,
above_roof,
location,
seed_value,
iterations
simulation_parameters['above_roof'],
receiver.indoor,
simulation_parameters['seed_value1'],
simulation_parameters['iterations']
)

return path_loss, model, strt_distance, type_of_sight
Expand Down Expand Up @@ -275,7 +263,7 @@ def estimate_received_power(self, transmitter, receiver, path_loss):


def estimate_interference(self, receiver, frequency, environment,
seed_value, iterations, los_breakpoint_m):
simulation_parameters):
"""
Calculate interference from other sites.
Expand Down Expand Up @@ -332,31 +320,25 @@ def estimate_interference(self, receiver, frequency, environment,
ant_height = interfering_transmitter.ant_height
ant_type = interfering_transmitter.ant_type

if interference_strt_distance < los_breakpoint_m:
if interference_strt_distance < simulation_parameters['los_breakpoint_m']:
type_of_sight = 'los'
else:
type_of_sight = 'nlos'

building_height = 20
street_width = 20
type_of_sight = type_of_sight
above_roof = 0
indoor = receiver.indoor

path_loss, model = path_loss_calculator(
frequency,
interference_strt_distance,
ant_height,
ant_type,
building_height,
street_width,
simulation_parameters['building_height'],
simulation_parameters['street_width'],
environment,
type_of_sight,
receiver.ue_height,
above_roof,
indoor,
seed_value,
iterations
simulation_parameters['above_roof'],
receiver.indoor,
simulation_parameters['seed_value2'],
simulation_parameters['iterations'],
)

received_interference = self.estimate_received_power(
Expand Down
7 changes: 6 additions & 1 deletion tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -302,9 +302,10 @@ def setup_modulation_coding_lut():
@pytest.fixture
def setup_simulation_parameters():
return {
'iterations': 50,
'iterations': 50, #make sure this is set to 50 for exact test result
'seed_value1': 1,
'seed_value2': 2,
'los_breakpoint_m': 250,
'tx_baseline_height': 30,
'tx_upper_height': 40,
'tx_power': 40,
Expand All @@ -314,6 +315,9 @@ def setup_simulation_parameters():
'rx_losses': 4,
'rx_misc_losses': 4,
'rx_height': 1.5,
'building_height': 20,
'street_width': 20,
'above_roof': 0,
'network_load': 50,
'percentile': 10,
'sectorization': 3,
Expand All @@ -324,6 +328,7 @@ def setup_simulation_parameters():
}



@pytest.fixture
def base_system(setup_transmitter, setup_interfering_transmitters,
setup_receivers, setup_site_area, setup_simulation_parameters):
Expand Down

0 comments on commit 52efcfc

Please sign in to comment.