repos/TB065

Commits Files Refs
commit 59760372a38caa18eacd3de338ae0b216b20f318
parent 3a1b6dfdaec83807a22699350a67f341fb6754f8
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date:   Thu, 23 Oct 2025 20:03:01 -0300

Merge remote-tracking branch 'origin/master'

Diffstat:
Mtp/main.py | 61++++++++++++++++++++++++++++++++++++++++---------------------
Mtp/plot/a4_clarinete.png | 0
Mtp/plot/a4_flauta.png | 0
Mtp/plot/a4_violin.png | 0
Mtp/plot/cancion1.png | 0
Mtp/plot/cancion1_0_248s_a_0_256s.png | 0
Mtp/plot/cancion1_0_520s_a_0_528s.png | 0
Mtp/plot/cancion1_espectograma_blackman_0512.png | 0
Mtp/plot/cancion1_espectograma_blackman_1024.png | 0
Mtp/plot/cancion1_espectograma_blackman_2048.png | 0
Dtp/plot/cancion1_espectograma_blackman_4096.png | 0
Mtp/plot/cancion1_espectograma_hamming_0512.png | 0
Mtp/plot/cancion1_espectograma_hamming_1024.png | 0
Mtp/plot/cancion1_espectograma_hamming_2048.png | 0
Dtp/plot/cancion1_espectograma_hamming_4096.png | 0
Mtp/plot/cancion1_espectograma_hann_0512.png | 0
Mtp/plot/cancion1_espectograma_hann_1024.png | 0
Mtp/plot/cancion1_espectograma_hann_2048.png | 0
Dtp/plot/cancion1_espectograma_hann_4096.png | 0
Mtp/plot/cancion1_fft.png | 0
Mtp/plot/cancion1_filter1_output_compare.png | 0
Atp/plot/cancion1_filter1_output_compare_0_248_a_0_256.png | 0
Mtp/plot/cancion1_filter1_output_fft.png | 0
Atp/plot/cancion1_filter2_output_compare.png | 0
Atp/plot/cancion1_filter2_output_compare_0_248_a_0_256.png | 0
Mtp/plot/cancion1_filter2_output_fft.png | 0
Mtp/plot/cancion2.png | 0
Mtp/plot/cancion2_14_72s_a_14_73s.png | 0
Mtp/plot/cancion2_26_57s_a_26_58s.png | 0
Atp/plot/cancion2_6s_filter1_output_compare.png | 0
Atp/plot/cancion2_6s_filter1_output_compare_26_57_a_26_58.png | 0
Atp/plot/cancion2_6s_filter2_output_compare.png | 0
Atp/plot/cancion2_6s_filter2_output_compare_26_57_a_26_58.png | 0
Mtp/plot/cancion2_espectograma_blackman_0512.png | 0
Mtp/plot/cancion2_espectograma_blackman_1024.png | 0
Mtp/plot/cancion2_espectograma_blackman_2048.png | 0
Dtp/plot/cancion2_espectograma_blackman_4096.png | 0
Mtp/plot/cancion2_fft.png | 0
Mtp/plot/cancion2_filter1_output_fft.png | 0
Mtp/plot/cancion2_filter2_output_fft.png | 0
Mtp/plot/filter1_h_fft.png | 0
Mtp/plot/filter2_h_fft.png | 0
Mtp/utils.py | 24+++++++++---------------
43 files changed, 49 insertions(+), 36 deletions(-)
diff --git a/tp/main.py b/tp/main.py
@@ -32,38 +32,47 @@ def time_domain_cancion1():
 
     ### porciones cuasi-periodicas 'cancion1'
     time_plot(file1_fs, file1_data, "cancion1_0_248s_a_0_256s",
-               t_start=0.248, t_width=0.008, a=0.24978, da=0.003)
+               t=0.248, dt=0.008, a=0.24978, da=0.003)
 
     time_plot(file1_fs, file1_data, "cancion1_0_520s_a_0_528s",
-               t_start=0.520, t_width=0.008, a=0.5208, da=0.003)
+               t=0.520, dt=0.008, a=0.5208, da=0.003)
 
     ### salida de filtro 'cancion1'
