% versione 21/11/12
clear ; close

N=2^8                 % scegliere 2^3 2^8 2^10
% ------------------------------ VARIABILE
deltat=(2*pi)/N; t = (0:N-1)*deltat; % vettore della variabile 

% ------------------------------ FUNZIONI 	
f = 0.3*sin(2*t) ; % + 0.1*randn(size(t)) % frequenze intere / reali ... traslazioni (orizz) di M*deltat
%f = (t+0.00).^(1.0) + 0.3*randn(size(t)); % potenze 1,2,3 e traslazioni (vert)
energia1 = norm(f).^2/N

% ------------------------------ TRASFORMATA
Y = fft(f)/N;
energia2 = norm(Y).^2
FM=N/2;                 % FM <= N/2 Nyquist 

% ------------------------------ ANTITRASFORMATA 
FLT = N/2-1;               % filtro frequenze, minore o uguale N/2-1
YFLT = Y .* [ ones(1,1+FLT) zeros(1, N-1-2*FLT) ones(1,FLT)]; 
Z = ifft(YFLT*N);    

% ------------------------------ GRAFICA
scrsz = get(0,'ScreenSize');
% funzione ed antitrasformata
Fig1 = figure(1);
set(Fig1,'Position',[1 scrsz(4)/2 scrsz(3) scrsz(4)/2])
subplot(1,4,1:2); plot(t,f)    % grafico di f 
title('funzione')
subplot(1,4,3:4); plot(t,Z)    % anti-trasformata
title('anti-trasformata')

% real, imag, abs e complex
Fig2 = figure(2);
set(Fig2,'Position',[1 1 scrsz(3) scrsz(4)])
subplot(2,2,1); bar ( (1:FM) , real(Y(1:FM)) )	
title('real')
subplot(2,2,2); bar ( (1:FM) , imag(Y(1:FM)) )	
title('imag') 
subplot(2,2,3); bar ( (1:FM) , abs(Y(1:FM)) )
title('abs')
subplot(2,2,4); plot(real(Y(1:FM)),imag(Y(1:FM)),'d')
title('complex')



