From 586591e8e8e30a76aa6c93690e85d1e5d0070cdc Mon Sep 17 00:00:00 2001 From: GERBAUD Paul <paul.gerbaud@imt-atlantique.net> Date: Mon, 28 Apr 2025 07:01:45 +0000 Subject: [PATCH] Add new file --- matlab 1.1 | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 matlab 1.1 diff --git a/matlab 1.1 b/matlab 1.1 new file mode 100644 index 0000000..9bf0646 --- /dev/null +++ b/matlab 1.1 @@ -0,0 +1,39 @@ +% analyse_guitare.m +% Analyse du spectre d'un son de guitare (nylon-guitar.wav) + +% Charger le fichier audio +[x, fe] = audioread('nylon-guitar.wav'); + +% Si le son est stereo, convertir en mono +if size(x,2) == 2 + x = mean(x, 2); +end + +% Nombre d'echantillons +N = length(x); + +% Calcul de la FFT +X = fft(x); + +% Deplacement du zero de la FFT au centre +X_shifted = fftshift(X); + +% Axe des frequences +f = linspace(-fe/2, fe/2, N); + +% Amplitude en dB +amplitude_dB = 20*log10(abs(X_shifted) + eps); % eps pour eviter log(0) + +% Affichage du spectre +figure; +plot(f, amplitude_dB); +xlabel('Frequence (Hz)'); +ylabel('Amplitude (dB)'); +title('Spectre en amplitude de nylon-guitar.wav'); +grid on; +xlim([-fe/2 fe/2]); + +% Determination de la frequence fondamentale +[~, idx_max] = max(abs(X(1:floor(N/2)))); % Cherche sur les frequences positives +f1 = (idx_max-1) * fe/N; +disp(['Frequence fondamentale estimee : ', num2str(f1), ' Hz']); \ No newline at end of file -- GitLab