clc;
clearvars;
close all;

fs=1000; % Hz
T=10; % s
t=0:1/fs:T-1/fs; % vetor de tempo
N=length(t); % número de amostras
f=(fs/N)*(0:N-1); % vetor de frequência

% sinal no tempo
x=10*sin(2*pi*20*t)+20*sin(2*pi*90*t)+...
  40*sin(2*pi*160*t)+60*sin(2*pi*270*t);
% sinal na frequência
X=fft(x);

% % filtro passa-baixas
% [b1,a1]=butter(9,50/(fs/2),'low');
% x1=filtfilt(b1,a1,x);
% X1=fft(x1);
% 
% figure(1)
% subplot(1,2,1)
% plot(f,abs(X)/(fs*T),'r-') 
% xlabel('Frequência (Hz)'); ylabel('Módulo')
% axis([0 500 0 30]);
% grid on
% subplot(1,2,2)
% plot(f,abs(X1)/(fs*T),'b-') 
% xlabel('Frequência (Hz)'); ylabel('Módulo')
% axis([0 500 0 30])
% grid on
% 
% fvtool(b1,a1)

% % filtro passa-altas
% [b2,a2]=butter(9,50/(fs/2),'high');
% x2=filtfilt(b2,a2,x);
% X2=fft(x2);
% 
% figure(3)
% subplot(1,2,1)
% plot(f,abs(X)/(fs*T),'r-') 
% xlabel('Frequência (Hz)'); ylabel('Módulo')
% axis([0 500 0 30]);
% grid on
% subplot(1,2,2)
% plot(f,abs(X2)/(fs*T),'b-') 
% xlabel('Frequência (Hz)'); ylabel('Módulo')
% axis([0 500 0 30]);
% grid on
% 
% fvtool(b2,a2)

% % filtro passa-banda
% [b3,a3]=butter(9,[50/(fs/2),200/(fs/2)],'bandpass');   
% x3=filtfilt(b3,a3,x);
% X3=fft(x3);
% 
% figure(3)
% subplot(1,2,1)
% plot(f,abs(X)/(fs*T),'r-') 
% xlabel('Frequência (Hz)'); ylabel('Módulo')
% axis([0 500 0 30]);
% grid on
% subplot(1,2,2)
% plot(f,abs(X3)/(fs*T),'b-') 
% xlabel('Frequência (Hz)'); ylabel('Módulo')
% axis([0 500 0 30])
% grid on
% 
% fvtool(b3,a3)

% % filtro barra-banda
% [b4,a4]=butter(9,[50/(fs/2),200/(fs/2)],'stop');   
% x4=filtfilt(b4,a4,x);
% X4=fft(x4);
% 
% figure(4)
% subplot(1,2,1)
% plot(f,abs(X)/(fs*T),'r-') 
% xlabel('Frequência (Hz)'); ylabel('Módulo')
% axis([0 500 0 30]);
% grid on
% subplot(1,2,2)
% plot(f,abs(X4)/(fs*T),'b-') 
% xlabel('Frequência (Hz)'); ylabel('Módulo')
% axis([0 500 0 30])
% grid on
% 
% fvtool(b4,a4)