-    save_convolved_to_wav(file1_filter1_output, file1_fs, "file1_filter1_output.wav")
-    save_convolved_to_wav(file1_filter2_output, file1_fs, "file1_filter2_output.wav")
+    save_convolved_to_wav(file1_filter1_output, file1_fs,
+                          "file1_filter1_output.wav")
+
+    save_convolved_to_wav(file1_filter2_output, file1_fs,
+                          "file1_filter2_output.wav")
 
     ### grafico comparando la muestra 1 original y filtrada 1
     data_arr = [normalize(file1_data), normalize(file1_filter1_output)]
     leg_arr = ['Señal de audio', 'Señal de audio filtrada']
 
-    time_plot_multiple(file1_fs, data_arr, leg_arr, "cancion1_filter1_output_compare.png")
-    time_plot_multiple(file1_fs, data_arr, leg_arr, "cancion1_filter1_output_compare_0_248_a_0_256", t=0.248, dt=0.008)
+    time_plot_multiple(file1_fs, data_arr, leg_arr,
+                       "cancion1_filter1_output_compare")
+
+    time_plot_multiple(file1_fs, data_arr, leg_arr,
+                       "cancion1_filter1_output_compare_0_248_a_0_256",
+                       t=0.248, dt=0.008)
 
     ### grafico comparando la muestra 1 original y filtrada 2
     data_arr = [normalize(file1_data), normalize(file1_filter2_output)]
     leg_arr = ['Señal de audio', 'Señal de audio filtrada']
 
-    time_plot_multiple(file1_fs, data_arr, leg_arr, "cancion1_filter2_output_compare")
     time_plot_multiple(file1_fs, data_arr, leg_arr,
-                       "cancion1_filter2_output_compare_0_248_a_0_256", t=0.248, dt=0.008)
+                       "cancion1_filter2_output_compare")
+    time_plot_multiple(file1_fs, data_arr, leg_arr,
+                       "cancion1_filter2_output_compare_0_248_a_0_256",
+                       t=0.248, dt=0.008)
 
 ## 'cancion2'
 def time_domain_cancion2():
     ### grafico completo
-    time_plot(file2_fs, file2_data, "cancion2", t_start=6)
+    time_plot(file2_fs, file2_data, "cancion2", t=6)
 
     ### porciones cuasi-periodicas 'cancion2'
-    time_plot(file2_fs, file2_data, "cancion2_14_72s_a_14_73s", t_start=14.720, t_width=0.01)
-    time_plot(file2_fs, file2_data, "cancion2_26_57s_a_26_58s", t_start=26.570, t_width=0.01)
+    time_plot(file2_fs, file2_data, "cancion2_14_72s_a_14_73s", t=14.720, dt=0.01)
+    time_plot(file2_fs, file2_data, "cancion2_26_57s_a_26_58s", t=26.570, dt=0.01)
 
     save_convolved_to_wav(file2_filter1_output, file2_fs, "file2_filter1_output.wav")
     save_convolved_to_wav(file2_filter2_output, file2_fs, "file2_filter2_output.wav")
@@ -72,15 +81,21 @@ def time_domain_cancion2():
     data_arr = [normalize(file2_data), normalize(file2_filter1_output)]
     leg_arr = ['Señal original', 'Señal filtrada']
 
-    time_plot_multiple(file2_fs, data_arr, leg_arr, "cancion2_6s_filter1_output_compare", t=6)
-    time_plot_multiple(file2_fs, data_arr, leg_arr, "cancion2_6s_filter1_output_compare_26_57_a_26_58", t=26.57, dt=0.01)
+    time_plot_multiple(file2_fs, data_arr, leg_arr,
+                       "cancion2_6s_filter1_output_compare", t=6)
+    time_plot_multiple(file2_fs, data_arr, leg_arr,
+                       "cancion2_6s_filter1_output_compare_26_57_a_26_58",
+                       t=26.57, dt=0.01)
 
     ### grafico comparando la muestra 2 original y filtrada 2
     data_arr = [normalize(file2_data), normalize(file2_filter2_output)]
     leg_arr = ['Señal original', 'Señal filtrada']
 
