Square Wave Fourier Coefficients

d = 0.50; % duty cycle
coeff = @(k) d*sinc(k*d);
M = 11;
yc = zeros(M,1);
idx = 1:2:M;
load square.mat
fprintf('%2s %10s %10s %8s %8s\n','k','ck (V)','ck (dB)','calc (dB)','meas (dB)');
for k=idx
    c = abs(coeff(k));
    yc(k) = 20*log10(c);
    fprintf('%2d %10g  %10g %8g %8g\n',k,c,yc(k),yc(k)-yc(1),y(k)-y(1));
end
stem(idx,yc(idx)-yc(1)+35);
hold on;
plot(idx,y(idx)-y(1)+35,'kx','MarkerSize',16);
hold off;
xlabel('harmonic');
ylabel('dB');
axis([0 M+1 0 40]);
 k     ck (V)    ck (dB) calc (dB) meas (dB)
 1    0.31831      -9.943        0        0
 3   0.106103    -19.4854 -9.54243    -9.38
 5   0.063662    -23.9224 -13.9794   -13.91
 7  0.0454728     -26.845  -16.902   -16.72
 9  0.0353678    -29.0278 -19.0849   -18.75
11  0.0289373    -30.7709 -20.8279   -20.78