TB065

Trabajos Prácticos de la Materia Señales y Sistemas
Index Commits Files Refs
commit 885b59f664d934857d46248a72df82c546bd0416
parent bfc7031ce6863ad276d3d50d59071f11801c1476
Author: Martin J. Klöckner <mjkloeckner@gmail.com>
Date:   Thu, 12 Sep 2024 12:23:52 -0300

Shrink code even more by reusing previous cells variables
Diffstat:
Mprimera_parte/tpe_primera_parte.ipynb | 106+++++++++++++++++++++++++++++++++++++++++++------------------------------------
1 file changed, 58 insertions(+), 48 deletions(-)
diff --git a/primera_parte/tpe_primera_parte.ipynb b/primera_parte/tpe_primera_parte.ipynb
@@ -119,8 +119,8 @@
         "def graph_data(x, y, title, figure_number=0, t=0, dt=0, a=0, da=0):\n",
         "  figure, axis = plt.subplots(num=title, figsize=(12, 6))\n",
         "  figure_caption = 'Figura ' + str(figure_number) + ': ' + title\n",
-        "\n",
         "  figure.text(.5, -0.02, figure_caption, ha='center', fontsize=12)\n",
+        "\n",
         "  plt.plot(x, y, label='Señal de Audio')\n",
         "  axis.set(xlabel='Tiempo [s]', ylabel='Amplitud')\n",
         "  plt.grid(True)\n",
@@ -151,7 +151,7 @@
         "Para poder graficar los datos se necesita saber a qué tiempo corresponde cada valor de la\n",
         "señal; para eso, se utiliza el método [arange](https://numpy.org/doc/stable/reference/generated/numpy.arange.html#numpy-arange)\n",
         "de la libreria [numpy](https://numpy.org/doc/stable/index.html). Este método\n",
-        "devuelve un arreglo de números equidistantes del largo que recibe como parametro,\n",
+        "devuelve un arreglo de números equidistantes del largo que recibe como parámetro,\n",
         "en este caso del largo de los datos leídos del archivo. Para convertirlo a segundos\n",
         "se divide por la tasa de muestreo, la cual también se obtiene cuando se lee el archivo."
       ]
@@ -165,50 +165,50 @@
       },
       "outputs": [],
       "source": [
-        "time = np.arange(len(file1_data)) / file1_sample_rate"
+        "file1_time = np.arange(len(file1_data)) / file1_sample_rate"
       ]
     },
     {
       "cell_type": "markdown",
       "source": [
-        "Se define una variable para almacenar el título de la figura, esto para posteriormente pasarlo como argumento a la función `graph_data`."
+        "Para normalizar la amplitud de la señal entre -1 y 1 se divide por el valor máximo que toma el tipo de dato que almacena la señal. Para obtener este valor máximo se utiliza el método [iinfo](https://numpy.org/doc/stable/reference/generated/numpy.iinfo.html#numpy-iinfo) de la librería [numpy](https://numpy.org/doc/stable/index.html)."
       ],
       "metadata": {
-        "id": "HgT4xx4pKlFb"
+        "id": "3GofoYbR1-F1"
       },
-      "id": "HgT4xx4pKlFb"
+      "id": "3GofoYbR1-F1"
     },
     {
       "cell_type": "code",
       "source": [
-        "title = 'Gráfico de `' + str(file1_name) + '` en dominio de tiempo'"
+        "file1_data_normalized = file1_data / np.iinfo(file1_data.dtype).max"
       ],
       "metadata": {
-        "id": "hHn7vwU8KnQb"
+        "id": "eBDxfNSV1_6V"
       },
-      "id": "hHn7vwU8KnQb",
+      "id": "eBDxfNSV1_6V",
       "execution_count": 6,
       "outputs": []
     },
     {
       "cell_type": "markdown",
       "source": [
-        "Para normalizar la amplitud de la señal entre -1 y 1 se divide por el valor máximo que toma el tipo de dato que almacena la señal. Para obtener este valor máximo se utiliza el método [iinfo](https://numpy.org/doc/stable/reference/generated/numpy.iinfo.html#numpy-iinfo) de la librería [numpy](https://numpy.org/doc/stable/index.html)."
+        "Se define una variable para almacenar el título de la figura, esto para posteriormente pasarlo como argumento a la función `graph_data`."
       ],
       "metadata": {
-        "id": "3GofoYbR1-F1"
+        "id": "HgT4xx4pKlFb"
       },
-      "id": "3GofoYbR1-F1"
+      "id": "HgT4xx4pKlFb"
     },
     {
       "cell_type": "code",
       "source": [
-        "data = file1_data / np.iinfo(file1_data.dtype).max"
+        "title = 'Gráfico de `' + str(file1_name) + '` en dominio de tiempo'"
       ],
       "metadata": {
-        "id": "eBDxfNSV1_6V"
+        "id": "hHn7vwU8KnQb"
       },
-      "id": "eBDxfNSV1_6V",
+      "id": "hHn7vwU8KnQb",
       "execution_count": 7,
       "outputs": []
     },
