From 71e50ae43677f4741e88015aa2f3e68979ec02e6 Mon Sep 17 00:00:00 2001 From: DUBOC Marc <marc.duboc@imt-atlantique.net> Date: Mon, 28 Apr 2025 08:44:31 +0000 Subject: [PATCH] Delete untitled.m --- untitled.m | 69 ------------------------------------------------------ 1 file changed, 69 deletions(-) delete mode 100644 untitled.m diff --git a/untitled.m b/untitled.m deleted file mode 100644 index 61ff53a..0000000 --- a/untitled.m +++ /dev/null @@ -1,69 +0,0 @@ -% Charger les fichiers audio des pianos -[piano1, fs_piano1] = audioread('wav/single_tone_piano1.wav'); -[piano2, fs_piano2] = audioread('wav/single_tone_piano2.wav'); - -% Calculer la transformée de Fourier -N_piano1 = length(piano1); -N_piano2 = length(piano2); - -fft_piano1 = fft(piano1); -fft_piano2 = fft(piano2); - -% Décaler les fréquences -fft_piano1_shifted = fftshift(fft_piano1); -fft_piano2_shifted = fftshift(fft_piano2); - -% Calculer les fréquences correspondantes -frequencies_piano1 = (-N_piano1/2:N_piano1/2-1)*(fs_piano1/N_piano1); -frequencies_piano2 = (-N_piano2/2:N_piano2/2-1)*(fs_piano2/N_piano2); - -% Convertir en décibels -amplitude_db_piano1 = 20*log10(abs(fft_piano1_shifted)); -amplitude_db_piano2 = 20*log10(abs(fft_piano2_shifted)); - -% Visualiser les spectres -figure; -plot(frequencies_piano1, amplitude_db_piano1, 'b'); -hold on; -plot(frequencies_piano2, amplitude_db_piano2, 'r'); -title('Spectres d''amplitude des pianos'); -xlabel('Fréquence (Hz)'); -ylabel('Amplitude (dB)'); -legend('Piano 1', 'Piano 2'); -xlim([-fs_piano1/2 fs_piano1/2]); - -% Déterminer la fréquence fondamentale -[~, idx_piano1] = max(amplitude_db_piano1); -[~, idx_piano2] = max(amplitude_db_piano2); -f1_piano1 = frequencies_piano1(idx_piano1); -f1_piano2 = frequencies_piano2(idx_piano2); - -fprintf('Fréquence fondamentale du piano 1 : %.2f Hz\n', f1_piano1); -fprintf('Fréquence fondamentale du piano 2 : %.2f Hz\n', f1_piano2); - -% Calculer l'inharmonicité -n = 1:10; % Considérons les 10 premières harmoniques -inharmonicity_piano1 = zeros(size(n)); -inharmonicity_piano2 = zeros(size(n)); - -for i = 1:length(n) - f_n_theoretical1 = n(i) * f1_piano1; - f_n_theoretical2 = n(i) * f1_piano2; - - % Trouver la fréquence mesurée la plus proche - [~, idx_measured1] = min(abs(frequencies_piano1 - f_n_theoretical1)); - [~, idx_measured2] = min(abs(frequencies_piano2 - f_n_theoretical2)); - - f_n_measured1 = frequencies_piano1(idx_measured1); - f_n_measured2 = frequencies_piano2(idx_measured2); - - % Calculer l'inharmonicité en cents - inharmonicity_piano1(i) = 1200 * (log2(f_n_measured1) - log2(f_n_theoretical1)); - inharmonicity_piano2(i) = 1200 * (log2(f_n_measured2) - log2(f_n_theoretical2)); -end - -fprintf('Inharmonicité du piano 1 (en cents) :\n'); -disp(inharmonicity_piano1); - -fprintf('Inharmonicité du piano 2 (en cents) :\n'); -disp(inharmonicity_piano2); -- GitLab