% INTERPOLAZIONE CON LA TECNICA DI ZERO PADDING IN FREQUENZA
% Prova d'esame di segnali per le comunicazioni di ............................

clear
close all

%  DATO DI PARTENZA

load x
N=length(x);
n=(0:N-1);
% fattore di sottocampionamento M=5
M=5;
% segnale sottocampionato
y=x(1:M:N);
nn=0:M:N-1;
% lunghezza del segnale sottocampionato L=N/M
L=N/M;
% plot del segnale x "continuo", dei capioni x (punti megenta) e dei campioni y
% (rossi)
figure(1)
plot(n,x)
hold on

pause(.1)

plot(n,x,'.m')

pause

stem(nn,y,'r','filled')

title(' x(t) (continuo) , x(n) (punti magenta) e y(n)=x(n/M) (campioni rossi)')
xlabel('campioni')
pause

%-------------------------------------------------------------------------------------------------------------------------------------
%    ESERCIZI DA SVOLGERE
% ------------------------------------------------------------------------------------------------------------------------------------
% 1 - calcolare le DFT di x e di y. Visualizzarne il modulo in funzione del numero di campioni k rispettivamente  
% da 0 a N-1 e da 0 a L-1. Utilizzare l'unica figura 2 divisa in due con il comando subplot(211)
% e subplot(212)
%--------------------------------------------------------------------------------------------------------------------------------------

% ......
% figure(2)
% subplot(211)
% plot(...........)
% title('Modulo della DFT di x(n) ')
% xlabel('campioni')

% .....
% subplot(212)
% plot(...........)
% title('Modulo della DFT di y(n)=x(n/M) ')
% xlabel('campioni')

pause

%-------------------------------------------------------------------------------------------------------------------------------------
% 2 - visualizzarle in funzione della frequenza normalizzata "fi" rispettivamente da 0 a 1-1/N e
% da 0 a 1-1/L . Utilizzare un'unica figura 3 divisa in due con il comando subplot(211)
%-------------------------------------------------------------------------------------------------------------------------------------

% figure(3)
% .......
% subplot(211)
% plot(........)
% title('Modulo della DFT di x(n) ')
% xlabel('frequenza normalizzata')
% ........
% subplot(212)
% plot(........)
% title('Modulo della DFT di y(n)=x(n/M) ')
% xlabel('frequenza normalizzata')


pause

%----------------------------------------------------------------------------------------------------------------------------------
% 3 - interpolare y di un fattore M utilizzando la tecnica dello zero
% padding in frequenza ottenendo il segnale x_interp. Si ricordi che essendo L pari, 
% gli zeri vanno inseriti a partire dal capione L/2+1. 
% Inoltre si ricordi che il segnale di partenza è reale quindi la parte immaginaria della trasformata,
% seppur piccolissima, deve essere tarscurata.
% Nella figura 4 visualizzare x_interp in funzione di n con il comando plot(n,x_interp).
%----------------------------------------------------------------------------------------------------------------------------------

 %   ...................
  %  ...................
  %  ...................

% figure(4)
% plot(n,x_interp)
% title('segnale interpolato')
% xlabel('campioni')

pause

%---------------------------------------------------------------------------------------------------------------------------------
% 4 - confrontare x_interp con il segnale originale x visualizzando la
% differenza x-x_interp in figura 5.
%---------------------------------------------------------------------------------------------------------------------------------

% figure(5)
% plot(n,x-x_interp)
% title('errore di interpolazione')
% xlabel('campioni')
