Está en la página 1de 7

FIEE - UNI

BMA20 - ALGORITMO Y ESTRUCTURA DE DATOS II

Series de Fourier
Pérez Torres, Hernando Alfredo1
1
Facultad de Ingeniería Eléctrica y electrónica,Universidad Nacional de Ingeniería, Rimac,Perú
* E-mail: hernando.perez.t@uni.pe

Abstract: El presente informe busca exponer un programa que muestre la gráfica de las series de fourier de diversas señales
periódicas, ingresando variables escenciales como el número de armónicos, la frecuencia, la amplitud, el número de periodos
a plasmar, etc. Y compararlos con su respectiva señal ideal, observando las diferencias como el fenómeno de Gibbs en las
discontinuidades o el redondeo en los "picos" de no derivabilidad.

1 Introducción 6. Onda 1 - t²
7. Onda x²
Las series de Fourier son series de términos coseno y seno y surgen
en la tarea práctica de representar funciones periódicas generales.
Como aplicación constituyen una herramienta muy importante en Luego, de acuerdo de la configuración del código, se pueden modi-
la solución de problemas en los que intervienen ecuaciones difer- ficar mediante el tecado variables importantyes como el número de
enciales ordinarias y parciales. La teoría de las series de Fourier es armónicos (N), la frecuencia (f0), la amplitud (A) o el número de
bastante complicada, pero la aplicación de estas series es simple. periodos a visualizar (M).
Las series de Fourier son, en cierto sentido, más universales que las Onda Diente de Sierra:
series de Taylor, ya que muchas funciones periódicas discontinuas La primera opción del menú manifiesta que la onda a mostar es
pueden desarrollarse en serie de Fourier, pero, desde luego, no tienen la señal diente de sierra o sawtooth(1). Al tratarse de una función
representaciones en serie de Taylor. La introducción de las series impar, los coeficientes an son iguales a cero, el valor medio a0
de Fourier (y de las integrales de Fourier) fue uno de los mayores tambien es cero y solo los coeficientes bn se expresan de la forma
avances jamas realizados en la física matemática y en sus aplica- siguiente.
ciones en la ingeniería, ya que las series de Fourier (y las integrales
de Fourier) son probablemente la herramienta más importante en la
solución de problemas con valores en la frontera. Esto se explicará a0 = 0 (1)
en el capítulo siguiente. La transformada de Laplace es con mucho la an = 0 (2)
transformada integral más importante en ingeniería. Desde el punto
2A
de vista de las aplicaciones, las si guientes en importancia serían bn = − (3)
quizás la transformada de Fourier, aún cuando su manejo resulta un 3n
tanto más difícil que la transformada de Laplace.
Onda Cuadrada:
La segunda opción del menú manifiesta que la onda a mostar es la
señal cuadrada o square. Al tratarse de una función impar, los coe-
2 Solución propuesta ficientes an son iguales a cero, el valor medio a0 tambien es cero y
solo los coeficientes bn se expresan solo cuando n es impar, de la
Para mostrar las gráficas de señales periódicas empeando la serie de
forma siguiente.
fourier, mostrando la cantidad de armónicos empleados.
Librerías:
Para que el código funcione adecuadamente se deben importar las a0 = 0 (4)
siguientes librerías. an = 0 (5)
4A
from scipy import signal bn = (6)
import matplotlib.pyplot as plt nπ
import numpy as np
Onda Triangular:
La tercera opción del menú manifiesta que la onda a mostar es la
Scipy se emplea para poder mostrar las señales ideales de las fun- señal triangular o sawtooth(1/2). Al tratarse de una función par, los
ciones periódicas como la onda triangular o la cuadrada. coeficientes bn son iguales a cero, el valor medio a0 tambien es cero
Matplotlib se emplea para imprimir gráficas (plotearlas). y solo los coeficientes an se expresan solo cuando n es impar, de la
NumPy sirve para poder hacer uso de números notables como pi (π) forma siguiente.
o el número de Euler, además de operadores trigonométricos como
el coseno. A continuación se plasma un menú de opciones con las
siete señales a visualizar, del siguiente modo. a0 = 0 (7)
bn = 0 (8)
8A
an = − 2 2 (9)
1. Onda Diente de Sierra n π
2. Onda Cuadrada
3. Onda Triangular Onda |cos(t)|:
4. Onda Valor Absoluto del Coseno La cuarta opción del menú manifiesta que la onda a mostar es la
5. Onda Semi Diente de Sierra señal rectificada completa o |cos(t)|. Al tratarse de una función par,

Algoritmos y Estructura de Datos II, pp. 1–7


