diff --git a/SAR.mlx b/SAR.mlx index c2a7020662ffc11acead28f618ab2416c97c36e7..dc8565d0602d3ec7d09f7309735c56b9b0c1266e 100644 Binary files a/SAR.mlx and b/SAR.mlx differ diff --git a/question_314.m b/question_314.m new file mode 100644 index 0000000000000000000000000000000000000000..5c65b6272335511b9121db3376b2862d90cdfd04 --- /dev/null +++ b/question_314.m @@ -0,0 +1,33 @@ +% comparaison_reponses.m +% Comparaison du module de la réponse en fréquence théorique vs DFT + +clear; close all; clc; + +%% Paramètres du filtre +g = 0.7; % Gain (doit être < 1 pour la stabilité) +tau = 5; % Délai en nombre d'échantillons +N = 512; % Nombre d’échantillons pour la DFT (résolution en fréquence) + +%% Réponse impulsionnelle +a = [1 zeros(1, tau-1) g]; % Dénominateur (feedback) +b = 1; % Numérateur (feedforward) +x = [1 zeros(1, N-1)]; +h = filter(b, a, x); % Réponse impulsionnelle numérique + +%% DFT (réponse en fréquence numérique) +H_fft = fft(h, N); +H_fft_mag = abs(H_fft); % Module + +%% Réponse en fréquence théorique +v = linspace(0, 1, N); % Fréquences réduites entre 0 et 1 (fraction de Fe) +H_theo_mag = 1 ./ sqrt(1 + 2 * g * cos(2*pi*v*tau) + g^2); + +%% Affichage comparatif +figure; +plot(v, H_theo_mag, 'r-', 'LineWidth', 2); hold on; +plot(v, H_fft_mag, 'b-', 'LineWidth', 1.5); +xlabel('Fréquence réduite \nu'); +ylabel('|H(\nu)|'); +title('Comparaison des modules de la réponse en fréquence'); +legend('Théorique', 'Numérique (TFD)'); +grid on; \ No newline at end of file diff --git a/question_315.m b/question_315.m new file mode 100644 index 0000000000000000000000000000000000000000..a3559af6ff65211042ba236a73474c8f72be9dd1 --- /dev/null +++ b/question_315.m @@ -0,0 +1,31 @@ +fs = 44100; % Fréquence d'échantillonnage (Hz) +tau = 0.25*fs; % Retard de 100 ms +g = 0.9; % Coefficient d'amortissement +t = 0:1/fs:1; % 1 seconde de signal +[x, f] = audioread("C:\Users\camil\Documents\IMT_A\semestre_6\electrical engineering\tp-audio-ee-etudiant-c24leray\src\wav\single_tone_piano1.wav");; % Signal aléatoire + + +function y = effet_delay(x, tau, g, fs) +% EFFET_DELAY Applique un filtre à retard avec amortissement + + % Calcul du retard en nombre d'échantillons + D = round(tau * fs); + + % Vecteurs des coefficients du filtre IIR + % H(z) = 1 / (1 + g * z^(-D)) + b = 1; % Numérateur (feedforward) + a = [1, zeros(1, D-1), g]; % Dénérateur (feedback) + + % Filtrage du signal + y = filter(b, a, x); +end + +y = effet_delay(x, tau, g, fs); + +% Affichage +plot(t, x); hold on; +plot(t, y); +legend('Signal original', 'Signal filtré'); +xlabel('Temps (s)'); +ylabel('Amplitude'); +title('Effet de Delay avec amortissement'); \ No newline at end of file