commit 4915ab3bbee712827b54b2ae3ebfb6f3c4cf5e34 parent df0b105686d2d84890b3b2e23bb06cf20ca9a719 Author: Martin Klöckner <mjkloeckner@gmail.com> Date: Wed, 22 Oct 2025 17:00:47 -0300 Fix `time_graph_multiple_data` hardcoded save name Diffstat:
51 files changed, 50 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() @@ -120,10 +135,15 @@ def freq_domain(): freq_plot(48000, filter1_h, "filter1_h_fft", f_max=2000) freq_plot(48000, filter2_h, "filter2_h_fft", f_max=8000) - for i in [512, 1024, 2048, 4096]: + for i in [512, 1024, 2048]: for window in ['hann', 'hamming', 'blackman']: - spectogram_plot(file1_fs, file1_data, f"cancion1_espectograma_{window}_{i:04d}", N=i, win=window) - spectogram_plot(file2_fs, file2_data, f"cancion2_espectograma_{window}_{i:04d}", t=6, 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]) 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_espectograma_hamming_0512.png b/tp/plot/cancion2_espectograma_hamming_0512.png Binary files differ. diff --git a/tp/plot/cancion2_espectograma_hamming_1024.png b/tp/plot/cancion2_espectograma_hamming_1024.png Binary files differ. diff --git a/tp/plot/cancion2_espectograma_hamming_2048.png b/tp/plot/cancion2_espectograma_hamming_2048.png Binary files differ. diff --git a/tp/plot/cancion2_espectograma_hamming_4096.png b/tp/plot/cancion2_espectograma_hamming_4096.png Binary files differ. diff --git a/tp/plot/cancion2_espectograma_hann_0512.png b/tp/plot/cancion2_espectograma_hann_0512.png Binary files differ. diff --git a/tp/plot/cancion2_espectograma_hann_1024.png b/tp/plot/cancion2_espectograma_hann_1024.png Binary files differ. diff --git a/tp/plot/cancion2_espectograma_hann_2048.png b/tp/plot/cancion2_espectograma_hann_2048.png Binary files differ. diff --git a/tp/plot/cancion2_espectograma_hann_4096.png b/tp/plot/cancion2_espectograma_hann_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