-    time_plot_multiple(file2_fs, data_arr, leg_arr, "cancion2_6s_filter2_output_compare", t=6)
-    time_plot_multiple(file2_fs, data_arr, leg_arr, "cancion2_6s_filter2_output_compare_26_57_a_26_58", t=26.57, dt=0.01)
+    time_plot_multiple(file2_fs, data_arr, leg_arr,
+                       "cancion2_6s_filter2_output_compare", t=6)
+    time_plot_multiple(file2_fs, data_arr, leg_arr,
+                       "cancion2_6s_filter2_output_compare_26_57_a_26_58",
+                       t=26.57, dt=0.01)
 
 def time_domain_music_instruments():
     ## Sonido de instrumentos musicales
@@ -89,9 +104,9 @@ def time_domain_music_instruments():
     a4_violin_fs, a4_violin_data = wavfile.read(a4_violin_file_path)
 
     ### grafico de los instrumentos musicales
-    time_plot(a4_flauta_fs, a4_flauta_data, "a4_flauta", t_start=0.25, t_width=0.010)
-    time_plot(a4_clarinete_fs, a4_clarinete_data, "a4_clarinete", t_start=0.25, t_width=0.010)
-    time_plot(a4_violin_fs, a4_violin_data, "a4_violin", t_start=0.25, t_width=0.010)
+    time_plot(a4_flauta_fs, a4_flauta_data, "a4_flauta", t=0.25, dt=0.010)
+    time_plot(a4_clarinete_fs, a4_clarinete_data, "a4_clarinete", t=0.25, dt=0.010)
+    time_plot(a4_violin_fs, a4_violin_data, "a4_violin", t=0.25, dt=0.010)
 
 def time_domain():
     time_domain_cancion1()
@@ -125,11 +140,15 @@ def freq_domain():
     # 'bartlett': triangular
     # https://en.wikipedia.org/wiki/Window_function
 
-    for i in [512, 1024, 2048, 4096]:
+    for i in [512, 1024, 2048]:
         for window in ['boxcar', 'bartlett', 'hann', 'hamming']:
-            spectogram_plot(file1_fs, file1_data, f"cancion1_espectograma_{window}_{i:04d}", N=i, win=window)
+            spectogram_plot(file1_fs, file1_data,
+                            f"cancion1_espectograma_{window}_{i:04d}", N=i,
+                            win=window, ylim=[0, 17500])
+
             spectogram_plot(file2_fs, file2_data,
-                            f"cancion2_espectograma_{window}_{i:04d}", t=6, N=i, win=window, ylim=[0, 8000])
+                            f"cancion2_espectograma_{window}_{i:04d}", t=6, N=i,
+                            win=window, ylim=[0, 8000])
 
 time_domain()
 freq_domain()
