def proposal(params: dict, sigma, h_si, h_s, receive_antenna_count) -> NNModel: system_model = SystemModel(params['n'], sigma, params['gamma'], params['phi'], params['PA_IBO_dB'], params['PA_rho'], params['LNA_IBO_dB'], params['LNA_rho'], h_si, h_s, params['h_si_len'], params['h_s_len'], receive_antenna_count, params['TX_IQI'], params['PA'], params['LNA'], params['RX_IQI']) # NNを生成 nn_model = NNModel(params['nHidden'], params['optimizer'], params['learningRate'], params['h_si_len'], params['h_s_len'], receive_antenna_count, params['momentum']) nn_model.learn(system_model, params['trainingRatio'], params['nEpochs'], params['batchSize'], params['h_si_len'], params['h_s_len'], receive_antenna_count, params['delay'], params['standardization']) return nn_model
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)) for IBO_index, IBO_dB in enumerate(params['IBO_dB']): for index, sigma in enumerate(sigmas): logging.info("IBO_dB_index:" + str(IBO_index)) logging.info("SNR_AVERAGE_index:" + str(snr_index)) logging.info("sigma_index:" + str(index)) logging.info("time: %d[sec]" % int(time.time() - start)) system_model = SystemModel( params['n'], sigma, params['gamma'], params['phi'], IBO_dB, params['rho'], IBO_dB, params['rho'], h_si, h_s, ) demodulate = m.demodulate_qpsk(system_model.y.squeeze()) error = np.sum(system_model.d_s != demodulate) errors[IBO_index][index][snr_index] = error logging.info("learn_end_time: %d[sec]" % int(time.time() - start)) # 結果をdumpしておく result = Result(params, errors, losss, val_losss)
h_si = m.channel() h_s = m.channel() 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)) for index, sigma in enumerate(sigmas): logging.info("SNR_AVERAGE_index:" + str(snr_index)) logging.info("sigma_index:" + str(index)) logging.info("time: %d[sec]" % int(time.time() - start)) system_model = SystemModel( params['n'], sigma, params['gamma'], params['phi'], params['PA_IBO_dB'], params['PA_rho'], params['LNA_IBO_dB'], params['LNA_rho'], h_si, h_s, ) # NNを生成 model = NNModel(params['nHidden']) model.learn(system_model, params['trainingRatio'], params['nEpochs'], params['batchSize']) errors[index][snr_index] = model.error losss[index][snr_index][:] = model.history.history['loss'] val_losss[index][snr_index][:] = model.history.history['val_loss'] logging.info("learn_end_time: %d[sec]" % int(time.time() - start))
'nEpochs': 20, 'learningRate': 0.004, 'trainingRatio': 0.8, # 全体のデータ数に対するトレーニングデータの割合 'batchSize': 32, } h_si = m.channel() h_s = m.channel() system_model = SystemModel( params['n'], 0, params['gamma'], params['phi'], params['PA_IBO_dB'], params['PA_rho'], params['LNA_IBO_dB'], params['LNA_rho'], h_si, h_s, params['h_si_len'], params['h_s_len'], ) model = NNModel( params['nHidden'], params['learningRate'], params['h_si_len'], params['h_s_len'], ) model.learn( system_model,
'phi': 3.0, 'PA_IBO_dB': 1000, 'PA_rho': 1000, 'LNA_IBO_dB': 7, 'LNA_rho': 2, 'h_si_len': 1, 'h_s_len': 1, "receive_antenna": 1 } h_si = m.channel(1, params['h_si_len']) h_s = m.channel(1, params['h_s_len']) system_model = SystemModel(params['n'], 0, params['gamma'], params['phi'], params['PA_IBO_dB'], params['PA_rho'], params['LNA_IBO_dB'], params['LNA_rho'], h_si, h_s, params['h_si_len'], params['h_s_len'], params['receive_antenna'], True, False, False, False) d = m.compensate_iqi(system_model.x_iq, params['gamma'], params['phi']) plt.figure() plt.scatter(system_model.x.real, system_model.x.imag, color="red", label="x") plt.scatter(system_model.x_iq.real, system_model.x_iq.imag, color="blue", label="x_iq") plt.scatter(d.real, d.imag, color="green", label="x_compensate_iq")
h_si.append(m.channel(1, params['h_si_len'])) h_s.append(m.channel(1, params['h_s_len'])) for IBO_index, IBO_dB in enumerate(params['IBO_dB']): for sigma_index, sigma in enumerate(sigmas): logging.info("IBO_dB_index:" + str(IBO_index)) logging.info("SNR_AVERAGE_index:" + str(trials_index)) logging.info("sigma_index:" + str(sigma_index)) system_model = SystemModel( params['n'], sigma, params['gamma'], params['phi'], IBO_dB, params['rho'], params['LNA_IBO_dB'], params['LNA_rho'], h_si, h_s, params['h_si_len'], params['h_s_len'], params['receive_antenna'], ) # NNを生成 nn_model = NNModel( params['nHidden'], params['optimizer'], params['learningRate'], params['h_si_len'], params['h_s_len'],