% numero di campioni a disposizione per l'analisi
N = 64;

% vettore degli indici temporali
n = 0:N-1;

% frequenza della sinusoide (tra -N/2 ed N/2)
msg = sprintf('k (nell''intervallo %g,%g): ',-N/2,N/2);
k = input(msg);
x = cos(2*pi*k/N*n);

% oversampling con zero padding (permette di aumentare la
% risoluzione dell'analisi in frequenza, non di risolvere
% componenti in frequenza distanti meno di 1/N)
OSF = 32;
x_pad = [x,zeros(1,(OSF-1)*N)];

% plot della sequenza
subplot(2,1,1)
stem(n,x)
xlabel('n')
ylabel('x(n)')

% DFT della sequenza e vettore delle frequenze
X = fft(x);
f = (-N/2:N/2-1)/N;

% DFT della sequenza con zero padding e relativo vettore delle
% frequenze
X_pad = fft(x_pad);
f_pad = (-OSF*N/2:OSF*N/2-1)/(OSF*N);

subplot(2,1,2)
hold off
plot(f_pad,abs(fftshift(X_pad)))
hold on
plot(f,abs(fftshift(X)),'ro')
xlabel('f_k')
ylabel('X(f_k)')
