% Abtastung der DTFT
% Bernhard Geiger
% (c) SPSC, 2013

M=10;
N_vec=[15:-1:1];

for ind=1:length(N_vec)
    N=N_vec(ind);
    
    k=0:N-1;
    theta=2*pi/N*k;
    
    % DTFT eines Rechteckimpulses mit Dauer M, abgetastet bei
    % \theta=2\pi/N, ergibt die DFT X[k] der N-Punkte Folge x[n], die aus
    % der modulo-Fortsetzung des Rechteckimpulses entsteht.

    X=sin(M*theta/2)./sin(theta/2).*exp(-j*theta*(M-1)/2);
    X(1)=M; % Unstetigkeit heben
    
    % Plots
    close all
    subplot(2,2,1)
    theta_fine=-pi:0.01:pi;
    plot(theta_fine,abs(sin(M*theta_fine/2)./sin(theta_fine/2).*exp(-j*theta_fine*(M-1)/2)))
    hold on
    stem(theta(theta<=pi),abs(X(theta<=pi)),'rx')
    stem(theta(theta>pi)-2*pi,abs(X(theta>pi)),'rx')
    axis tight
    xlabel('\theta'); ylabel('|X(e^{j\theta})|, |X[k]|'); title('Fourier-Transformationen')
    legend('|X(e^{j\theta})|','|X[k]|')
    
    subplot(2,2,2)
    stem(k,ifft(X))
    axis tight
    xlabel('n'); ylabel('x[n]'); title('Signal')
    
    subplot(2,2,3:4)
    colorvec={'bo','rx','m+'};
    n=-30:30;
    cnt=floor(length(n)/N);
    stem([0:M-1],ones(1,M),'bo')
    hold on
    for jnd=1:cnt/2
        stem([0:M-1]-jnd*N,(1+jnd/10)*ones(1,M),colorvec{mod(jnd,3)+1});
        stem([0:M-1]+jnd*N,(1+jnd/10)*ones(1,M),colorvec{mod(jnd,3)+1});
    end
    line([-0.5,-0.5],[-0.2,1.5],'Color','k')
    line([N-0.5,N-0.5],[-0.2,1.5],'Color','k')
    axis([-30,30,-0.2,1.5])
    xlabel('n'); ylabel('x[n]'); title('Interpretation ueber periodische Fortsetzung')
    
    % press enter to continue
    pause
    
    
end

