%	test sulla interpolazione trigonometrica

%	Giuseppe Rodriguez,  11-05-99
%	Email: rodriguez@unica.it

n = 8;				% meglio se n=2^k
x = [0:n-1]'/n*2-1;
f = 1./(1+25*x.*x);		% valutazione in [-pi,pi]
ff = fftshift(f);
c = real(1/n * fft(ff));	% calcolo coefficienti dell'interpolante

N = 256;
t = [0:N-1]'/N*2-1;
c = [c(1:n/2);zeros(N-n,1);c(n/2+1:n)];
g = real(N * ifft(c));		% valutazione ...
g = fftshift(g);		% ... in [-pi,pi]

% in realta' lo shift iniziale e quello finale possono essere evitati 
% perche' si compensano a vicenda

subplot(2,1,1)
plot(t,1./(1+25*t.*t),t,g,'--',x,f,'o')
title('Interpolazione trigonometrica','fontsize',14)
xlabel(['f(x) = 1 / (1+25x^2)  -  n = ' num2str(n)],'fontsize',14)

subplot(2,1,2)
plot(t,(g-1./(1+25*t.*t)),[-1;1],[0;0],x,zeros(n,1),'o')
xlabel('errore','fontsize',14)
