Informe - Practica - 1 - Serie de Fourier
Informe - Practica - 1 - Serie de Fourier
NOMBRES :
✓ Cueva Toaquiza Henry Fernando
✓ Gallegos Gallegos Christopher Emmanuel
✓ Lopez Ricachi Jessica Lizbeth
✓ Morales Guanga Christian Andrés
✓ Manobanda Jimenez Kevin Andres
✓ Revelo Paredes Alex Marcelo
✓ Tualombo Nuñez Ricardo Feliciano
✓ Zamora Medina Jarod Vinicio
I. INTRODUCCIÓN
La serie de Fourier trigonométrica es una herramienta matemática esencial que se
emplea para descomponer una señal periódica en una combinación de funciones
trigonométricas, como senos y cosenos, con diferentes frecuencias (denominadas
armónicas). Este enfoque se aplica ampliamente en el análisis de señales y la teoría de
la comunicación con el propósito de desglosar y reconstruir señales periódicas. La
premisa central de la serie de Fourier radica en la capacidad de representar cualquier
señal periódica como una suma ponderada de senos y cosenos con diversas frecuencias
y amplitudes.
II.OBJETIVOS
1. OBJETIVOS GENERALES
2. OBJETIVOS ESPECÍFICOS
• Desarrollar una investigación sobre el análisis matemático y teórico sobre las
series trigonométricas de Fourier.
• Analizar los parámetros utilizados para la programación y diseño utilizado en
Matlab.
• Verificar el rendimiento del software mediante ejercicios previamente
realizados durante las lecciones.
III. RESUMEN
Este informe aborda la simulación de la Serie Trigonométrica de Fourier
utilizando la plataforma MATLAB. La Serie Trigonométrica de Fourier es una
herramienta matemática fundamental para descomponer señales periódicas en una
combinación de funciones trigonométricas, como senos y cosenos, con distintas
frecuencias.
This report addresses the simulation of the Fourier Trigonometric Series using the
MATLAB platform. The Fourier Trigonometric Series is a fundamental
mathematical tool for decomposing periodic signals into a combination of
trigonometric functions such as sines and cosines with different frequencies.
For the analysis of any given signal, we will follow a specific order:
• Define the periodic signal to be analyzed in terms of its frequency and
amplitude.
• Calculate the Fourier coefficients of the signal using the relevant Fourier
formulas.
• Utilize the Fourier coefficients to construct the Fourier trigonometric series of
the signal.
• As a result, we will be able to visualize the original signal and its Fourier series
in a graph to analyze its behavior.
V. MARCO TEÓRICO
La serie de Fourier establece que cualquier señal periódica puede expresarse como
una combinación de una suma infinita de funciones seno y coseno con diferentes
frecuencias y amplitudes. La serie se define por medio de los coeficientes de Fourier,
que son valores que indican la amplitud y fase de cada componente frecuencia de la
señal. La serie de Fourier es importante porque permite analizar y sintetizar señales
periódicas de manera eficiente y efectiva. [1]
FORMULA:
La serie trigonométrica de Fourier es una suma infinita de funciones seno y coseno de
diferentes frecuencias y amplitudes. La fórmula general de la serie trigonométrica de
Fourier para una señal periódica f(t) con periodo T es:
∞
𝑎0
𝑓 (𝑡 ) = + ∑ 𝑎𝑛 cos(𝑛𝜔0 𝑡) + 𝑏𝑛 sin(𝑛𝜔0 𝑡)
2
𝑛=1
Donde:
• a0 es el coeficiente de Fourier de orden cero y representa el valor medio
de la función f(t) en un periodo T.
• an y bn son los coeficientes de Fourier de orden n y representan la amplitud
de las funciones coseno y seno, respectivamente, en un periodo T.
• ω0 = 2π/T es la frecuencia angular fundamental de la señal.
Los coeficientes de Fourier se calculan a partir de las siguientes fórmulas:
𝑇
2
𝑎𝑛 = ∫[𝑓(𝑡) cos(𝑛𝜔0 𝑡)𝑑𝑡]
𝑇
0
𝑇
2
𝑏𝑛 = ∫[𝑓(𝑡) sin(𝑛𝜔0 𝑡)𝑑𝑡]
𝑇
0
𝑁
𝑎0 2𝜋
𝑓 (𝑡 ) = + ∑ [𝑎𝑛 cos(𝑛𝜔𝑡)] 𝜔=
2 𝑇
𝑛=1
Señales Periódicas
Señal continua en el tiempo x(t) es periódica si existe un valor distinto a cero T y
positivo, para el cual: [2]
𝑥 (𝑡 + 𝑛𝑇) = 𝑥 (𝑡) 𝑝𝑎𝑟𝑎 𝑡𝑜𝑑𝑜 𝑡; 𝑛 𝑒𝑛𝑡𝑒𝑟𝑜
1
Donde T es el periodo fundamental y = 𝑓 denominada como frecuencia
𝑇
2𝜋
fundamental. La frecuencia angular fundamental viene dada por 𝜔 = = 2𝜋𝑓
𝑇
2𝜋
O en función de la frecuencia angular 𝜔 = ;
𝑇
𝑎0
𝑓 (𝑡 ) = + [𝑎1 cos(𝜔𝑡) + 𝑎2 cos(2𝜔𝑡) + ⋯ + 𝑎𝑁 cos(𝑁𝜔𝑡) ]
2
+ [𝑏1 sen(𝜔𝑡) + 𝑏2 sen(2𝜔𝑡) + ⋯ + 𝑏𝑁 sen(𝑁𝜔𝑡) ]
𝑁
𝑎0
𝑓 (𝑡 ) = + ∑[𝑎𝑛 cos(𝑛𝜔𝑡) + 𝑏𝑛 sen(𝑛𝜔𝑡) ]
2
𝑛=1
Donde:
𝑎0 𝑎𝑛 𝑏𝑛
𝐴0 = ; 𝐴𝑛 = √𝑎𝑛2 + 𝑏𝑛2 ; 𝜙𝑛 = 𝑎𝑟𝑡𝑔 ; 𝜑𝑛 = 𝑎𝑟𝑐𝑡𝑔
2 𝑏𝑛 𝑎𝑛
Quedaría definida la función f(t) por infinitas funciones coseno y constante a los
denominados armónicos, empezando por n=1 el primer armónico la frecuencia
igual a la frecuencia fundamental y o demás de frecuencia superior.
VII. LABORATORIO
DESARROLLO:
RESULTADOS
Ejecución del programa
IX. FE DE ERRATAS
Durante el desarrollo de la práctica de laboratorio, se tuvieron ciertos errores en las
variables ingresadas por teclado, donde hubo conflictos al ingresar limites en radianes y
valores de amplitud como constantes.
X. BIBLIOGRAFÍA
XI. ANEXOS
Ilustración 11 Interfaz gráfica.
PROGRAMACIÓN
end
guidata(hObject, handles);
function pushbutton10_Callback(hObject, eventdata, handles)
close(SERIE_TRIGONOMETRICA);
seleccion;
% --- Executes on button press in pushbutton11.
function pushbutton11_Callback(hObject, eventdata, handles)
close(SERIE_TRIGONOMETRICA);
cd materia_trig;
MATERIA_ST;
% --- Executes on button press in pushbutton12.
function pushbutton12_Callback(hObject, eventdata, handles)
menu=get(handles.menu1,'Value'); %Obtener el valor del menu
switch menu %Opciones de señales
case 1 %si escogemos rectangular
%*******************SERIE DE FOURIER - RECTANGULAR ******************%
axes(handles.axes8);%Lugar de graficación
arm=str2double(get(handles.armonico,'String')); %Toma el valor ingresado
del armonico
n=arm;
hold on
cla
am1=str2double(get(handles.amplitud,'String')); %Toma el valor ingresado de
la amplitud
p=str2double(get(handles.periodo,'String'));%Toma el valor ingresado del
periodo
x=[-p/2 -p/2 0 0 p/2 p/2]; %Grafica señal
y=[0 am1 am1 -am1 -am1 0]; %
plot(x,y,'m','linewidth',1)
x=linspace(-1,1,100);
y=zeros(length(x),1);
for i=1:length(x)
y(i)=0;
for k=1:2:n
y(i)=y(i)-4*am1*sin(k*pi*x(i))/(k*pi);
end
end
plot(x*(p/2),y, 'b','linewidth',1)
axis([-(p-(p/2)) p-(p/2) -am1-2 am1+2 ]) %Limita
title(sprintf('Aproximación de Fourier: %i términos',n))
xlabel('t');
ylabel('f(t)')
grid on
hold off
%**********************RESPUESTAS*******************%
syms t k n;%Declara las variables como símbolos
T=str2double(get(handles.periodo,'String'));
f= 1;%funciones
ao1 = (2/T)*(int(f,t,0,T/2)+int(-f,t,T/2,T));
a1 = (2/T)*(int(f*cos(k*pi*t),t,0,T/2)+int(-f*cos(k*pi*t),t,T/2,T))*0;
b1 = (2/T)*(int(f*sin(k*pi*t/T),t,0,T/2)+int(-f*sin(k*pi*t/T),t,T/2,T));
fsum= symsum(b1*sin(k*pi*t/T),k,1,n);
r=simplify(ao1);%Simplifica la función
u=simplify(a1);%Simplifica la función
v=simplify(b1);%Simplifica la función
fsu=simplify(fsum);%Simplifica la función
axes(handles.axes9);
cla
R = strcat('$$', 'A_0 = ', char(latex(r)),'$$');
text('Interpreter','latex',...
'String',R,...
'Position',[0 .9],...
'FontSize',12);
R = strcat('$$', 'A_k = ', char(latex(u)),'$$');
text('Interpreter','latex',...
'String',R,...
'Position',[0 .5],...
'FontSize',12);
R = strcat('$$', 'B_k = ', char(latex(v)),'$$');
text('Interpreter','latex',...
'String',R,...
'Position',[0 .2],...
'FontSize',12);
axis off;
axes(handles.axes10);
cla
R = strcat('$$', 'f(t) = ', char(latex(fsu)),'$$');
text('Interpreter','latex',...
'String',R,...
'Position',[0 .9],...
'FontSize',14);
axis off;
%**************************************************%
%*************************************************************************%
end
guidata(hObject, handles);
% --- Executes on slider movement.
function slider3_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties.
function slider3_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor',[.9 .9 .9]);
end
% --- Executes on selection change in menu1.
function menu1_Callback(hObject, eventdata, handles)
menu=get(handles.menu1,'Value'); %Obtener el valor del menu
switch menu %Opciones de señales
case 1 %si escogemos rectangular
axes(handles.axes8);
cla reset
axes(handles.axes7);
cla reset
axes(handles.axes9);
cla reset
axes(handles.axes10);
cla reset
axes(handles.axes9);
axis off;
axes(handles.axes10);
axis off;
case 2 %si escogemos rectangular
axes(handles.axes8);
cla reset
axes(handles.axes7);
cla reset
axes(handles.axes9);
cla reset
axes(handles.axes10);
cla reset
axes(handles.axes9);
axis off;
axes(handles.axes10);
axis off;
case 3 %si escogemos rectangular
axes(handles.axes8);
cla reset
axes(handles.axes7);
cla reset
axes(handles.axes9);
cla reset
axes(handles.axes10);
cla reset
axes(handles.axes9);
axis off;
axes(handles.axes10);
axis off;
end
% Hints: contents = cellstr(get(hObject,'String')) returns menu1 contents
as cell array
% contents{get(hObject,'Value')} returns selected item from menu1
% --- Executes during object creation, after setting all properties.
function menu1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function amplitud_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties.
function amplitud_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function periodo_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties.
function periodo_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function pushbutton12_ButtonDownFcn(hObject, eventdata, handles)
function armonico_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties.
function armonico_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end