load Desktop/SM/guiao7/Guitar01.mat
[X,f] = DFT(x,1/fa); %%o X representa os valores das amostras captadas de uma guitarra e o fa é a sua frequencia de acordo com o sinal
plot(f,abs(X));
xlim([0,2000]);
H= zeros(size(f));
sound(x,fa)

%entre 100 e 400hz
H(f>100)=1;
H(f<-100)=1;
H(f>400)=0;
H(f<-400)=0;
Y=H.*X;
[y,t] = IDFT(Y,f);
plot(t,y);

%entre 400 e 600hz
H(f>=400)=1;
H(f<=600)=1;
H(f>600)=0;
H(f<400)=0;
Y=H.*X;
[y,t] = IDFT(Y,f);
plot(t,y);

%entre 600 e 1200
H(f>=600)=1;
H(f<=1200)=1;
H(f>1200)=0;
H(f<600)=0;
Y=H.*X;
[y,t] = IDFT(Y,f);
plot(t,y);



%

function [x,f] = DFT(x,Ta)
fa = 1/Ta;
N = length(x);
f = [0:(N-1)]'/ (N*Ta) - fa/2;  %%ENTENDER MELHOR ESTA PARTE
x = fftshift(fft(x)/N);
end

function [x,t] =  IDFT (X,f)  %oposto da DFT
  N = length(X);
  fa = -f(1)*2;     %%sabemos que o primeiro f(1) é sempre -fa/2, logo basta usar um jogo matemático
  Ta = 1/fa;
  t = [0:(N-1)]'*Ta;
  x = ifft(ifftshift(X)) * N; 
end