Files
openairinterface5g/openair1/EMOS/LTE/POST_PROCESSING/post_processing_eNb_quick.m
T
2013-06-25 09:05:02 +00:00

151 lines
5.1 KiB
Matlab

if ~exist(pathname,'dir')
error('Path does not exist!')
end
d = dir(fullfile(pathname, 'data_term1*.EMOS'));
filenames = {d.name};
filedates = {d.date};
[filedates,idx] = sort(filedates);
filenames = filenames(idx);
% NFrames = floor([d.bytes]/CHANNEL_BUFFER_SIZE)*NO_ESTIMATES_DISK;
% for i=1:length(filenames)
% file_idx(i) = sscanf(d(i).name,'data_term1_idx%d_%s.EMOS',1);
% end
NFrames_max = 100*60*10;
if (exist(fullfile(pathname,'results_eNB.mat'),'file'))
load(fullfile(pathname,'results_eNB.mat'));
start_idx = file_idx + 1
else
timestamp_cat = [];
phy_measurements_cat = struct([]);
eNb_UE_stats_cat = struct([]);
rx_N0_dBm_cat = [];
%rx_N0_subband_dBm_cat = [];
gps_lon_cat = [];
gps_lat_cat = [];
gps_time_cat = [];
gps_speed_cat = [];
frame_tx_cat = [];
ulsch_errors_cat = [];
mcs_cat = [];
tbs_cat = [];
Rate_4Qam_1RX_cat = [];
Rate_16Qam_1RX_cat = [];
Rate_64Qam_1RX_cat = [];
siso_SNR_1RX_cat = [];
Rate_4Qam_2RX_cat = [];
Rate_16Qam_2RX_cat = [];
Rate_64Qam_2RX_cat = [];
siso_SNR_2RX_cat = [];
NFrames = zeros(1,length(filenames));
start_time = zeros(1,length(filenames));
start_idx = 1;
end
%%
for file_idx = start_idx:length(filenames)
disp(filenames{file_idx});
[path,file,ext,ver] = fileparts(filenames{file_idx});
time_idx = regexp(file,'\d{8}T\d{6}');
start_time(file_idx) = datenum(file(time_idx:end),'yyyymmddTHHMMSS');
if file(10)=='1'
is_eNb=1;
else
is_eNb=0;
end
if (start_time(file_idx) >= datenum('20100610T000000','yyyymmddTHHMMSS'));
version = 1;
else
version = 0;
end
[H, H_fq, estimates, gps_data, NFrames(file_idx)] = load_estimates_lte(fullfile(pathname,filenames{file_idx}),NFrames_max,decimation,is_eNb,version);
%%
phy_measurements = repmat(phy_measurements_eNb_struct,NFrames(file_idx)/decimation,3);
eNb_UE_stats = repmat(eNb_UE_stats_struct,1,NFrames(file_idx)/decimation);
mcs = zeros(1,NFrames(file_idx)/decimation);
tbs = zeros(1,NFrames(file_idx)/decimation);
rx_N0_dBm = zeros(NFrames(file_idx)/decimation,3);
%rx_N0_subband_dBm = zeros(NFrames(file_idx)/decimation,3,25);
for i=1:NFrames(file_idx)/decimation
phy_measurements(i,:) = estimates(i).phy_measurements_eNb;
if (version<1)
eNb_UE_stats(i) = estimates(i).eNb_UE_stats(3,1);
else
eNb_UE_stats(i) = estimates(i).eNb_UE_stats(1,1);
end
mcs(i) = get_mcs(estimates(i).dci_alloc(10,1).dci_pdu,'format0');
tbs(i) = get_tbs(mcs(i),25);
for j=1:3
rx_N0_dBm(i,j) = estimates(i).phy_measurements_eNb(j).n0_power_tot_dBm;
%rx_N0_subband_dBm(i,j,:) = estimates(i).phy_measurements_eNb(j).n0_subband_power_tot_dBm;
end
end
[Rate_4Qam_1RX,Rate_16Qam_1RX,Rate_64Qam_1RX, siso_SNR_1RX] = calc_rps_SISO_UL(estimates, 1, version, 0);
[Rate_4Qam_2RX,Rate_16Qam_2RX,Rate_64Qam_2RX, siso_SNR_2RX] = calc_rps_SISO_UL(estimates, 2, version, 0);
phy_measurements_cat = [phy_measurements_cat; phy_measurements];
eNb_UE_stats_cat = [eNb_UE_stats_cat eNb_UE_stats];
timestamp_cat = [timestamp_cat [estimates.timestamp]];
frame_tx_cat = [frame_tx_cat [estimates.frame_tx]];
ulsch_errors_cat = [ulsch_errors_cat [estimates.ulsch_errors]];
mcs_cat = [mcs_cat mcs];
tbs_cat = [tbs_cat tbs];
rx_N0_dBm_cat = [rx_N0_dBm_cat; rx_N0_dBm];
%rx_N0_subband_dBm_cat = cat(1,rx_N0_subband_dBm_cat,rx_N0_subband_dBm);
gps_lon_cat = [gps_lon_cat [gps_data.longitude]];
gps_lat_cat = [gps_lat_cat [gps_data.latitude]];
gps_time_cat = [gps_time_cat [gps_data.timestamp]];
gps_speed_cat = [gps_speed_cat [gps_data.speed]];
Rate_4Qam_1RX_cat = [Rate_4Qam_1RX_cat; Rate_4Qam_1RX];
Rate_16Qam_1RX_cat = [Rate_16Qam_1RX_cat; Rate_16Qam_1RX];
Rate_64Qam_1RX_cat = [Rate_64Qam_1RX_cat; Rate_64Qam_1RX];
siso_SNR_1RX_cat = [siso_SNR_1RX_cat; siso_SNR_1RX];
Rate_4Qam_2RX_cat = [Rate_4Qam_2RX_cat; Rate_4Qam_2RX];
Rate_16Qam_2RX_cat = [Rate_16Qam_2RX_cat; Rate_16Qam_2RX];
Rate_64Qam_2RX_cat = [Rate_64Qam_2RX_cat; Rate_64Qam_2RX];
siso_SNR_2RX_cat = [siso_SNR_2RX_cat; siso_SNR_2RX];
save(fullfile(pathname,'results_eNB.mat'),'phy_measurements_cat',...
'eNb_UE_stats_cat','timestamp_cat','frame_tx_cat','mcs_cat','tbs_cat',...
'ulsch_errors_cat','rx_N0_dBm_cat','gps_lon_cat','gps_lat_cat','gps_time_cat','gps_speed_cat',...
'Rate*cat','siso*cat',...
'file_idx','NFrames','start_time','filenames','filedates');
%%
% h_fig = figure(2);
% hold off
% plot(timestamp_cat,rx_N0_dBm_cat,'x')
% title('RX I0 [dBm]')
% xlabel('Frame number')
% ylabel('RX I0 [dBm]')
% saveas(h_fig,fullfile(pathname,'RX_I0_dBm.eps'),'epsc2')
%
% %%
% h_fig = figure(3);
% hold off
% plot_gps_coordinates(mm,gps_lon_cat, gps_lat_cat,rx_N0_dBm_cat);
% title('RX I0 [dBm]')
% xlabel('Frame number')
% ylabel('RX I0 [dBm]')
% saveas(h_fig,fullfile(pathname,'RX_I0_dBm_gps.eps'),'epsc2')
end