% Descrição e manipulação de funções harmônicas

clc;
clearvars;
close all;

tf=0.12;
t=linspace(0,tf,500);

F1=250; % 200, 250, 300
om1=2*pi*50; % 25, 50, 100
fi1=0; % 0, pi/4, -pi/4

f1=F1*sin(om1*t+fi1);

% % passo 1: representação no domínio do tempo
% %          (período, frequência, amplitude, fase)
% 
% figure(1)
% plot(t,f1,'b-')
% axis([0 tf -300 300])
% grid
% xlabel('t (s)')
% ylabel('f(t) (N)')
% pause(3)

% % passo 2: equivalência Gsen(wt+fi) e Acoswt+Bsenwt
% 
% A=F1*sin(fi1);
% B=F1*cos(fi1);
% f1a=A*cos(om1*t)+B*sin(om1*t);
% 
% figure(2)
% plot(t,f1,'b-')
% axis([0 tf -250 250])
% grid
% xlabel('t (s)')
% ylabel('f(t) (N)')
% hold on
% pause(3)
% plot(t,f1a,'r-')
% hold off
% legend('componente 1','componente 1 (eq.)')

% % passo 3: equivalência entre Gsen(wt+fi) e Gcos(wt+teta)
% 
% teta1=fi1-(pi/2);
% f1b=F1*cos(om1*t+teta1);
%  
% figure(3)
% plot(t,f1,'b-')
% axis([0 tf -250 250])
% grid
% xlabel('t (s)')
% ylabel('f(t) (N)')
% hold on
% pause(3)
% plot(t,f1b,'r-')
% hold off
% legend('componente 1','componente 1 (eq.)')

% % passo 4: primeira soma de componentes harmônicos
% %          (periodicidade e influência de fase)
% 
% F2=150;
% om2=2*pi*75;
% teta2=pi/2; % pi/2, pi
% 
% f2=F2*cos(om2*t+teta2);
% f=f1+f2;
% 
% figure(4);
% plot(t,f1,'b-')
% axis([0 tf -500 500])
% grid
% xlabel('t (s)')
% ylabel('f(t) (N)')
% hold on
% pause(3)
% plot(t,f2,'r-')
% pause(3)
% plot(t,f,'k-')
% hold off
% legend('componente 1','componente 2','soma')

% % passo 5: segunda soma de componentes harmônicos
% %          (tf = 0.12 e 0.24)
% 
% F2=220;
% om2=250;
% teta2=1.85;
% 
% f2=F2*cos(om2*t+teta2);
% f=f1+f2;
%  
% figure(5);
% plot(t,f1,'b-')
% axis([0 tf -500 500])
% grid
% xlabel('t (s)')
% ylabel('f(t) (N)')
% hold on
% pause(3)
% plot(t,f2,'r-')
% pause(3)
% plot(t,f,'k-')
% hold off
% legend('componente 1','componente 2','soma')

% % passo 6: batimento, com modificação de duração
% %          (tf=0.5 na linha 116);
% %          (comentar as linhas 7 a 14)
% 
% fs=8000;
% ts=1/fs;
% tf=0.5;
% t=0:ts:tf;
% 
% F1=200;
% om1=2*pi*52;
% fi1=0.46;
% f1=F1*sin(om1*t+fi1);
% 
% F2=250;
% om2=2*pi*50;
% teta2=1.85;
% f2=F2*cos(om2*t+teta2);
% 
% f=f1+f2;
%  
% figure(6)
% plot(t,f1,'b-')
% axis([0 tf -500 500])
% grid
% xlabel('t (s)')
% ylabel('f(t) (N)')
% hold on
% pause(3)
% plot(t,f2,'r-')
% pause(3)
% plot(t,f,'k-')
% legend('componente 1','componente 2','soma')

% % passo 7: batimento com som correspondente 
% %          (tf=3.0 na linha 116)
% 
% pause(3)
% sound(f,fs)

% % passo 8: cancelamento, com modificações 
% %          de amplitude, frequência e fase
% %          (retornar com as linhas 7 a 14)
% 
% f1c=-F1*sin(om1*t+fi1);
% 
% figure(7)
% plot(t,f1,'b-')
% axis([0 tf -300 300])
% grid
% xlabel('t (s)')
% ylabel('f(t) (N)')
% hold on
% pause(3)
% plot(t,f1c,'r-')
% pause(3)
% plot(t,f1+f1c,'k-')
% legend('componente 1','componente 1 (inv.)','soma')

% % passo 9: representação no domínio da frequência
% %          (frequência, amplitude, fase)
% 
% pause(3)
% figure(8)
% subplot(1,2,1)
% stem(om1,F1,'b.')
% axis([0 600 0 300])
% grid
% xlabel('\omega (rad/s)')
% ylabel('F (N)')
% subplot(1,2,2)
% stem(om1,fi1,'b.')
% axis([0 600 0 pi])
% grid
% xlabel('\omega (rad/s)')
% ylabel('\phi (rad)')