SQUARE WAVE DEMO

% setup function generator
clear_errors();
fprintf(fg,'APPLY:SQUARE 4000, 2');
fprintf(os,'AUTOSCALE');
%Setup scope FFT
fprintf(os,'FUNC:OPER FFT');
fprintf(os,'FUNC:SOURCE CHAN1');
fprintf(os,'CHAN1:DISPLAY OFF');
fprintf(os,'FUNC:DISPLAY 1');
% set FFT parameters
span =  50e3;
center = 25e3;
fprintf(os,'FUNC:SPAN %g',span);
fprintf(os,'FUNC:CENTER %g',center);
scale = 5;
fprintf(os,'FUNC:SCALE %g',scale);
offset = -15;
fprintf(os,'FUNC:OFFSET %g',offset);
% ask user to identify peaks of various harmonics
fprintf(os,'TIMEBASE:SCALE %gus',200);
fprintf(os,'MARKER:MODE MAN');
% set cursors
f0 = 4000;
y = zeros(11,1);

for k=1:2:11
    fprintf(os,'MARKER:X1P %g',k*f0);
    disp('set marker Y1 to peak');
    pause();
    fprintf(os,'MARKER:Y1P?');
    y(k) = fscanf(os,'%g');
    fprintf('harmonic %g value %g dB\n',k,y(k));
end
save square.mat y

fprintf(os,'MARKER:X1P %g',f0);
fprintf(os,'MARKER:X2P %g',3*f0);
%cycle through horizontal scales
for scale = [ 100e-6 200e-6 500e-6];
    fprintf(os,'TIMEBASE:SCALE %g',scale);
    fprintf('scale : %g us\n',scale*1e6);
    pause();
    fprintf(os,'FUNC:DISPLAY OFF');
    fprintf(os,'CHAN1:DISPLAY ON');
    fprintf(os,'MARKER:MODE OFF');
    pause();
    fprintf(os,'CHAN1:DISPLAY OFF');
    fprintf(os,'FUNC:DISPLAY ON');
    fprintf(os,'MARKER:MODE MAN');
end
fprintf(os,'TIMEBASE:SCALE %g',100e-6);
fprintf('done\n');
clear_errors();
instr_clear();

Timebase 100 μs

Timebase 200 μs

Timebase 500 μs