def __init__(self, position, PHY, velocity=10, antennas=2): PhysicalEntity.__init__(self, position, velocity) self._baseStations = { } # list of base stations. Keeps track of pathloss data and similar. self.SINR = None # The mobile has only one SINR self._BS = None # Store the BS with the best SINR here. This is the BS the mobile is connected to. self._cell = None # Store the cell the best SINR here. This is the cell the mobile is connected to. self.antennas = antennas # number of device antennas for MIMO capacity self.PHY = PHY self.noisePower = None # system noise power over entire bandwidth self.interferencePower = None self.noiseIfPower = None # the perceived noise power over the system bandwidth when all undesired BS send at PMax # self.OFDMA_assignedCSI = None # numpy array of CSI from assigned BS on each resource self.OFDMA_interferenceCovar = np.empty( [self.antennas, 2, self.PHY.numFreqChunks, self.PHY.numTimeslots], dtype=complex) self.OFDMA_EC = np.empty( [antennas, 2, self.PHY.numFreqChunks, self.PHY.numTimeslots], dtype=complex ) # effective channel including noise and interference. H*Cn*Hh on each RB TODO: remove magic number cell antennas self.OFDMA_effSINR = np.empty( [max(antennas, 2), self.PHY.numFreqChunks, self.PHY.numTimeslots] ) # unit power SINR on each spatial stream/channel. real-valued positive self.id_ = Mobile.id_ Mobile.id_ += 1
def __init__(self, position, typ='macro', p0=0, m=1, pS=0, antennas=2): # power in dBm PhysicalEntity.__init__(self, position) self.typ = typ self._cells = None # If sectored, the BS serves multiple. This is a list of cells. self.p0 = p0 # power consumption at zero transmission self.m = m # power consumption load factor. How consumption rises with transmission power self.pS = pS # power consumption in sleep mode self.id_ = BaseStation.id_ BaseStation.id_ += 1
def __init__(self, position, PHY, velocity=10, antennas=2): PhysicalEntity.__init__(self,position, velocity) self._baseStations = {} # list of base stations. Keeps track of pathloss data and similar. self.SINR = None # The mobile has only one SINR self._BS = None # Store the BS with the best SINR here. This is the BS the mobile is connected to. self._cell = None # Store the cell the best SINR here. This is the cell the mobile is connected to. self.antennas = antennas # number of device antennas for MIMO capacity self.PHY = PHY self.noisePower = None # system noise power over entire bandwidth self.interferencePower = None self.noiseIfPower = None # the perceived noise power over the system bandwidth when all undesired BS send at PMax # self.OFDMA_assignedCSI = None # numpy array of CSI from assigned BS on each resource self.OFDMA_interferenceCovar = np.empty([self.antennas, 2, self.PHY.numFreqChunks, self.PHY.numTimeslots], dtype=complex) self.OFDMA_EC = np.empty([antennas, 2, self.PHY.numFreqChunks, self.PHY.numTimeslots], dtype=complex) # effective channel including noise and interference. H*Cn*Hh on each RB TODO: remove magic number cell antennas self.OFDMA_effSINR = np.empty([max(antennas, 2), self.PHY.numFreqChunks, self.PHY.numTimeslots]) # unit power SINR on each spatial stream/channel. real-valued positive self.id_ = Mobile.id_ Mobile.id_ += 1