mirror of
https://gitlab.science.ru.nl/mthesis-edeboone/m-thesis-introduction.git
synced 2024-12-22 19:43:30 +01:00
30 lines
643 B
Python
30 lines
643 B
Python
|
"""
|
||
|
Library for this simulation
|
||
|
"""
|
||
|
import numpy as np
|
||
|
|
||
|
from earsim import Antenna
|
||
|
|
||
|
def sine_beacon(f, t, t0=0, amplitude=1):
|
||
|
return amplitude * np.sin(2*np.pi*f*(t-t0))
|
||
|
|
||
|
|
||
|
def distance(x1, x2):
|
||
|
"""
|
||
|
Calculate the Euclidean distance between two locations x1 and x2
|
||
|
"""
|
||
|
|
||
|
assert type(x1) in [Antenna]
|
||
|
x1 = np.array([x1.x, x1.y, x1.z])
|
||
|
|
||
|
assert type(x2) in [Antenna]
|
||
|
x2 = np.array([x2.x, x2.y, x2.z])
|
||
|
|
||
|
return np.sqrt( np.sum( (x1-x2)**2 ) )
|
||
|
|
||
|
def beacon_from(tx, rx, f, t=0, t0=0, c_light=3e8, **kwargs):
|
||
|
dist = distance(tx,rx)/c_light
|
||
|
t0 = t0 + dist/c_light
|
||
|
|
||
|
return sine_beacon(f, t, t0=t0, **kwargs)
|