def __init__(self, params, errors, losss, val_losss): self.params = params self.errors = errors self.losss = losss self.val_losss = val_losss if __name__ == '__main__': SIMULATIONS_NAME = 'previous_research' params, output_dir = settings.init_simulation(SIMULATIONS_NAME) # データを生成する snrs_db = np.linspace(params['SNR_MIN'], params['SNR_MAX'], params['SNR_NUM']) sigmas = m.sigmas(snrs_db) # SNR(dB)を元に雑音電力を導出 loss_array = np.zeros( (params['SNR_NUM'], params['SNR_AVERAGE'], params['nEpochs'])) val_loss_array = np.zeros( (params['SNR_NUM'], params['SNR_AVERAGE'], params['nEpochs'])) error_array = np.zeros((len(snrs_db), params['SNR_AVERAGE'])) for trials_index in tqdm(range(params['SNR_AVERAGE'])): h_si = m.channel(1, params['h_si_len']) h_s = m.channel(1, params['h_s_len']) for sigma_index, sigma in enumerate(sigmas): logging.info("SNR_AVERAGE_index:" + str(trials_index)) logging.info("sigma_index:" + str(sigma_index))
val_losss: np.ndarray if __name__ == '__main__': SIMULATIONS_NAME = 'ofdm_fde_system_model_delay' params_dict, output_dir = settings.init_simulation(SIMULATIONS_NAME, ofdm=True) params = Params.from_params_dict(params_dict) delay_array = np.linspace(params.delay_min, params.delay_max, params.delay_num, dtype=int) sigma = m.sigmas(params.SNR) sigma = sigma * np.sqrt(params.receive_antenna) errors = np.zeros((params.delay_num, params.trials)) losss = np.zeros((params.delay_num, params.trials, params.nEpochs)) val_losss = np.zeros((params.delay_num, params.trials, params.nEpochs)) for trials_index in tqdm(range(params.trials)): h_si = [] h_s = [] for i in range(params.receive_antenna): h_si.append(m.exponential_decay_channel(1, params.h_si_len)) h_s.append(m.exponential_decay_channel(1, params.h_s_len)) for delay_array_index, delay in enumerate(delay_array): nn_model = simulation(
previous_errors = np.zeros((params.graph_x_num, params.trials)) previous_losss = np.zeros( (params.graph_x_num, params.trials, params.p_nEpochs)) previous_val_losss = np.zeros( (params.graph_x_num, params.trials, params.p_nEpochs)) for trials_index in tqdm(range(params.trials)): h_si = [] h_s = [] for i in range(params.receive_antenna): h_si.append(m.exponential_decay_channel(1, params.h_si_len)) h_s.append(m.exponential_decay_channel(1, params.h_s_len)) for graph_x_index, SNR in enumerate(graph_x_array): sigma = m.sigmas(SNR) # previous_sigma = sigma previous_sigma = sigma * np.sqrt(params.p_receive_antenna) proposal_sigma = sigma * np.sqrt(params.receive_antenna) non_cancell_error_array[ graph_x_index][trials_index] = noncancel_simulation( params.block, params.subcarrier, params.CP, previous_sigma, params.gamma, params.phi, params.PA_IBO, params.PA_rho, params.LNA_alpha_1, params.LNA_alpha_2, h_si, h_s, params.h_si_len, params.h_s_len, params.TX_IQI, params.PA, params.LNA, params.RX_IQI, params.trainingRatio, params.compensate_iqi, params.p_receive_antenna, params.equalizer) previous_nn_model = previous_simulation(
class Result: params: Params errors: np.ndarray losss: np.ndarray val_losss: np.ndarray if __name__ == '__main__': SIMULATIONS_NAME = 'ofdm_fde_system_model' params_dict, output_dir = settings.init_simulation(SIMULATIONS_NAME, ofdm=True) params = Params.from_params_dict(params_dict) snrs_db = m.snr_db(params.SNR_MIN, params.SNR_MAX, params.SNR_NUM) sigmas = m.sigmas(snrs_db) sigmas = sigmas * np.sqrt(params.receive_antenna) errors = np.zeros((params.SNR_NUM, params.SNR_AVERAGE)) losss = np.zeros((params.SNR_NUM, params.SNR_AVERAGE, params.nEpochs)) val_losss = np.zeros((params.SNR_NUM, params.SNR_AVERAGE, params.nEpochs)) for trials_index in tqdm(range(params.SNR_AVERAGE)): h_si = [] h_s = [] for i in range(params.receive_antenna): h_si.append(m.exponential_decay_channel(1, params.h_si_len)) h_s.append(m.exponential_decay_channel(1, params.h_s_len)) for sigma_index, sigma in enumerate(sigmas): nn_model = simulation(
val_losss_list.append(result.val_losss) errors = np.concatenate(errors_list, 1) losss = np.concatenate(losss_list, 1) val_losss = np.concatenate(val_losss_list, 1) logging.info('chainload') logging.info(len(results)) params = results[0].params logging.info('params') logging.info(params) # データを生成する snr = params['snr'] sigma = m.sigmas(snr) # SNR(dB)を元に雑音電力を導出 var_si_var_s_db = np.linspace(params['var_min'], params['var_max'], params['var_num']) var_si_var_s = m.to_exact_number(var_si_var_s_db) var_si = 1 var_s_list = var_si / var_si_var_s non_cancell_error = np.zeros( (params['var_num'], params['number_of_trials'])) for trials_index in tqdm(range(params['number_of_trials'])): for var_s_index, var_s in enumerate(var_s_list): # 通信路は毎回生成する h_si = m.channel(1, params['h_si_len'], var_si) h_s = m.channel(1, params['h_s_len'], var_s) logging.info('random channel') logging.info('h_si:{0.real}+{0.imag}i'.format(h_si)) logging.info('h_s:{0.real}+{0.imag}i'.format(h_s))