plot_stat

PURPOSE ^

$Id: plot_stat.m,v 1.6 2004/06/07 10:11:53 dalai Exp $

SYNOPSIS ^

function varargout = plot_stat(dir)

DESCRIPTION ^

 $Id: plot_stat.m,v 1.6 2004/06/07 10:11:53 dalai Exp $

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 % $Id: plot_stat.m,v 1.6 2004/06/07 10:11:53 dalai Exp $
0002 function varargout = plot_stat(dir)
0003 
0004 nb_coverage_data = 20;
0005 abs_max_hop_nb = 20;
0006 
0007 for coverage = 1:nb_coverage_data
0008 
0009     pref.dir = dir;
0010     model = 2;
0011     mob = 1;
0012     
0013     res.percentile_delay = 95;
0014     res.percentile_hop = 95;
0015 
0016     res.models = { 'street' 'city' 'hexagonal' };
0017     res.model = char(res.models(model));
0018     
0019     res.coverages = 5:5:100;
0020     res.coverage = res.coverages(coverage);
0021 
0022     res.mobs        = [20 50 100 200];
0023     res.mob            = res.mobs(mob);
0024     res.tmax        = 3600;
0025 
0026     filename = sprintf('%s-%dmin-%02d%%cov-%dusr-stat',res.model,res.tmax/60,res.coverage,res.mob);
0027     tarname = [filename,'.tar.gz'];
0028     tarpath = [pref.dir,'/results/',tarname];
0029     matname = [filename,'.mat'];
0030     matpath = [pref.dir,'/temp/',matname];
0031     untar_cmd = ['tar -xvzf',' ',tarpath,' -C ',pref.dir,'/temp/'];
0032 
0033     disp([tarname,' : untaring']);    
0034     [s,w] = unix(untar_cmd);
0035     if (s == 0)
0036         disp([tarname,' : untargz ok']);
0037         disp([matname,' : loading']);
0038         load(matpath);
0039         global_stats(coverage) = stats;
0040         global_par(coverage) = par;
0041         disp([matname,' : loaded']);
0042         disp([matname,' : removing',]);
0043         [s_rm,w_rm] = unix(['rm ',matpath]);
0044         if ( s_rm == 0)
0045             disp([matname,' : removed']);
0046         else
0047             disp(['error while removing ',matname]);
0048         end
0049     end
0050 
0051     
0052 % some general computations
0053     network_coverage(coverage) = res.coverages(coverage);
0054     network_time(:,coverage) = [1:global_par(coverage).tmax]';
0055 
0056     network_users = global_par(coverage).mob;    
0057     network_lambda = global_par(coverage).lambda;
0058     network_tmax = global_par(coverage).tmax;
0059     network_maxbuffer = network_users*network_lambda*network_tmax;
0060     
0061 % delay computations
0062     % compute the pdf
0063     delay_pdf(:,coverage) = global_stats(coverage).delay_pdf';    
0064     % compute the cdf
0065     delay_cdf(:,coverage) = global_stats(coverage).delay_cdf';
0066     % compute the percentile
0067     delay_percentile(coverage) = max(find(delay_cdf(:,coverage)<=res.percentile_delay/100));
0068 
0069     
0070     
0071     
0072 % buffer computations
0073     maxbuffer(:,coverage) = global_stats(coverage).maxbuffer';
0074     
0075     % compute the pdf
0076     maxbuffer_size(:,coverage) = [0:network_maxbuffer]';
0077     maxbuffer_pdf(:,coverage) = histc(global_stats(coverage).maxbuffer,[0:network_maxbuffer])';
0078 
0079     % compute the cdf
0080     maxbuffer_cdf(:,coverage) = cumsum(maxbuffer_pdf(:,coverage))./network_users;
0081     
0082     % mimimum, maximum, average and standard deviation
0083     min_buffer(coverage) = min(maxbuffer(:,coverage));
0084     max_buffer(coverage) = max(maxbuffer(:,coverage));
0085     avg_buffer(coverage) = mean(maxbuffer(:,coverage));
0086     std_buffer(coverage) = std(maxbuffer(:,coverage));
0087     stdmax_buffer(coverage) = avg_buffer(coverage) + std_buffer(coverage);
0088     stdmin_buffer(coverage) = avg_buffer(coverage) - std_buffer(coverage);    
0089     buffer(:,coverage) = [min_buffer(coverage); stdmin_buffer(coverage); avg_buffer(coverage); stdmax_buffer(coverage); max_buffer(coverage)];
0090 % msg_nb(coverage) = global_par(coverage).msg;
0091 % buffer_y(:,coverage) = [min_buffer(coverage); stdmin_buffer(coverage); avg_buffer(coverage); stdmax_buffer(coverage); max_buffer(coverage)]./msg_nb(coverage);
0092     
0093 % multihops computations !!!!! to check : maximum number of hops a message can be delivered in fixed to (abs_max_hop_nb-1)
0094     msg_nb(coverage) = global_par(coverage).msg;
0095     hops(:,coverage) = [0:1:abs_max_hop_nb-1]';
0096     % compute the pdf
0097     hop_pdf(:,coverage) = hist(global_stats(coverage).hop_nb,[1:abs_max_hop_nb])';
0098     % compute the cdf
0099     hop_cdf(:,coverage) = cumsum(hop_pdf(:,coverage))./msg_nb(coverage);
0100     % compute the percentile
0101     hop_percentile(coverage) = max(find(hop_cdf(:,coverage)<=res.percentile_hop/100))-1;    
0102     
0103     clear par stats;
0104 end
0105 
0106 legendcoverages = {'05%' '10%' '15%' '20%' '25%' '30%' '35%' '40%' '45%' '55%' '60%' '65%' '70%' '75%' '80%' '85%' '90%' '95%' '100%'};
0107 
0108 
0109 scrsz = get(0,'ScreenSize');
0110 h = figure(1);
0111 set(h,'Position',scrsz);
0112 
0113 subplot(3,3,1)
0114 plot(network_time,delay_pdf);
0115 lgd = legend(legendcoverages,1);
0116 %legendtitle(lgd,'coverages');
0117 axis([0 res.tmax/10 0 mean(max(delay_pdf))/5])
0118 grid  ('on')
0119 xlabel('relative delay in sec')
0120 ylabel('nbr msg delivered')
0121 title (['pdfs of the relative delay for different coverages'])
0122 
0123 subplot(3,3,2)
0124 plot(network_time,delay_cdf);
0125 lgd = legend(legendcoverages,1);
0126 %legendtitle(lgd,'coverages');
0127 axis([0 res.tmax/10 0 1])
0128 grid  ('on')
0129 xlabel('relative delay in sec')
0130 ylabel('nbr msg delivered / total nb msg generated')
0131 title (['cdfs of the relative delay for different coverages'])
0132 %title (['cdf´s of the delay for different coverages in the ',res.model,' model'])
0133 
0134 subplot(3,3,3)
0135 plot(network_coverage,delay_percentile);
0136 axis([0 100 0 1.1*max(delay_percentile)])
0137 grid  ('on')
0138 xlabel('coverage in %')
0139 ylabel('relative delay in sec')
0140 title ([num2str(res.percentile_delay),'% percentile of the relative delay'])
0141 %title ([num2str(res.percentile_delay),'% percentile of the delay in the ',res.model,' model'])
0142 
0143 subplot(3,3,4)
0144 plot(maxbuffer_size,maxbuffer_pdf);
0145 lgd = legend(legendcoverages,1);
0146 %legendtitle(lgd,'coverages');
0147 axis([0 1.1*max(max(max_buffer)) 0 network_users])
0148 grid  ('on')
0149 xlabel('maximum nb of msg in buffer')
0150 ylabel('nb of users')
0151 title ('pdfs nb of users wrt max nb of msg in buffer')
0152 
0153 subplot(3,3,5)
0154 plot(maxbuffer_size,maxbuffer_cdf);
0155 lgd = legend(legendcoverages,1);
0156 %legendtitle(lgd,'coverages');
0157 axis([0 1.1*max(max(max_buffer)) 0 1])
0158 grid  ('on')
0159 xlabel('maximum nb of msg in buffer')
0160 ylabel('nb of users / total nb of users')
0161 title ('cdfs nb of users wrt max nb of msg in buffer')
0162 
0163 subplot(3,3,6)
0164 plot(network_coverage,buffer);
0165 legend('minimum','average - std','average','average + std','maximum',1); 
0166 axis([0 100 0 1.1*max(buffer(5,:))])
0167 grid  ('on')
0168 xlabel('coverage in %')
0169 ylabel('max buffer/simulation (in number of packets)')
0170 title (['maximum buffer occupation during simulation'])
0171 
0172 subplot(3,3,7)
0173 plot(hops,hop_pdf./100);
0174 lgd = legend(legendcoverages,1);
0175 %legendtitle(lgd,'coverages');
0176 axis([0 abs_max_hop_nb 0 1.1*max(max(hop_pdf))/100])
0177 grid  ('on')
0178 xlabel('number of hops')
0179 ylabel('nb msg delivered (x100)')
0180 title (['pdfs of msg delivered function of the nb of hops'])
0181  
0182 subplot(3,3,8)
0183 plot(hops,hop_cdf)
0184 lgd = legend(legendcoverages,1);
0185 %legendtitle(lgd,'coverages');
0186 axis([0 abs_max_hop_nb 0 1])
0187 grid  ('on')
0188 xlabel('number of hops')
0189 ylabel('nb msg delivered / total nb msg delivered')
0190 title (['cdfs of msg delivered function of the nb of hops'])
0191 
0192 subplot(3,3,9)
0193 plot(network_coverage,hop_percentile);
0194 axis([0 100 0 1.1*max(hop_percentile)])
0195 grid  ('on')
0196 xlabel('coverage in %')
0197 ylabel('number of hops')
0198 title ([num2str(res.percentile_hop),'% percentile of the number of hops'])
0199 
0200 suptitle(sprintf('Results for the %s model with %dmin simulation and %d users',res.model,res.tmax/60,res.mob)) 
0201

Generated on Sun 15-Aug-2004 22:13:10 by m2html © 2003