diff --git a/tp/plot/a4_clarinete.png b/tp/plot/a4_clarinete.png
Binary files differ.
diff --git a/tp/plot/a4_flauta.png b/tp/plot/a4_flauta.png
Binary files differ.
diff --git a/tp/plot/a4_violin.png b/tp/plot/a4_violin.png
Binary files differ.
diff --git a/tp/plot/cancion1.png b/tp/plot/cancion1.png
Binary files differ.
diff --git a/tp/plot/cancion1_0_248s_a_0_256s.png b/tp/plot/cancion1_0_248s_a_0_256s.png
Binary files differ.
diff --git a/tp/plot/cancion1_0_520s_a_0_528s.png b/tp/plot/cancion1_0_520s_a_0_528s.png
Binary files differ.
diff --git a/tp/plot/cancion1_espectograma_blackman_0512.png b/tp/plot/cancion1_espectograma_blackman_0512.png
Binary files differ.
diff --git a/tp/plot/cancion1_espectograma_blackman_1024.png b/tp/plot/cancion1_espectograma_blackman_1024.png
Binary files differ.
diff --git a/tp/plot/cancion1_espectograma_blackman_2048.png b/tp/plot/cancion1_espectograma_blackman_2048.png
Binary files differ.
diff --git a/tp/plot/cancion1_espectograma_blackman_4096.png b/tp/plot/cancion1_espectograma_blackman_4096.png
Binary files differ.
diff --git a/tp/plot/cancion1_espectograma_hamming_0512.png b/tp/plot/cancion1_espectograma_hamming_0512.png
Binary files differ.
diff --git a/tp/plot/cancion1_espectograma_hamming_1024.png b/tp/plot/cancion1_espectograma_hamming_1024.png
Binary files differ.
diff --git a/tp/plot/cancion1_espectograma_hamming_2048.png b/tp/plot/cancion1_espectograma_hamming_2048.png
Binary files differ.
diff --git a/tp/plot/cancion1_espectograma_hamming_4096.png b/tp/plot/cancion1_espectograma_hamming_4096.png
Binary files differ.
diff --git a/tp/plot/cancion1_espectograma_hann_0512.png b/tp/plot/cancion1_espectograma_hann_0512.png
Binary files differ.
diff --git a/tp/plot/cancion1_espectograma_hann_1024.png b/tp/plot/cancion1_espectograma_hann_1024.png
Binary files differ.
diff --git a/tp/plot/cancion1_espectograma_hann_2048.png b/tp/plot/cancion1_espectograma_hann_2048.png
Binary files differ.
diff --git a/tp/plot/cancion1_espectograma_hann_4096.png b/tp/plot/cancion1_espectograma_hann_4096.png
Binary files differ.
diff --git a/tp/plot/cancion1_fft.png b/tp/plot/cancion1_fft.png
Binary files differ.
diff --git a/tp/plot/cancion1_filter1_output_compare.png b/tp/plot/cancion1_filter1_output_compare.png
Binary files differ.
diff --git a/tp/plot/cancion1_filter1_output_compare_0_248_a_0_256.png b/tp/plot/cancion1_filter1_output_compare_0_248_a_0_256.png
Binary files differ.
diff --git a/tp/plot/cancion1_filter1_output_fft.png b/tp/plot/cancion1_filter1_output_fft.png
Binary files differ.
diff --git a/tp/plot/cancion1_filter2_output_compare.png b/tp/plot/cancion1_filter2_output_compare.png
Binary files differ.
diff --git a/tp/plot/cancion1_filter2_output_compare_0_248_a_0_256.png b/tp/plot/cancion1_filter2_output_compare_0_248_a_0_256.png
Binary files differ.
diff --git a/tp/plot/cancion1_filter2_output_fft.png b/tp/plot/cancion1_filter2_output_fft.png
Binary files differ.
diff --git a/tp/plot/cancion2.png b/tp/plot/cancion2.png
Binary files differ.
diff --git a/tp/plot/cancion2_14_72s_a_14_73s.png b/tp/plot/cancion2_14_72s_a_14_73s.png
Binary files differ.
diff --git a/tp/plot/cancion2_26_57s_a_26_58s.png b/tp/plot/cancion2_26_57s_a_26_58s.png
Binary files differ.
diff --git a/tp/plot/cancion2_6s_filter1_output_compare.png b/tp/plot/cancion2_6s_filter1_output_compare.png
Binary files differ.
diff --git a/tp/plot/cancion2_6s_filter1_output_compare_26_57_a_26_58.png b/tp/plot/cancion2_6s_filter1_output_compare_26_57_a_26_58.png
Binary files differ.
diff --git a/tp/plot/cancion2_6s_filter2_output_compare.png b/tp/plot/cancion2_6s_filter2_output_compare.png
Binary files differ.
diff --git a/tp/plot/cancion2_6s_filter2_output_compare_26_57_a_26_58.png b/tp/plot/cancion2_6s_filter2_output_compare_26_57_a_26_58.png
Binary files differ.
diff --git a/tp/plot/cancion2_espectograma_blackman_0512.png b/tp/plot/cancion2_espectograma_blackman_0512.png
Binary files differ.
diff --git a/tp/plot/cancion2_espectograma_blackman_1024.png b/tp/plot/cancion2_espectograma_blackman_1024.png
Binary files differ.
diff --git a/tp/plot/cancion2_espectograma_blackman_2048.png b/tp/plot/cancion2_espectograma_blackman_2048.png
Binary files differ.
diff --git a/tp/plot/cancion2_espectograma_blackman_4096.png b/tp/plot/cancion2_espectograma_blackman_4096.png
Binary files differ.
diff --git a/tp/plot/cancion2_fft.png b/tp/plot/cancion2_fft.png
Binary files differ.
diff --git a/tp/plot/cancion2_filter1_output_fft.png b/tp/plot/cancion2_filter1_output_fft.png
Binary files differ.
diff --git a/tp/plot/cancion2_filter2_output_fft.png b/tp/plot/cancion2_filter2_output_fft.png
Binary files differ.
diff --git a/tp/plot/filter1_h_fft.png b/tp/plot/filter1_h_fft.png
Binary files differ.
diff --git a/tp/plot/filter2_h_fft.png b/tp/plot/filter2_h_fft.png
Binary files differ.
diff --git a/tp/utils.py b/tp/utils.py
@@ -67,10 +67,10 @@ def time_graph_multiple_data(x, y_arr, y_lab, t=0, dt=0, a=0, da=0, show=True):
 # todos deben la misma cantidad de elementos que el primero
 def time_plot_multiple(fs, data_arr, leg_arr, save_name="", t=0, dt=0, a=0, da=0, show=False):
     x = np.arange(len(data_arr[0])) / fs
