# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .py
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: 'Python 3.7.10 64-bit (''jupyter-book'': conda)'
#     name: python371064bit09184eecf8b743129c3338ccdb3737f2
# ---

# **Modelo armónico**
#
# La serie de Fourier 
#
# $$
# s(t) = \frac{a_0}{2} + \sum_{k=1}^{N_h} a_k \cos \left( \frac{2\pi k}{P}  t  \right) + b_k \sin \left( \frac{2\pi k}{P}  t  \right)
# $$
#
# puede usarse para sintetizar cualquier función con período $P$ a un grado arbitrario de precisión según la cantidad de componentes $N_h$ que se utilicen
#
# Los parámetros de la serie de Fourier son $(a_k, b_k) ~ \forall k$. En primera instancia considere el caso particular $a_k=0$ $b_k = 1/k$
#
# Para hoy:
#
# - Implementemos y visualicemos la serie de Fourier usando `matplotlib`
# - Modifiquemos dinamicamente la serie usando `ipywidgets` sobre el período y la cantidad de componentes
# - "Escuchemos" el resultado usando `IPython.Audio` (Use una frecuencia de muestre de 44100 muestras por segundo)
#

# Descomente la magia `ipympl` si usa jupyter lab o VSCode
# #%matplotlib notebook
# %matplotlib ipympl
import matplotlib.pyplot as plt
import numpy as np
import ipywidgets as widgets



StarcoderdataJupyterScriptsDedupFiltered