| 1 | [[TracNav(WARPLab7/TOC)]] |
| 2 | |
| 3 | = WARPLab 7: Benchmarks = |
| 4 | |
| 5 | == Jumbo Frames == |
| 6 | |
| 7 | {{{ |
| 8 | clear node |
| 9 | node = wl_initNodes(1); |
| 10 | [RFA,RFB] = wl_getInterfaceIDs(node); |
| 11 | |
| 12 | NUMLENGTHS = 18; |
| 13 | NUMITER = 100; |
| 14 | |
| 15 | maxPayloadVec = floor(linspace(1000,node.transport.maxPayload,NUMLENGTHS)); |
| 16 | |
| 17 | IQvec = complex(randn(node.baseband.txIQLen,1),randn(node.baseband.txIQLen,1)); |
| 18 | IQvec = IQvec./(max(abs(IQvec))); |
| 19 | |
| 20 | duration = zeros(1,NUMITER); |
| 21 | |
| 22 | for k = 1:NUMLENGTHS |
| 23 | fprintf('Current maxPayload: %d\n',maxPayloadVec(k)); |
| 24 | node.transport.maxPayload = maxPayloadVec(k); |
| 25 | for m = 1:NUMITER |
| 26 | currTime = tic; |
| 27 | wl_basebandCmd(node,RFA,'write_IQ',IQvec); |
| 28 | duration(m) = toc(currTime); |
| 29 | end |
| 30 | mean_duration(k) = mean(duration); |
| 31 | std_duration(k) = std(duration); |
| 32 | end |
| 33 | |
| 34 | %% Plotting |
| 35 | figure(1);clf |
| 36 | errorbar(maxPayloadVec,mean_duration,std_duration,'LineWidth',2) |
| 37 | grid on |
| 38 | xlabel('Payload Size') |
| 39 | ylabel('Duration (Seconds)') |
| 40 | title('Duration of ''write\_IQ'' Command vs Payload Size') |
| 41 | |
| 42 | myAxis = axis; |
| 43 | |
| 44 | hold on |
| 45 | standardPayload = 1470; |
| 46 | H = line([standardPayload standardPayload],[myAxis(3),myAxis(4)]); |
| 47 | set(H,'Color',[0 0 0]) |
| 48 | set(H,'LineWidth',2) |
| 49 | H = text(standardPayload + .01*myAxis(2),.9*myAxis(4),'Standard Payload Size'); |
| 50 | set(H,'FontName','Ariel') |
| 51 | set(H,'FontWeight','bold') |
| 52 | hold off |
| 53 | }}} |