-    fig, ax = time_graph_multiple_data(x, data_arr, leg_arr, t=t, dt=dt, a=a, da=da, show=show)
+    fig, ax = time_graph_multiple_data(x, data_arr, leg_arr, t, dt, a=a, da=da, show=show)
 
     if show == False:
-        save_plot(fig, "cancion1_filter1_output_compare.png")
+        save_plot(fig, save_name)
 
     return fig, ax
 
@@ -96,7 +96,7 @@ def time_graph_data(x, y, t=0, dt=0, a=0, da=0, show=True):
     # max 3 decimales
     axis.xaxis.set_major_formatter(FuncFormatter(ticks_label_format))
 
-    axis.set_xlim([t, t+dt if dt > 0 else x[-1]])
+    axis.set_xlim(t, t+dt if dt > 0 else x[-1])
     axis.set_ylim(-1.1, 1.1)
 
     # resaltado de parte de la señal (solo si a != 0)
@@ -115,12 +115,12 @@ def normalize(data):
     data /= np.max(np.abs(data))
     return data
 
-def time_plot(fs, data, save_name="", t_start=0, t_width=0, a=0, da=0):
+def time_plot(fs, data, save_name="", t=0, dt=0, a=0, da=0):
     # normaliza la amplitud dividiendo por el valor maximo del tipo de dato
     data = normalize(data)
 
-    t = np.arange(len(data)) / fs
-    fig, ax = time_graph_data(t, data, t=t_start, dt=t_width, a=a, da=da, show=False)
+    x = np.arange(len(data)) / fs
+    fig, ax = time_graph_data(x, data, t, dt, a, da, False)
 
     if save_name != "":
         save_plot(fig, save_name)
@@ -133,17 +133,11 @@ def save_plot(fig, name):
     file_path_no_ext = f'{plot_dir_name}/{file_name}'
 
     save_name = f'{file_path_no_ext}.png'
-    # if os.path.exists(save_name):
-    #     i = 0
-    #     while os.path.exists(f'{file_path_no_ext}_{i}.png'):
-    #         i += 1
-
-    #     save_name = f'{file_path_no_ext}_{i}.png'
+    print(save_name)
 
-    print(f'"{save_name}"')
      # crea carpeta para plots
     os.makedirs(plot_dir_name, exist_ok=True)
-    fig.savefig(save_name, dpi=200, bbox_inches="tight")
+    fig.savefig(save_name, dpi=250, bbox_inches="tight")
     plt.close(fig) # liberar memoria
 
 def save_convolved_to_wav(convolved, fs, file_path):
@@ -157,7 +151,7 @@ def save_convolved_to_wav(convolved, fs, file_path):
     os.makedirs(out_dir_name, exist_ok=True)
 
     file_path = f'{out_dir_name}/{file_path}'
-    print(f'"{file_path}"')
+    print(file_path)
     wavfile.write(file_path, fs, convolved_int16)
 
 # frecuencia