© Universidad Nacional de Ingeniería 2022 1
los coeficientes bn son iguales a cero pero el valor medio a0 y los plt.xlabel('t')
coeficientes an no lo son y se expresan solo cuando n es par, de la plt.ylabel('F')
forma siguiente. plt.title(f'{F_q}, N = {n}')
plt.show()
2A
a0 = (10) print('SERIES DE FOURIER:\n'
π
bn = 0 (11) 'Se muestran las gráficas de las'
'siguientes funciones \nperiódicas'
4A(−1)n 'empleando las series de fourier:\n')
an = − (12)
π(n2 − 1) print('1. Onda Diente de Sierra\n'
'2. Onda Cuadrada\n'
Onda Semi Diente de Sierra: '3. Onda Triangular\n'
La cuarta opción del menú manifiesta que la onda a mostar es la señal '4. Onda Valor Absoluto del Coseno\n'
diente de sierra rectificada a midia onda. Al no ser par ni impar, los '5. Onda Semi Diente de Sierra\n'
coeficientes bn, el valor medio a0 y los coeficientes an existe y se '6. Onda 1 - t²\n'
expresan de la forma siguiente. '7. Onda x²\n')

A q = str(input('Seleccione la onda que desea


a0 = (13) visualizar: '))
4
f0 = int(input('Ingrese la frecuencia (Hz): '))
A(1 − (−1)n ) T = 1/f0
an = (14)
π2 A = float(input('Ingrese la amplitud (Volt): '))
A m = 2
bn = − (15)
nπ n = int(input('Ingrese la cantidad de armonicos
a procesar: '))
Onda 1 - t²: t = np.linspace(-m*T/2, m*T/2, 500*f0)
La quinta opción del menú manifiesta que la onda a mostar es la F_q = '0'
señal parabòlica invertida. Al ser par los coeficientes bn son cero, F_e = 0
el valor medio a0 y los coeficientes an existen y se expresan de la F = 0
forma siguiente. c = True
while c:
Aπ n if q == '1':
a0 = (16) F_q = 'Onda Diente de Sierra'
30
bn = 0 (17) F_e = A*signal.sawtooth(2*np.pi*f0*t,1)
a_0 = 0
n
0.4A(−1) F = a_0
an = − (18)
n2 for i in range(1, n+1):
b_n = -2*A/(3*i)
Onda t²: #b_n = (-2 * A / (3 * i)) *
La quinta opción del menú manifiesta que la onda a mostar es la señal np.cos(i * np.pi)
parabòlica. Al ser par los coeficientes bn son cero, el valor medio a0 F = F + b_n *
y los coeficientes an existen y se expresan de la forma siguiente. np.sin((2 * i * np.pi) / T * t)
c = False
Aπ n elif q == '2':
a0 = (19) F_q = 'Onda Cuadrada'
30
F_e = A*signal.square(2*np.pi*f0*t)
bn = 0 (20)
a_0 = 0
n
0.4A(−1) F = a_0
an = (21)
n2 for j in range(1, n+1):
i = 2 * j - 1
A continuación los foeficientes para cada caso se reemplazan en la b_n = 4 * A / (i * np.pi)
siguiente ecuación: F = F + b_n *
np.sin((2 * i * np.pi) / T * t)

X c = False
F = a0 + an · cos(2πnf0 t) + bn · sin(2πnf0 t) (22) elif q == '3':
n=1 F_q = 'Onda Triangular'
F_e = A*signal.sawtooth(2*np.pi*f0*t,1/2)
Se emplea lógica repetitiva (for) en cada caso en el código y lógica a_0 = 0
selectiva (if/elif) para escoger las opciones del menú. Finalmente se F = a_0
invoca a la función "plot" que se encarga de imprimir las imágenes. for j in range(1, n+1):
Código: i = 2 * j - 1
a_n = (-8 * A / ((np.pi * i) ** 2))
from scipy import signal F = F + a_n *
import matplotlib.pyplot as plt np.cos((2 * i * np.pi) / T * t)
import numpy as np c = False
elif q == '4':
def plot(F_e,F,F_q,n,m,T,A,t): F_q = 'Onda A*|Cos(t)|'
plt.plot(t, F_e) F_e = abs(A*np.cos(2*np.pi*f0*t))
plt.plot(t, F) a_0 = 2 * A / np.pi
plt.grid() F = a_0
plt.xlim(-m * T / 2, m * T / 2) for j in range(1, n+1):
plt.ylim(-1.3 * A, 1.3 * A) i = 2 * j

Tarea de investigación y desarrollo, pp. 1–7


2 © The Institution of Engineering and Technology 2022
a_n = -4 * A / (np.pi * (i**2-1))
* (-1)**(j)
F = F + a_n * np.cos((2 * i * np.pi)
/ T * t)
c = False
elif q == '5':
F_q = 'Onda Semi Diente de Sierra'
F_e = A * signal.sawtooth(2 * np.pi * f0 * t, 0)
* (0.5 + 0.5 * signal.square(2 * np.pi * f0 * t))
a_0 = A / 4
F = a_0
for i in range(1, n+1):
a_n = A * (1-(-1)**i)/((np.pi*i)**2)
b_n = A / (i*np.pi)
F = F + a_n * np.cos((2 * i * np.pi) /
T * t) + b_n * np.sin((2 * i * np.pi)
/ T * t)
c = False
elif q == '6':
F_q = 'Onda A(1 - (4/T²)t²)'
F_e = A * (1 - (4*f0**2)*t**2)
Fig. 1: Proceso del programa en la consola
a_0 = 2 * A / 3
F = a_0
for i in range(1, n+1):
a_n = A * (-4 * (-1)**i) / ((np.pi*i)
**2)
F = F + a_n * np.cos((2*i * np.pi) /
T * t)
c = False
elif q == '7':
F_q = 'Onda (4A/T²)x²'
F_e = (4*A/(T**2))*t**2
a_0 = A * np.pi**2/30
F = a_0
for i in range(1, n+1):
a_n = A * (0.4 * (-1)**i) / (i)**2
F = F + a_n * np.cos((2*i * np.pi) / T * t)
c = False
else:
q = input('Entrada incorrecta, intentelo de nuevo: ')
plot(F_e,F,F_q,n,m,T,A,t)
input()

3 Experimentos realizados Fig. 2: N = 1


A continuación se mostrará el proceso durante la ejecución,
mostrando la consola y finalmente se presentará tres gráficas por
cada señal para N = 1, N = 5 y N = 20.
Cuando se ejecuta el código, el programa muestra un menú con las
siete opciones posibles. Los coeficientes de la serie de Fourier están
en función de la amplitud (A), la frecuencia (f0) y la cantidad de
armónicos (N), como se muestra:

Fig. 3: N = 5

Algoritmos y Estructura de Datos II, pp. 1–7


© Universidad Nacional de Ingeniería 2022 3
Fig. 4: N = 20 Fig. 7: N = 20

Fig. 5: N = 1 Fig. 8: N = 1

Fig. 6: N = 5
Fig. 9: N = 5

4 Conclusiones
ingeniería se trabajan diferentes formas de señales tales como, sinu-
Las series de Fourier son de gran importancia ya que tienes muchas soidales, cuadrada y triangular. Todas estas señales mencionadas son
aplicaciones en diversos campos. En las ramas de la electrónica e

Tarea de investigación y desarrollo, pp. 1–7


4 © The Institution of Engineering and Technology 2022
Fig. 10: N = 20 Fig. 13: N = 20

Fig. 11: N = 1 Fig. 14: N = 1

Fig. 12: N = 5 Fig. 15: N = 5

periódicas ósea que se repiten luego de un tiempo. Mediante la apli- estas señales actúan. La idea básica de las series de Fourier es que
cación de la serie de Fourier se puede entender un poco mejor como toda la función periódica de un periodo T pueda ser expresada como

Algoritmos y Estructura de Datos II, pp. 1–7


© Universidad Nacional de Ingeniería 2022 5
Fig. 16: N = 20 Fig. 19: N = 20

Fig. 17: N = 1 Fig. 20: N = 1

Fig. 18: N = 5
Fig. 21: N = 5

una suma trigonométrica de senos y cosenos del mismo periodo.


Por una parte, las series de Fourier son un método mas completo y mas real que otras aproximaciones obtenidas por métodos como

Tarea de investigación y desarrollo, pp. 1–7


6 © The Institution of Engineering and Technology 2022
Fig. 22: N = 20

mínimos cuadrados ordinarios, promedios entre otros. Estas nos ayu-


dan a comprender el comportamiento de nuestros datos, por medio
de una aproximación trigonométrica.

5 References
Arriaga, A. (2016). Serie de Fourier.
Bruzual, R., Domínguez, M. (2017). Series de Fourier.
Cañada, A. (2017). Una perspectiva historica de las series de Fourier.
Cañada Villar, A. (2016). Series de Fourier: un tratado elemental,
con notas históricas y ejercicios resueltos.

Algoritmos y Estructura de Datos II, pp. 1–7


© Universidad Nacional de Ingeniería 2022 7

También podría gustarte