📄 load_part2.m
字号:
% this function load the run-time data, save in a single mat file% called by script_load_part2% after finishing simulating each case, this function need to be called% all the analysis is based on the output of this functionfunction load_part2(test_resource_allocation_idx,UE,MIMO,loaddir,savedir,a,b,overwrite_old,MaxSaveIndex,save_info_factor,Comm_conf)filename = ['RA',num2str(test_resource_allocation_idx),'_UE',num2str(UE),'_FLA',num2str(Comm_conf.F_LA),'_FPA',num2str(Comm_conf.F_PA),MIMO,'_trms',num2str(Comm_conf.t_rms),'f',num2str(Comm_conf.fd),'_s',num2str(Comm_conf.state),'N',num2str(Comm_conf.N),'subN',num2str(Comm_conf.subN),'_E',num2str(Comm_conf.flg_csi_err),'c',num2str(Comm_conf.flg_offset),'D',num2str(Comm_conf.DELAY),'BO',num2str(Comm_conf.BO_dB),'HPA',num2str(Comm_conf.use_HPA_flg),'_BLER',num2str(Comm_conf.targetFER),'.mat'];if exist([savedir,'/',filename],'file') && ~overwrite_old return;else test_possible_user_velocities = 30; test_possible_scenarios = {'micro1','macro1','macro3'}; test_pissible_resource_allocations = {'RR','PF','MAXCI','PF2'}; test_nu_active_users = UE; test_scenario = test_possible_scenarios{1}; test_resource_allocation = test_pissible_resource_allocations{test_resource_allocation_idx}; test_avg_velo_kmph = test_possible_user_velocities(1); %test_frame_period_factor = LARArate; test_case=['testCaseResult-Scn',test_scenario,'-ResAlloc',test_resource_allocation,'-PowCon','no','-G','no','-NoUE',num2str(test_nu_active_users),'-kmph',num2str(test_avg_velo_kmph),'F_LA',num2str(Comm_conf.F_LA),'-F_PA',num2str(Comm_conf.F_PA)]; save_user_fair = zeros(UE,save_info_factor * (b-a + 1) * MaxSaveIndex); save_user_ActiveCnt = uint16(zeros(UE,save_info_factor * (b-a + 1) * MaxSaveIndex)); save_user_distance = save_user_ActiveCnt; save_user_mobID = save_user_ActiveCnt; save_user_velocity = uint8(save_user_ActiveCnt); if Comm_conf.N == 512, Comm_conf.used = 301; elseif Comm_conf.N == 1024, Comm_conf.used = 601; end Nu_groups = floor(Comm_conf.used / Comm_conf.subN); save_user_sinr = int8(zeros(UE,save_info_factor * (b-a + 1) * MaxSaveIndex,Nu_groups)); save_bs_sinr = int8(zeros(Nu_groups,save_info_factor * (b-a + 1) * MaxSaveIndex)); save_bs_mobID = uint16(zeros(Nu_groups,save_info_factor * (b-a + 1) * MaxSaveIndex)); save_bs_mod = int8(zeros(Nu_groups,save_info_factor * (b-a + 1) * MaxSaveIndex)); save_bs_fec = int8(zeros(Nu_groups,save_info_factor * (b-a + 1) * MaxSaveIndex)); save_bs_poweradjust = (zeros(Nu_groups,save_info_factor * (b-a + 1) * MaxSaveIndex)); save_bs_FrminErr = int8(zeros(Nu_groups,save_info_factor * (b-a + 1) * MaxSaveIndex)); save_bs_dist = uint16(zeros(Nu_groups,save_info_factor * (b-a + 1) * MaxSaveIndex)); save_outageCnt = 0; save_totalBitsSent = 0; save_totalFrmErr = 0; nuUser = 0; for lp_nuDrops=a:b dir_name=[loaddir,'/',test_case,'Drp',num2str(lp_nuDrops),'_trms',num2str(Comm_conf.t_rms),'f',num2str(Comm_conf.fd),'_s',num2str(Comm_conf.state),'N',num2str(Comm_conf.N),'subN',num2str(Comm_conf.subN),'_E',num2str(Comm_conf.flg_csi_err),'c',num2str(Comm_conf.flg_offset),'D',num2str(Comm_conf.DELAY),'BO',num2str(Comm_conf.BO_dB),'HPA',num2str(Comm_conf.use_HPA_flg),'_BLER',num2str(Comm_conf.targetFER)]; lp_nuDrops for k = 1:MaxSaveIndex load([dir_name,'/','user_gain_info_and_distance/saveIndex',num2str(k)]); idx = (lp_nuDrops-1) * MaxSaveIndex*save_info_factor + (k-1)*save_info_factor + 1: (lp_nuDrops-1) * MaxSaveIndex*save_info_factor + k*save_info_factor; save_user_ActiveCnt(:,idx) = user_ActiveCnt; save_user_distance(:,idx) = user_distance; save_user_mobID(:,idx) = user_mobID + nuUser; save_user_velocity(:,idx) = user_velocity; save_user_sinr(:,idx,:) = user_sinr; save_user_fair(:,idx) = user_fair; %save_user_sinr_noErr(:,idx,:) = user_sinr_noFeedBackErr; clear user* load([dir_name,'/','measurement/dataVals',num2str(k)]); %save_user_remFileSz(:,idx) = st_measurement.remFileSzStore; save_bs_sinr(:,idx) = st_measurement.snrFeedBack; save_bs_mobID(:,idx) = st_measurement.mobIdxStore + nuUser; %save_bs_sinr_noErr(:,idx) = st_measurement.snrFeedBackNoChErr; save_bs_mod(:,idx) = st_measurement.modStore; save_bs_fec(:,idx) = st_measurement.fecStore; save_bs_dist(:,idx) = st_measurement.distanceStore; save_bs_poweradjust(:,idx) = st_measurement.poweradjust; save_bs_FrminErr(:,idx) = st_measurement.FrminError; %save_bs_instTP(1,idx) = st_measurement.instThpt; end nuUser = max(max(save_user_mobID(:,lp_nuDrops * MaxSaveIndex*save_info_factor))); save_outageCnt=save_outageCnt+st_measurement.outageCnt; save_totalBitsSent=save_totalBitsSent+st_measurement.totalBitsSent; save_totalFrmErr = save_totalFrmErr + st_measurement.totalFramesinError; clear st_measurement end fec1 = [0 3 5 7]; fec2 = [0 1/3 1/2 2/3]; fecs = zeros(size(save_bs_fec)); for k = 2:4 fecs = fecs + fec2(k)*(save_bs_fec == fec1(k)); end save_bs_fec = fecs; if ~exist(savedir,'dir'), mkdir(savedir); end save([savedir,'/',filename],'save_user_ActiveCnt','save_user_distance','save_user_mobID','save_user_velocity',... 'save_user_sinr','save_bs_sinr',... 'save_bs_mod','save_bs_fec','save_bs_dist','save_bs_poweradjust','save_bs_FrminErr','save_bs_mobID',... 'save_outageCnt','save_totalBitsSent','save_user_fair');end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -