From ffc17c200fd83b1c1f16a258bbcb518c8478a5e7 Mon Sep 17 00:00:00 2001 From: PERBEN Anatole <anatole.perben@imt-atlantique.net> Date: Wed, 28 May 2025 23:30:09 +0000 Subject: [PATCH] Upload New File --- src/wav/question_3_15.m | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/wav/question_3_15.m diff --git a/src/wav/question_3_15.m b/src/wav/question_3_15.m new file mode 100644 index 0000000..0ae1034 --- /dev/null +++ b/src/wav/question_3_15.m @@ -0,0 +1,41 @@ +function y = effet_delay(x, delay_time, g, Fe) +% effet_delay - applique un effet de delay simple à un signal +% +% Entrées : +% x : signal d'entrée +% delay_time : durée du delay (en secondes) +% g : coefficient d'amortissement +% Fe : fréquence d'échantillonnage (en Hz) +% +% Sortie : +% y : signal de sortie après delay + + % Convertir le temps de delay en nombre d’échantillons + tau = round(delay_time * Fe); % tau doit être un entier + + % Vecteurs des coefficients du filtre + b = 1; % Numérateur : pas de modification directe + a = [1 zeros(1, tau - 1) -g]; % Dénominateur : y(k) + g*y(k - tau) + + % Appliquer le filtre + y = filter(b,a,x); +end +[x, Fe] = audioread('single_tone_guitar_nylon_string_a3.wav'); % Charger un fichier audio mono +x = x(:,1); % Ne garder qu’un seul canal si stéréo + +tau_sec = 0.001; % Durée du delay en secondes +g = 0.9; % Coefficient d'amortissement + +% Appliquer l'effet de delay +y = effet_delay(x, tau_sec, g, Fe); + +% Écoute du résultat +soundsc(y, Fe); + +% Affichage temporel +t = (0:length(y)-1)/Fe; +plot(t, y); +xlabel('Temps (s)'); +ylabel('Amplitude'); +title('Signal avec effet de delay'); +grid on; -- GitLab