|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- %
- % Network Lab session data processing
- %
- % author:
- % Christos Choutouridis AEM:8997
- % cchoutou@ece.auth.gr
-
- % Select title font size
- titleFontSize =10;
- max_echoDist =350;
- max_arqDist =600;
-
- % Select witch session using MATLAB comments. Ctrl-T/CtrlR
- % session 1
- % Ecode = 'E7837';
- % Qcode = 'Q5137';
- % Rcode = 'R8316';
- % Etime = '2020-04-11-19:00:52';
- % ARQtime = '2020-04-12-12:46:05';
-
- % session 2
- Ecode = 'E1510';
- Qcode = 'Q1643';
- Rcode = 'R7877';
- Etime = '2020-04-14-16:12:13';
- ARQtime = '2020-04-15-11:00:14';
-
- % make titles and filenames
- file_echo = sprintf('%s-%s.log', Ecode, Etime);
- file_arq = sprintf('%s-%s-%s.log', Qcode, Rcode, ARQtime);
-
- title_Echo = sprintf('\\fontsize{%d}Code:%s Timestamp:%s', titleFontSize, Ecode, Etime);
- title_echoDist = sprintf('\\fontsize{%d}%s: Response time distribution', titleFontSize, Ecode);
- title_ARQ = sprintf('\\fontsize{%d}Code:%s/%s Timestamp:%s', titleFontSize, Qcode, Rcode, ARQtime);
- title_ARQDist = sprintf('\\fontsize{%d}%s/%s: Response time distribution', titleFontSize, Qcode, Rcode);
- title_ARQ_bar = sprintf('\\fontsize{%d}Distribution of ARQ Transmissions', titleFontSize);
- title_ARQ_norm = sprintf('\\fontsize{%d}Propability Distribution of ARQ Re-transmissions', titleFontSize);
-
- % Echo mechanism
- [Fe Te] = Echo_time (file_echo); % analyze Echo timing
-
- figure('Position', [0 0 1024 600]); % G1: response time
- stairs (Te);
- title (title_Echo);
- xlabel('Package Nbr');
- ylabel('Response time [msec]');
-
- figure('Position', [0 0 1024 600]); % G1 helper: Response time distribution
- bar (Fe(1:max_echoDist));
- title (title_echoDist);
- xlabel('Response time [msec]');
- ylabel('Packages');
-
-
- % ARQ mechanism - time analysis
- [Fqr, Tqr] = ARQ_time (file_arq); % analyze ARQ timing
-
- figure('Position', [0 0 1024 600]); % G2: response time
- stairs(Tqr);
- title (title_ARQ);
- xlabel('Package Nbr');
- ylabel('Response time [msec]');
-
- figure('Position', [0 0 1024 600]); % G2 helper: Response time distribution
- bar (Fqr(1:max_arqDist));
- title (title_ARQDist);
- xlabel('Response time [msec]');
- ylabel('Packages');
-
- % ARQ mechanism - error analysis
- [x, Fe, l, ber] = ARQ_error (file_arq); % analyze ARQ error
- Fe_norm = Fe / sum(Fe); % normalize ARQ error
- ft = fittype('a*exp(-b*x)'); % curve fiting
- [fitFe] = fit (x, Fe_norm, ft);
-
- figure('Position', [0 0 1024 900]); % Error distribution analysis
- subplot(2,1,1);
- b = bar(Fe);
- xtips = b.XEndPoints;
- ytips = b.YEndPoints;
- labels = string(b.YData);
- text(xtips,ytips,labels,'HorizontalAlignment','center','VerticalAlignment','bottom');
- title (title_ARQ_bar);
- xlabel('Number of Transmissions');
- ylabel('Number of packages');
- t = sprintf ('Average tries / pkg = %g', l);
- text (8, max(Fe), t);
- t = sprintf ('Bit error rate = %g', ber);
- text (8, max(Fe)*0.92, t);
-
- subplot(2,1,2); stem(x, Fe_norm); % G3 helper: Normalized and curve fiting
- hold on
- plot (fitFe);
- title (title_ARQ_norm);
- xlabel('Number of Re-transmissions');
- ylabel('Package %');
- txt = sprintf ('\\leftarrow %gexp(-%gx)', fitFe.a, fitFe.b);
- text(0.5, fitFe.a*exp(-fitFe.b*0.5), txt);
-
|