www.gusucode.com > LTE仿真Matlab源码 > LTE_sim_batch_jreitter_eusipco2011.m
% Reproducibility batch script of paper "Interference Alignment in UMTS % Long Term Evolution" % Author: Joerg Reitterer, jreitter@nt.tuwien.ac.at % (c) 2011 by INTHFT % www.nt.tuwien.ac.at clear all; close all; LineWidth = 1; MarkerSize = 4; %% DEBUG level global DEBUG_LEVEL DEBUG_LEVEL = 4; %% Figure 5(a) Simulation_type = 'IA'; N_Ue = 1; N_Bs = 3; tx_mode = 4; N_rx = 2; N_tx = 2; channel_type = 'VehA'; SNR_vec = -10:2.5:30; SIR_vec = 0:2.5:30; connection_table = logical(eye(3)); IA_type = 'closed_form'; % Type of IA; closed_form, min_WLI, or max_SINR IA_streams = [2 2 2]; % Number of spatial streams IA_thresh = 1e-5; % IA threshold for stopping iterative algorithms IA_max_iterations = 1000; IA_freq_granularity_vec = 1; % Spectral IA granularity; % 1 ... alignment is calclulated for each subcarrier % 12 ... alignment is calclulated for each resource block % etc. IA_time_granularity = 14; % IA time granularity; % 1 ... alignment is calclulated for each OFDM symbol % 7 ... alignment is calculated for each slot % 14 ... alignment is calcualted for each subframe % etc. receiver = 'ZF'; channel_estimation_method = 'PERFECT'; IA_sigma_H2_E2_ratio_vec = Inf; % Channel measurement error; % Inf ... perfect channel knowledge scheduler_type = 'round robin'; scheduler_assignment = 'static'; user_speed_vec = 0; filtering = 'BlockFading'; cell_throughput_useful = zeros(length(SNR_vec),length(SIR_vec)); % Actual simulations for user_speed_i = 1:length(user_speed_vec) user_speed = user_speed_vec(user_speed_i); for IA_freq_granularity_i = 1:length(IA_freq_granularity_vec) IA_freq_granularity = IA_freq_granularity_vec(IA_freq_granularity_i); for IA_sigma_H2_E2_ratio_i = 1:length(IA_sigma_H2_E2_ratio_vec) IA_sigma_H2_E2_ratio = IA_sigma_H2_E2_ratio_vec(IA_sigma_H2_E2_ratio_i); for SIR_i = 1:length(SIR_vec) Power_diff = SIR_vec(SIR_i)*ones(N_Bs,1); % difference of the relative signal power from one eNodeB to the other for cqi_i = 9 N_subframes = 500; LTE_load_parameters; % Single User Multiple Input Multiple Output LTE_params.max_HARQ_retransmissions = 0; LTE_params.channel_noise = 0; LTE_params.ICI_est_type = 'PERFECT'; LTE_params.show_plots = false; LTE_sim_main end cell_throughput_useful(:,SIR_i) = mean(sum(simulation_results.cell_specific.throughput_useful,3)/LTE_params.Tsubframe/1e6); end end end end figure; surf(SNR_vec(1,:),SIR_vec,cell_throughput_useful.'); view(-115,30) xlim([-10 30]); zlim([0 5]); xlabel('SNR [dB]'); ylabel('SIR [dB]'); zlabel('Throughput [Mbit/s]'); title_text = ['LTE CLSM, K = ' num2str(N_Bs) ', ' num2str(N_tx) 'x' num2str(N_rx) ', d_i = [2, 2, 2], CQI = ' num2str(cqi_i) ', ' channel_type]; title(title_text); grid on; box on; caxis_ref = caxis; %% Figure 5(b) Simulation_type = 'IA'; tx_mode = 6; IA_streams = [1 1 1]; SNR_vec = -10:2.5:30; SIR_vec = 0:2.5:30; cell_throughput_useful = zeros(length(SNR_vec),length(SIR_vec)); % Actual simulations for user_speed_i = 1:length(user_speed_vec) user_speed = user_speed_vec(user_speed_i); for IA_freq_granularity_i = 1:length(IA_freq_granularity_vec) IA_freq_granularity = IA_freq_granularity_vec(IA_freq_granularity_i); for IA_sigma_H2_E2_ratio_i = 1:length(IA_sigma_H2_E2_ratio_vec) IA_sigma_H2_E2_ratio = IA_sigma_H2_E2_ratio_vec(IA_sigma_H2_E2_ratio_i); for SIR_i = 1:length(SIR_vec) Power_diff = SIR_vec(SIR_i)*ones(N_Bs,1); % difference of the relative signal power from one eNodeB to the other for cqi_i = 9 N_subframes = 500; LTE_load_parameters; % Single User Multiple Input Multiple Output LTE_params.max_HARQ_retransmissions = 0; LTE_params.channel_noise = 0; LTE_params.ICI_est_type = 'PERFECT'; LTE_params.show_plots = false; LTE_sim_main end cell_throughput_useful(:,SIR_i) = mean(sum(simulation_results.cell_specific.throughput_useful,3)/LTE_params.Tsubframe/1e6); end end end end figure; surf(SNR_vec(1,:),SIR_vec,cell_throughput_useful.'); view(-115,30) xlim([-10 30]); zlim([0 5]); xlabel('SNR [dB]'); ylabel('SIR [dB]'); zlabel('Throughput [Mbit/s]'); title_text = ['LTE IA, K = ' num2str(N_Bs) ', ' num2str(N_tx) 'x' num2str(N_rx) ', d_i = [1, 1, 1], CQI = ' num2str(cqi_i) ', ' channel_type]; title(title_text); grid on; box on; caxis(caxis_ref); % %% Figure 6(a) SNR_vec = 30; SIR_vec = 0; IA_freq_granularity_vec = [1 2 3 4 6 12 24 36 72]; channel_type = 'flat Rayleigh'; cell_throughput_useful_flat_Rayleigh = zeros(length(IA_freq_granularity_vec),1); % Actual simulations for user_speed_i = 1:length(user_speed_vec) user_speed = user_speed_vec(user_speed_i); for IA_freq_granularity_i = 1:length(IA_freq_granularity_vec) IA_freq_granularity = IA_freq_granularity_vec(IA_freq_granularity_i); for IA_sigma_H2_E2_ratio_i = 1:length(IA_sigma_H2_E2_ratio_vec) IA_sigma_H2_E2_ratio = IA_sigma_H2_E2_ratio_vec(IA_sigma_H2_E2_ratio_i); for SIR_i = 1:length(SIR_vec) Power_diff = SIR_vec(SIR_i)*ones(N_Bs,1); % difference of the relative signal power from one eNodeB to the other for cqi_i = 15 N_subframes = 500; LTE_load_parameters; % Single User Multiple Input Multiple Output LTE_params.max_HARQ_retransmissions = 0; LTE_params.channel_noise = 0; LTE_params.ICI_est_type = 'PERFECT'; LTE_params.show_plots = false; LTE_sim_main end end end cell_throughput_useful_flat_Rayleigh(IA_freq_granularity_i) = mean(sum(simulation_results.cell_specific.throughput_useful,3)/LTE_params.Tsubframe/1e6); end end channel_type = 'PedA'; cell_throughput_useful_PedA = zeros(length(IA_freq_granularity_vec),1); % Actual simulations for user_speed_i = 1:length(user_speed_vec) user_speed = user_speed_vec(user_speed_i); for IA_freq_granularity_i = 1:length(IA_freq_granularity_vec) IA_freq_granularity = IA_freq_granularity_vec(IA_freq_granularity_i); for IA_sigma_H2_E2_ratio_i = 1:length(IA_sigma_H2_E2_ratio_vec) IA_sigma_H2_E2_ratio = IA_sigma_H2_E2_ratio_vec(IA_sigma_H2_E2_ratio_i); for SIR_i = 1:length(SIR_vec) Power_diff = SIR_vec(SIR_i)*ones(N_Bs,1); % difference of the relative signal power from one eNodeB to the other for cqi_i = 15 N_subframes = 500; LTE_load_parameters; % Single User Multiple Input Multiple Output LTE_params.max_HARQ_retransmissions = 0; LTE_params.channel_noise = 0; LTE_params.ICI_est_type = 'PERFECT'; LTE_params.show_plots = false; LTE_sim_main end end end cell_throughput_useful_PedA(IA_freq_granularity_i) = mean(sum(simulation_results.cell_specific.throughput_useful,3)/LTE_params.Tsubframe/1e6); end end channel_type = 'VehA'; cell_throughput_useful_VehA = zeros(length(IA_freq_granularity_vec),1); % Actual simulations for user_speed_i = 1:length(user_speed_vec) user_speed = user_speed_vec(user_speed_i); for IA_freq_granularity_i = 1:length(IA_freq_granularity_vec) IA_freq_granularity = IA_freq_granularity_vec(IA_freq_granularity_i); for IA_sigma_H2_E2_ratio_i = 1:length(IA_sigma_H2_E2_ratio_vec) IA_sigma_H2_E2_ratio = IA_sigma_H2_E2_ratio_vec(IA_sigma_H2_E2_ratio_i); for SIR_i = 1:length(SIR_vec) Power_diff = SIR_vec(SIR_i)*ones(N_Bs,1); % difference of the relative signal power from one eNodeB to the other for cqi_i = 15 N_subframes = 500; LTE_load_parameters; % Single User Multiple Input Multiple Output LTE_params.max_HARQ_retransmissions = 0; LTE_params.channel_noise = 0; LTE_params.ICI_est_type = 'PERFECT'; LTE_params.show_plots = false; LTE_sim_main end end end cell_throughput_useful_VehA(IA_freq_granularity_i) = mean(sum(simulation_results.cell_specific.throughput_useful,3)/LTE_params.Tsubframe/1e6); end end figure; hold on; plot(IA_freq_granularity_vec,cell_throughput_useful_flat_Rayleigh/cell_throughput_useful_flat_Rayleigh(1)*100,'bo-','LineWidth',LineWidth,'MarkerSize',MarkerSize,'MarkerFaceColor','w'); plot(IA_freq_granularity_vec,cell_throughput_useful_PedA/cell_throughput_useful_PedA(1)*100,'rs-','LineWidth',LineWidth,'MarkerSize',MarkerSize,'MarkerFaceColor','w'); plot(IA_freq_granularity_vec,cell_throughput_useful_VehA/cell_throughput_useful_VehA(1)*100,'gd-','LineWidth',LineWidth,'MarkerSize',MarkerSize,'MarkerFaceColor','w'); hold off; grid on; box on; ylim([0 105]); title_text = ['LTE IA, K = ' num2str(N_Bs) ', ' num2str(N_tx) 'x' num2str(N_rx) ', SNR = ' num2str(SNR_vec(1)) ' dB, SIR = ' num2str(SIR_vec(1)) ' dB, CQI = ' num2str(cqi_i(1))]; title(title_text); xlabel('\xi_f') ylabel('Throughput [%]') legend('Flat Rayleigh','ITU-T PedA','ITU-T VehA','Location','SouthEast'); %% Figure 6(b) SNR_vec = 15; SIR_vec = 0; IA_freq_granularity_vec = [1 2 3 4 6 12 24 36 72]; channel_type = 'flat Rayleigh'; cell_throughput_useful_flat_Rayleigh = zeros(length(IA_freq_granularity_vec),1); % Actual simulations for user_speed_i = 1:length(user_speed_vec) user_speed = user_speed_vec(user_speed_i); for IA_freq_granularity_i = 1:length(IA_freq_granularity_vec) IA_freq_granularity = IA_freq_granularity_vec(IA_freq_granularity_i); for IA_sigma_H2_E2_ratio_i = 1:length(IA_sigma_H2_E2_ratio_vec) IA_sigma_H2_E2_ratio = IA_sigma_H2_E2_ratio_vec(IA_sigma_H2_E2_ratio_i); for SIR_i = 1:length(SIR_vec) Power_diff = SIR_vec(SIR_i)*ones(N_Bs,1); % difference of the relative signal power from one eNodeB to the other for cqi_i = 9 N_subframes = 500; LTE_load_parameters; % Single User Multiple Input Multiple Output LTE_params.max_HARQ_retransmissions = 0; LTE_params.channel_noise = 0; LTE_params.ICI_est_type = 'PERFECT'; LTE_params.show_plots = false; LTE_sim_main end end end cell_throughput_useful_flat_Rayleigh(IA_freq_granularity_i) = mean(sum(simulation_results.cell_specific.throughput_useful,3)/LTE_params.Tsubframe/1e6); end end channel_type = 'PedA'; cell_throughput_useful_PedA = zeros(length(IA_freq_granularity_vec),1); % Actual simulations for user_speed_i = 1:length(user_speed_vec) user_speed = user_speed_vec(user_speed_i); for IA_freq_granularity_i = 1:length(IA_freq_granularity_vec) IA_freq_granularity = IA_freq_granularity_vec(IA_freq_granularity_i); for IA_sigma_H2_E2_ratio_i = 1:length(IA_sigma_H2_E2_ratio_vec) IA_sigma_H2_E2_ratio = IA_sigma_H2_E2_ratio_vec(IA_sigma_H2_E2_ratio_i); for SIR_i = 1:length(SIR_vec) Power_diff = SIR_vec(SIR_i)*ones(N_Bs,1); % difference of the relative signal power from one eNodeB to the other for cqi_i = 9 N_subframes = 500; LTE_load_parameters; % Single User Multiple Input Multiple Output LTE_params.max_HARQ_retransmissions = 0; LTE_params.channel_noise = 0; LTE_params.ICI_est_type = 'PERFECT'; LTE_params.show_plots = false; LTE_sim_main end end end cell_throughput_useful_PedA(IA_freq_granularity_i) = mean(sum(simulation_results.cell_specific.throughput_useful,3)/LTE_params.Tsubframe/1e6); end end channel_type = 'VehA'; cell_throughput_useful_VehA = zeros(length(IA_freq_granularity_vec),1); % Actual simulations for user_speed_i = 1:length(user_speed_vec) user_speed = user_speed_vec(user_speed_i); for IA_freq_granularity_i = 1:length(IA_freq_granularity_vec) IA_freq_granularity = IA_freq_granularity_vec(IA_freq_granularity_i); for IA_sigma_H2_E2_ratio_i = 1:length(IA_sigma_H2_E2_ratio_vec) IA_sigma_H2_E2_ratio = IA_sigma_H2_E2_ratio_vec(IA_sigma_H2_E2_ratio_i); for SIR_i = 1:length(SIR_vec) Power_diff = SIR_vec(SIR_i)*ones(N_Bs,1); % difference of the relative signal power from one eNodeB to the other for cqi_i = 9 N_subframes = 500; LTE_load_parameters; % Single User Multiple Input Multiple Output LTE_params.max_HARQ_retransmissions = 0; LTE_params.channel_noise = 0; LTE_params.ICI_est_type = 'PERFECT'; LTE_params.show_plots = false; LTE_sim_main end end end cell_throughput_useful_VehA(IA_freq_granularity_i) = mean(sum(simulation_results.cell_specific.throughput_useful,3)/LTE_params.Tsubframe/1e6); end end figure; hold on; plot(IA_freq_granularity_vec,cell_throughput_useful_flat_Rayleigh/cell_throughput_useful_flat_Rayleigh(1)*100,'bo-','LineWidth',LineWidth,'MarkerSize',MarkerSize,'MarkerFaceColor','w'); plot(IA_freq_granularity_vec,cell_throughput_useful_PedA/cell_throughput_useful_PedA(1)*100,'rs-','LineWidth',LineWidth,'MarkerSize',MarkerSize,'MarkerFaceColor','w'); plot(IA_freq_granularity_vec,cell_throughput_useful_VehA/cell_throughput_useful_VehA(1)*100,'gd-','LineWidth',LineWidth,'MarkerSize',MarkerSize,'MarkerFaceColor','w'); hold off; grid on; box on; ylim([0 105]); title_text = ['LTE IA, K = ' num2str(N_Bs) ', ' num2str(N_tx) 'x' num2str(N_rx) ', SNR = ' num2str(SNR_vec(1)) ' dB, SIR = ' num2str(SIR_vec(1)) ' dB, CQI = ' num2str(cqi_i(1))]; title(title_text); xlabel('\xi_f') ylabel('Throughput [%]') legend('Flat Rayleigh','ITU-T PedA','ITU-T VehA','Location','East'); %% Figure 6(c) SNR_vec = 0; SIR_vec = 0; IA_freq_granularity_vec = [1 2 3 4 6 12 24 36 72]; channel_type = 'flat Rayleigh'; cell_throughput_useful_flat_Rayleigh = zeros(length(IA_freq_granularity_vec),1); % Actual simulations for user_speed_i = 1:length(user_speed_vec) user_speed = user_speed_vec(user_speed_i); for IA_freq_granularity_i = 1:length(IA_freq_granularity_vec) IA_freq_granularity = IA_freq_granularity_vec(IA_freq_granularity_i); for IA_sigma_H2_E2_ratio_i = 1:length(IA_sigma_H2_E2_ratio_vec) IA_sigma_H2_E2_ratio = IA_sigma_H2_E2_ratio_vec(IA_sigma_H2_E2_ratio_i); for SIR_i = 1:length(SIR_vec) Power_diff = SIR_vec(SIR_i)*ones(N_Bs,1); % difference of the relative signal power from one eNodeB to the other for cqi_i = 3 N_subframes = 500; LTE_load_parameters; % Single User Multiple Input Multiple Output LTE_params.max_HARQ_retransmissions = 0; LTE_params.channel_noise = 0; LTE_params.ICI_est_type = 'PERFECT'; LTE_params.show_plots = false; LTE_sim_main end end end cell_throughput_useful_flat_Rayleigh(IA_freq_granularity_i) = mean(sum(simulation_results.cell_specific.throughput_useful,3)/LTE_params.Tsubframe/1e6); end end channel_type = 'PedA'; cell_throughput_useful_PedA = zeros(length(IA_freq_granularity_vec),1); % Actual simulations for user_speed_i = 1:length(user_speed_vec) user_speed = user_speed_vec(user_speed_i); for IA_freq_granularity_i = 1:length(IA_freq_granularity_vec) IA_freq_granularity = IA_freq_granularity_vec(IA_freq_granularity_i); for IA_sigma_H2_E2_ratio_i = 1:length(IA_sigma_H2_E2_ratio_vec) IA_sigma_H2_E2_ratio = IA_sigma_H2_E2_ratio_vec(IA_sigma_H2_E2_ratio_i); for SIR_i = 1:length(SIR_vec) Power_diff = SIR_vec(SIR_i)*ones(N_Bs,1); % difference of the relative signal power from one eNodeB to the other for cqi_i = 3 N_subframes = 500; LTE_load_parameters; % Single User Multiple Input Multiple Output LTE_params.max_HARQ_retransmissions = 0; LTE_params.channel_noise = 0; LTE_params.ICI_est_type = 'PERFECT'; LTE_params.show_plots = false; LTE_sim_main end end end cell_throughput_useful_PedA(IA_freq_granularity_i) = mean(sum(simulation_results.cell_specific.throughput_useful,3)/LTE_params.Tsubframe/1e6); end end channel_type = 'VehA'; cell_throughput_useful_VehA = zeros(length(IA_freq_granularity_vec),1); % Actual simulations for user_speed_i = 1:length(user_speed_vec) user_speed = user_speed_vec(user_speed_i); for IA_freq_granularity_i = 1:length(IA_freq_granularity_vec) IA_freq_granularity = IA_freq_granularity_vec(IA_freq_granularity_i); for IA_sigma_H2_E2_ratio_i = 1:length(IA_sigma_H2_E2_ratio_vec) IA_sigma_H2_E2_ratio = IA_sigma_H2_E2_ratio_vec(IA_sigma_H2_E2_ratio_i); for SIR_i = 1:length(SIR_vec) Power_diff = SIR_vec(SIR_i)*ones(N_Bs,1); % difference of the relative signal power from one eNodeB to the other for cqi_i = 3 N_subframes = 500; LTE_load_parameters; % Single User Multiple Input Multiple Output LTE_params.max_HARQ_retransmissions = 0; LTE_params.channel_noise = 0; LTE_params.ICI_est_type = 'PERFECT'; LTE_params.show_plots = false; LTE_sim_main end end end cell_throughput_useful_VehA(IA_freq_granularity_i) = mean(sum(simulation_results.cell_specific.throughput_useful,3)/LTE_params.Tsubframe/1e6); end end figure; hold on; plot(IA_freq_granularity_vec,cell_throughput_useful_flat_Rayleigh/cell_throughput_useful_flat_Rayleigh(1)*100,'bo-','LineWidth',LineWidth,'MarkerSize',MarkerSize,'MarkerFaceColor','w'); plot(IA_freq_granularity_vec,cell_throughput_useful_PedA/cell_throughput_useful_PedA(1)*100,'rs-','LineWidth',LineWidth,'MarkerSize',MarkerSize,'MarkerFaceColor','w'); plot(IA_freq_granularity_vec,cell_throughput_useful_VehA/cell_throughput_useful_VehA(1)*100,'gd-','LineWidth',LineWidth,'MarkerSize',MarkerSize,'MarkerFaceColor','w'); hold off; grid on; box on; ylim([0 105]); title_text = ['LTE IA, K = ' num2str(N_Bs) ', ' num2str(N_tx) 'x' num2str(N_rx) ', SNR = ' num2str(SNR_vec(1)) ' dB, SIR = ' num2str(SIR_vec(1)) ' dB, CQI = ' num2str(cqi_i(1))]; title(title_text); xlabel('\xi_f') ylabel('Throughput [%]') legend('Flat Rayleigh','ITU-T PedA','ITU-T VehA','Location','SouthEast'); %% Figure 7 SNR_vec = 15; SIR_vec = [0:2.5:10 20 30]; IA_freq_granularity_vec = [1 2 3 4 6 12 24 36 72]; channel_type = 'VehA'; cell_throughput_useful = zeros(length(SIR_vec),length(IA_freq_granularity_vec)); % Actual simulations for user_speed_i = 1:length(user_speed_vec) user_speed = user_speed_vec(user_speed_i); for IA_freq_granularity_i = 1:length(IA_freq_granularity_vec) IA_freq_granularity = IA_freq_granularity_vec(IA_freq_granularity_i); for IA_sigma_H2_E2_ratio_i = 1:length(IA_sigma_H2_E2_ratio_vec) IA_sigma_H2_E2_ratio = IA_sigma_H2_E2_ratio_vec(IA_sigma_H2_E2_ratio_i); for SIR_i = 1:length(SIR_vec) Power_diff = SIR_vec(SIR_i)*ones(N_Bs,1); % difference of the relative signal power from one eNodeB to the other for cqi_i = 9 N_subframes = 500; LTE_load_parameters; % Single User Multiple Input Multiple Output LTE_params.max_HARQ_retransmissions = 0; LTE_params.channel_noise = 0; LTE_params.ICI_est_type = 'PERFECT'; LTE_params.show_plots = false; LTE_sim_main end cell_throughput_useful(SIR_i,IA_freq_granularity_i) = mean(sum(simulation_results.cell_specific.throughput_useful,3)/LTE_params.Tsubframe/1e6); end end end end figure; plot(IA_freq_granularity_vec,cell_throughput_useful/cell_throughput_useful(1,1)*100,'o-','LineWidth',LineWidth,'MarkerSize',MarkerSize,'MarkerFaceColor','w'); grid on; box on; ylim([0 105]); title_text = ['LTE IA, K = ' num2str(N_Bs) ', ' num2str(N_tx) 'x' num2str(N_rx) ', SNR = ' num2str(SNR_vec(1)) ' dB, CQI = ' num2str(cqi_i(1)) ', ' channel_type]; title(title_text); xlabel('\xi_f') ylabel('Throughput [%]') for k = 1:length(SIR_vec) legend_labels{k} = ['SIR = ' num2str(SIR_vec(k)) ' dB']; end hleg = legend(legend_labels,'Location','SouthWest'); %% Figure 8 SNR_vec = 15; SIR_vec = 0; IA_freq_granularity_vec = 1; IA_time_granularity = 14; IA_sigma_H2_E2_ratio_vec = [0:2.5:30 Inf]; channel_type = 'flat Rayleigh'; cell_throughput_useful = zeros(length(IA_sigma_H2_E2_ratio_vec),1); % Actual simulations for user_speed_i = 1:length(user_speed_vec) user_speed = user_speed_vec(user_speed_i); for IA_freq_granularity_i = 1:length(IA_freq_granularity_vec) IA_freq_granularity = IA_freq_granularity_vec(IA_freq_granularity_i); for IA_sigma_H2_E2_ratio_i = 1:length(IA_sigma_H2_E2_ratio_vec) IA_sigma_H2_E2_ratio = IA_sigma_H2_E2_ratio_vec(IA_sigma_H2_E2_ratio_i); for SIR_i = 1:length(SIR_vec) Power_diff = SIR_vec(SIR_i)*ones(N_Bs,1); % difference of the relative signal power from one eNodeB to the other for cqi_i = 9 N_subframes = 500; LTE_load_parameters; % Single User Multiple Input Multiple Output LTE_params.max_HARQ_retransmissions = 0; LTE_params.channel_noise = 0; LTE_params.ICI_est_type = 'PERFECT'; LTE_params.show_plots = false; LTE_sim_main end end cell_throughput_useful(IA_sigma_H2_E2_ratio_i) = mean(sum(simulation_results.cell_specific.throughput_useful,3)/LTE_params.Tsubframe/1e6); end end end hfig = figure; hold on; plot(IA_sigma_H2_E2_ratio_vec,ones(size(IA_sigma_H2_E2_ratio_vec))*cell_throughput_useful(end)/cell_throughput_useful(end)*100,'k--','LineWidth',LineWidth,'MarkerSize',MarkerSize,'MarkerFaceColor','w'); plot(IA_sigma_H2_E2_ratio_vec,cell_throughput_useful/cell_throughput_useful(end)*100,'bo-','LineWidth',LineWidth,'MarkerSize',MarkerSize,'MarkerFaceColor','w'); hold off; grid on; box on; ylim([0 105]); title_text = ['LTE IA, K = ' num2str(N_Bs) ', ' num2str(N_tx) 'x' num2str(N_rx) ', SNR = ' num2str(SNR_vec(1)) ' dB, CQI = ' num2str(cqi_i(1)) ', Flat Rayleigh']; title(title_text); xlabel('\sigma_H^2/\sigma_E^2 [dB]') ylabel('Throughput [%]') hleg = legend('Perfect CSI','Noisy CSI','Location','SouthEast'); %% Figure 9 SNR_vec = 15; SIR_vec = 0; IA_freq_granularity_vec = 1; IA_freq_granularity = IA_freq_granularity_vec; IA_time_granularity_vec = [1 7 14]; IA_sigma_H2_E2_ratio_vec = Inf; channel_type = 'VehA'; filtering = 'FastFading'; user_speed_vec = (0:50:50)./3.6; cell_throughput_useful = zeros(length(IA_time_granularity_vec),length(user_speed_vec)); % Actual simulations for user_speed_i = 1:length(user_speed_vec) user_speed = user_speed_vec(user_speed_i); for IA_time_granularity_i = 1:length(IA_time_granularity_vec) IA_time_granularity = IA_time_granularity_vec(IA_time_granularity_i); for IA_sigma_H2_E2_ratio_i = 1:length(IA_sigma_H2_E2_ratio_vec) IA_sigma_H2_E2_ratio = IA_sigma_H2_E2_ratio_vec(IA_sigma_H2_E2_ratio_i); for SIR_i = 1:length(SIR_vec) Power_diff = SIR_vec(SIR_i)*ones(N_Bs,1); % difference of the relative signal power from one eNodeB to the other for cqi_i = 9 N_subframes = 500; LTE_load_parameters; % Single User Multiple Input Multiple Output LTE_params.max_HARQ_retransmissions = 0; LTE_params.channel_noise = 0; LTE_params.ICI_est_type = 'PERFECT'; LTE_params.show_plots = false; LTE_sim_main end end end cell_throughput_useful(IA_time_granularity_i,user_speed_i) = mean(sum(simulation_results.cell_specific.throughput_useful,3)/LTE_params.Tsubframe/1e6); end end hfig = figure; plot(user_speed_vec*3.6,cell_throughput_useful/cell_throughput_useful(1,1)*100,'o-','LineWidth',LineWidth,'MarkerSize',MarkerSize,'MarkerFaceColor','w'); grid on; box on; xlim([0 75]); ylim([0 105]); set(gca,'XTick',0:25:75); title_text = ['LTE IA, K = ' num2str(N_Bs) ', ' num2str(N_tx) 'x' num2str(N_rx) ', SNR = ' num2str(SNR_vec(1)) ' dB, SIR = ' num2str(SIR_vec(1)) ' dB, CQI = ' num2str(cqi_i(1)) ', ' channel_type]; title(title_text); xlabel('User Velocity v [km/h]') ylabel('Throughput [%]') hleg = legend('\xi_t = 1','\xi_t = 7','\xi_t = 14','Location','SouthWest');