@@ -228,7 +228,7 @@
       "id": "3d95e5a6-4c46-4dc3-bf8e-1ba82af6eb1d",
       "metadata": {
         "id": "3d95e5a6-4c46-4dc3-bf8e-1ba82af6eb1d",
-        "outputId": "7823b6da-d178-4d6b-e4f4-2d870eea3a4f",
+        "outputId": "34c96956-fde6-404c-8652-b4484f07a863",
         "colab": {
           "base_uri": "https://localhost:8080/",
           "height": 586
@@ -247,7 +247,7 @@
         }
       ],
       "source": [
-        "graph_data(time, data, title, 1);"
+        "graph_data(file1_time, file1_data_normalized, title, 1);"
       ]
     },
     {
@@ -257,16 +257,42 @@
         "id": "f424d686-a217-4edd-98d4-d066b44d9788"
       },
       "source": [
-        "Para el segundo archivo, se repite exactamente el mismo procedimiento que el realizado para el primero, solo cambia el nombre del archivo del que se obtienen los datos; en este caso siendo `Zombie.wav`."
+        "Para el segundo archivo, se repite exactamente el mismo procedimiento que el realizado para el primero, solo cambia el nombre del archivo del que se obtienen los datos; en este caso siendo `Zombie.wav`.\n",
+        "\n",
+        "Se obtienen los datos del archivo, se normalizan los datos y se contruye una lista de numeros equidistantes que se corresponda con cada valor de la lista de datos"
       ]
     },
     {
       "cell_type": "code",
+      "source": [
+        "file2_sample_rate, file2_data = wavfile.read(file2_name)\n",
+        "file2_time = np.arange(len(file2_data)) / file2_sample_rate\n",
+        "file2_data_normalized = file2_data / np.iinfo(file2_data.dtype).max"
+      ],
+      "metadata": {
+        "id": "sCac--rqwdMH"
+      },
+      "id": "sCac--rqwdMH",
       "execution_count": 9,
+      "outputs": []
+    },
+    {
+      "cell_type": "markdown",
+      "source": [
+        "Luego de obtener y procesar los datos, se grafican utilizando la funcion `grahp_data`:"
+      ],
+      "metadata": {
+        "id": "a0Yjhw5LwztN"
+      },
+      "id": "a0Yjhw5LwztN"
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 10,
       "id": "94dd2cf5-ff36-45ec-9593-80ecec73c414",
       "metadata": {
         "id": "94dd2cf5-ff36-45ec-9593-80ecec73c414",
-        "outputId": "250c1468-b017-44b9-f241-e805b82083b2",
+        "outputId": "8a9f9d63-c49e-4c7f-ed31-cb3c6ced87ac",
         "colab": {
           "base_uri": "https://localhost:8080/",
           "height": 586
@@ -285,12 +311,8 @@
         }
       ],
       "source": [
-        "file2_sample_rate, file2_data = wavfile.read(file2_name)\n",
-        "data = file2_data / np.iinfo(file2_data.dtype).max\n",
-        "time = np.arange(len(file2_data)) / file2_sample_rate\n",
         "title = 'Gráfico de `' + str(file2_name) + '` en dominio de tiempo'\n",
-        "\n",
-        "graph_data(time, data, title, 2);"
+        "graph_data(file2_time, file2_data_normalized, title, 2);"
       ]
     },
     {
@@ -310,11 +332,11 @@
     },
     {
       "cell_type": "code",
-      "execution_count": 10,
+      "execution_count": 11,
       "id": "00ee7caa-47c8-43bc-8d56-2e5cf1fac363",
       "metadata": {
         "id": "00ee7caa-47c8-43bc-8d56-2e5cf1fac363",
-        "outputId": "d2490a89-7989-46cd-e376-fd243f68c656",
+        "outputId": "1097ec60-29f2-423f-c935-b68e89ede536",
         "colab": {
           "base_uri": "https://localhost:8080/",
           "height": 586
@@ -333,11 +355,8 @@
         }
       ],
       "source": [
-        "data = file1_data / np.iinfo(file1_data.dtype).max\n",
-        "time = np.arange(len(file1_data)) / file1_sample_rate\n",
         "title = 'Gráfico de `' + str(file1_name) + '` en dominio de tiempo (piano)'\n",
-        "\n",
-        "graph_data(time, data, title, 3, 1.13, 0.17);"
+        "graph_data(file1_time, file1_data_normalized, title, 3, 1.13, 0.17);"
       ]
     },
     {
@@ -353,11 +372,8 @@
     {
       "cell_type": "code",
       "source": [
-        "data = file1_data / np.iinfo(file1_data.dtype).max\n",
-        "time = np.arange(len(file1_data)) / file1_sample_rate\n",
         "title = 'Gráfico de `' + str(file1_name) + '` en dominio de tiempo (piano)'\n",
-        "\n",
-        "graph_data(time, data, title, 4, 1.138, 0.016, 1.14228, 0.0039)"
+        "graph_data(file1_time, file1_data_normalized, title, 4, 1.138, 0.016, 1.14228, 0.0039)"
       ],
       "metadata": {
         "colab": {
@@ -365,10 +381,10 @@
           "height": 586
         },
         "id": "yudC1ja8nIS9",
-        "outputId": "8e3f3c9f-3b16-4ac5-b169-3a69e727f8a4"
+        "outputId": "9edc482d-291a-4224-89d3-254b9c4e4184"
       },
       "id": "yudC1ja8nIS9",
-      "execution_count": 11,
+      "execution_count": 12,
       "outputs": [
         {
           "output_type": "display_data",
@@ -397,11 +413,8 @@
     {
       "cell_type": "code",
       "source": [
-        "data = file1_data / np.iinfo(file1_data.dtype).max\n",
-        "time = np.arange(len(file1_data)) / file1_sample_rate\n",
         "title = 'Gráfico de `' + str(file1_name) + '` en dominio de tiempo (trompeta)'\n",
-        "\n",
-        "graph_data(time, data, title, 5, 13.4, 0.02, 13.40642, 0.0022);"
+        "graph_data(file1_time, file1_data_normalized, title, 5, 13.4, 0.02, 13.40642, 0.0022);"
       ],
       "metadata": {
         "colab": {
@@ -409,10 +422,10 @@
           "height": 586
         },
         "id": "lX46VNJYsC6w",
-        "outputId": "d99e6c56-d233-4ad5-eade-15e6e05bbb5b"
+        "outputId": "68e2bd8d-cb49-4ae8-81d8-5ce18aea5a1f"
       },
       "id": "lX46VNJYsC6w",
-      "execution_count": 12,
+      "execution_count": 13,
       "outputs": [
         {
           "output_type": "display_data",
@@ -453,11 +466,11 @@
     },
     {
       "cell_type": "code",
-      "execution_count": 13,
+      "execution_count": 14,
       "id": "dfc2b4b4-7d3a-4da5-8b22-45d224050493",
       "metadata": {
         "id": "dfc2b4b4-7d3a-4da5-8b22-45d224050493",
-        "outputId": "34ce94d6-7fc5-44b0-d3dc-d313d3005dc9",
+        "outputId": "00cac59b-264f-41e8-ef63-e3e4b2d31fcb",
         "colab": {
           "base_uri": "https://localhost:8080/",
           "height": 586
@@ -476,11 +489,8 @@
         }
       ],
       "source": [
-        "data = file2_data / np.iinfo(file2_data.dtype).max\n",
-        "time = np.arange(len(file2_data)) / file2_sample_rate\n",
         "title = 'Gráfico de `' + str(file2_name) + '` en dominio de tiempo (percusión)'\n",
-        "\n",
-        "graph_data(time, data, title, 6, 6.0, 0.1);"
+        "graph_data(file2_time, file2_data_normalized, title, 6, 6.0, 0.1);"
       ]
     },
     {