Pre-ci test passed git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4000 818b1a75-f10b-46b9-bf7c-635c3b92a50f
151 lines
5.1 KiB
Matlab
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
|
|
|
|
|
|
|