diff --git a/src/wav/question_3_6.m b/src/wav/question_3_6.m new file mode 100644 index 0000000000000000000000000000000000000000..4ac204b5eb08a3cbeea65c9a3977aaa37f984b99 --- /dev/null +++ b/src/wav/question_3_6.m @@ -0,0 +1,38 @@ +function y = effet_reverb(x,h); + x = x(:); + h = h(:); + y = conv(x,h,'same'); +end + +% Chargement du son de guitare (supposons qu'il est dans le script) +[x_guitare, fe] = audioread('single_tone_guitar_nylon_string_a3.wav'); % par exemple +load("signal_excitation.mat"); % si tu as stocké h avant +x_guitare = x_guitare(:,1) + +x = xe1; % tu peux tester aussi avec xe2 si tu veux comparer +N = length(x); +% Étape 2 : Simuler la sortie de la pièce +y = simule_piece(x,fe); % réponse mesurée simulée + +% Étape 3 : Estimer la réponse impulsionnelle via la corrélation croisée +h = xcorr(y, x, 'none'); + + +% Mesure du temps d’exécution +tic; +y_reverb = effet_reverb(x_guitare, h); +temps_execution = toc; + +% Affichage du temps +fprintf('Temps de calcul de effet_reverb : %.4f secondes\n', temps_execution); + +% Écoute du résultat + +soundsc(y_reverb, fe); + +% Affichage (optionnel) +figure; +plot(y_reverb); +title("Son de guitare avec réverbération"); +xlabel("Échantillons"); +ylabel("Amplitude");