Beispiel #1
0
    def __init__(self):
        # Base Station
        self.n_antennas = f.get_codebook().shape[
            0]  # number of transmit antennas
        self.codebook_size = f.get_codebook().shape[1]  # number of codes
        self.n_power_levels = 5  # number of discrete power levels
        self.n_actions = self.codebook_size * self.n_power_levels  # number of available actions to choose
        self.bs_power = 38  # maximum transmit power of base stations

        # Channel
        self.angular_spread = 3 / 180 * np.pi  # angular spread
        self.multi_paths = 4  # number of multi-paths
        self.rho = 0.64  # channel correlation coefficient
        self.noise_power = f.dB2num(-114)  # noise power

        # Cellular Network
        self.cell_radius = 200  # cell radius
        self.n_links = 19  # number of simulated direct links in the simulation
        self.inner_cell_radius = 10  # inner cell radius

        # Simulation
        self.slot_interval = 0.02  # interval of one time slot
        self.random_seed = 2019  # random seed to control the simulated cellular network
        self.total_slots = 100000  # total time slots in the simulation
        self.U = 5  # number of neighbors taken into consideration
Beispiel #2
0
    def __init__(self):
        # Base Station
        self.n_antennas = f.get_codebook().shape[0]
        self.codebook_size = f.get_codebook().shape[1]
        self.n_power_levels = 5
        self.n_actions = self.codebook_size * self.n_power_levels
        self.bs_power = 38

        # Channel
        self.angular_spread = 3 / 180 * np.pi
        self.multi_paths = 4
        self.rho = 0.64
        self.noise_power = f.dB2num(-114)

        # Cellular Network
        self.cell_radius = 200
        self.n_links = 19
        self.inner_cell_radius = 10

        # Simulation
        self.slot_interval = 0.02
        self.random_seed = 2020
        self.total_slots = 100000
        self.U = 5
Beispiel #3
0
    def __init__(self, location, index):

        self.location = location
        self.index = index
        self.n_antennas = Config().n_antennas
        self.dqn = DQN()
        self.max_power = f.dB2num(Config().bs_power)
        self.codebook = f.get_codebook()
        self.powerbook = np.arange(
            Config().n_power_levels) * self.max_power / (
                Config().n_power_levels - 1)
        self.code_index = random.randint(0, Config().codebook_size - 1)
        self.power_index = random.randint(0, Config().n_power_levels - 1)

        self.code = self.codebook[:, self.code_index]
        self.power = self.powerbook[self.power_index]

        self._init_params_()
Beispiel #4
0
import numpy as np
from config import Config
import random
import time
import functions as f
import scipy.io as sio
import os
os.environ['MKL_NUM_THREADS'] = '1'

c = Config()
random.seed(c.random_seed)
np.random.seed(c.random_seed)
K = c.n_antennas
M = c.n_links
p_max = f.dB2num(c.bs_power)
codebook = f.get_codebook()
noise_power = c.noise_power
cn = CN()
utility = []
cn.draw_topology()
rate_m = []
for _ in range(c.total_slots):
    print(_)
    H = cn.get_H()
    # fp algorithm
    y, y_next = np.zeros(M, dtype=np.complex), np.zeros(M, dtype=np.complex)
    W, W_next = np.zeros((K, M), dtype=np.complex), np.zeros((K, M),
                                                             dtype=np.complex)
    gamma, gamma_next = np.zeros(M), np.zeros(M)

    sum_throughput, sum_throughput_next = 0, 0