1function plotJitterEstimate(filename) 2 3[timestamps, framedata, slopes, randJitters, framestats, timetable, filtjitter, rtt, rttStatsVec] = jitterBufferTraceParser(filename); 4 5x = 1:size(framestats, 1); 6%figure(2); 7subfigure(3, 2, 1); 8hold on; 9plot(x, slopes(x, 1).*(framestats(x, 1) - framestats(x, 2)) + 3*sqrt(randJitters(x,2)), 'b'); title('Estimate ms'); 10plot(x, filtjitter, 'r'); 11plot(x, slopes(x, 1).*(framestats(x, 1) - framestats(x, 2)), 'g'); 12subfigure(3, 2, 2); 13%subplot(211); 14plot(x, slopes(x, 1)); title('Line slope'); 15%subplot(212); 16%plot(x, slopes(x, 2)); title('Line offset'); 17subfigure(3, 2, 3); hold on; 18plot(x, framestats); plot(x, framedata(x, 1)); title('frame size and average frame size'); 19subfigure(3, 2, 4); 20plot(x, framedata(x, 2)); title('Delay'); 21subfigure(3, 2, 5); 22hold on; 23plot(x, randJitters(x,1),'r'); 24plot(x, randJitters(x,2)); title('Random jitter'); 25 26subfigure(3, 2, 6); 27delays = framedata(:,2); 28dL = [0; framedata(2:end, 1) - framedata(1:end-1, 1)]; 29hold on; 30plot(dL, delays, '.'); 31s = [min(dL) max(dL)]; 32plot(s, slopes(end, 1)*s + slopes(end, 2), 'g'); 33plot(s, slopes(end, 1)*s + slopes(end, 2) + 3*sqrt(randJitters(end,2)), 'r'); 34plot(s, slopes(end, 1)*s + slopes(end, 2) - 3*sqrt(randJitters(end,2)), 'r'); 35title('theta(1)*x+theta(2), (dT-dTS)/dL'); 36if sum(size(rttStatsVec)) > 0 37 figure; hold on; 38 rttNstdDevsDrift = 3.5; 39 rttNstdDevsJump = 2.5; 40 rttSamples = rttStatsVec(:, 1); 41 rttAvgs = rttStatsVec(:, 2); 42 rttStdDevs = sqrt(rttStatsVec(:, 3)); 43 rttMax = rttStatsVec(:, 4); 44 plot(rttSamples, 'ko-'); 45 plot(rttAvgs, 'g'); 46 plot(rttAvgs + rttNstdDevsDrift*rttStdDevs, 'b--'); 47 plot(rttAvgs + rttNstdDevsJump*rttStdDevs, 'b'); 48 plot(rttAvgs - rttNstdDevsJump*rttStdDevs, 'b'); 49 plot(rttMax, 'r'); 50 %plot(driftRestarts*max(maxRtts), '.'); 51 %plot(jumpRestarts*max(maxRtts), '.'); 52end