From 582d6635aec35069f3d00e7d59e9a59666fdbf18 Mon Sep 17 00:00:00 2001 From: Samuel <samuel.vaton@imt-atlantique.net> Date: Wed, 28 May 2025 19:13:50 +0200 Subject: [PATCH] supression fichiers questions inutiles --- SAR.m | 90 -------------------------------------------- analyse_audio.m | 3 -- question_11.m | 14 ------- question_12.m | 25 ------------- question_13.m | 26 ------------- question_14.m | 35 ----------------- question_15.m | 18 --------- question_21.m | 97 ------------------------------------------------ question_314.m | 33 ---------------- question_315.asv | 33 ---------------- question_315.m | 35 ----------------- 11 files changed, 409 deletions(-) delete mode 100644 SAR.m delete mode 100644 analyse_audio.m delete mode 100644 question_11.m delete mode 100644 question_12.m delete mode 100644 question_13.m delete mode 100644 question_14.m delete mode 100644 question_15.m delete mode 100644 question_21.m delete mode 100644 question_314.m delete mode 100644 question_315.asv delete mode 100644 question_315.m diff --git a/SAR.m b/SAR.m deleted file mode 100644 index 8965062..0000000 --- a/SAR.m +++ /dev/null @@ -1,90 +0,0 @@ -% Question 1 : - -[x1,fe1]=audioread("C:\Users\samue\OneDrive\Documents\Cours\cours IMT atlantique\A1\elec inge\traitement du signal\SAR\tp-audio-ee-etudiant-c24leray\src\wav\single_tone_piano1.wav"); -[x2,fe2]=audioread("C:\Users\samue\OneDrive\Documents\Cours\cours IMT atlantique\A1\elec inge\traitement du signal\SAR\tp-audio-ee-etudiant-c24leray\src\wav\single_tone_piano2.wav"); - -%[x,fe]=audioread("C:\Users\camil\Documents\IMT_A\semestre_6\electrical engineering\tp-audio-ee-etudiant-c24leray\src\wav\single_tone_celtic-harp-a3.wav"); - -soundsc(x,fe); -L1 = length(x1) -X1 = fftshift(fft(x1)) -f1 = (-L1/2 : L1/2 - 1)*(fe1/L1) - -figure; -plot(f1, log(abs(X1)),'r'); -title("spectre") -xlabel("fréquence en Hz") -ylabel("log|X(f)|") - - -% Question 2 : - -%[x1,fe1]=audioread("C:\Users\camil\Documents\IMT_A\semestre_6\electrical engineering\tp-audio-ee-etudiant-c24leray\src\wav\single_tone_piano1.wav"); -%[x2,fe2]=audioread("C:\Users\camil\Documents\IMT_A\semestre_6\electrical engineering\tp-audio-ee-etudiant-c24leray\src\wav\single_tone_piano2.wav"); - -%soundsc(x1,fe1); -%soundsc(x2,fe2); - -L1 = length(x1); -L2 = length(x2); - -X1 = fftshift(fft(x1)); -X2 = fftshift(fft(x2)); - -f1 = (-L1/2 : L1/2 - 1)*(fe1/L1); -f2 = (-L2/2 : L2/2 - 1)*(fe2/L2); - -figure; -plot(f1, log(abs(X1)),'r'); -hold on; -plot(f2, log(abs(X2)),'b'); -title("spectre"); -xlabel("fréquence en Hz"); -ylabel("10*log|X(f)|"); - - -%Question 3 : - -freq_r=[220;442;663;885;1108;1331;1556;1782;2009]; - -% Durée et fréquence d'échantillonnage -Fe = 44100; % fréquence d'échantillonnage (standard audio) -duree = 1; % durée du signal en secondes -t = 0:1/Fe:duree; % vecteur temps - -% Initialiser le signal composite -s = zeros(size(t)); - -% Ajouter les sinusoïdes -for k = 1:length(freq_r) - s = s + sin(2*pi*freq_r(k)*t); -end - -% Normaliser pour éviter la saturation (valeurs entre -1 et 1) -s = s / max(abs(s)); - -% Jouer le son -soundsc(s, Fe); - - - -% Question 4 : - -function s = signal(t, freq_r) - s = zeros(size(t)); - for k = 1:length(freq_r) - s = s + sin(2*pi*freq_r(k)*t); - end -end - -figure; -plot(t, signal(t, freq_r)) - -t = [0.1 0.3 0.5 0.7 1]; % Temps en secondes -env = [signal(0.1) signal(0.3) signal(0.5) signal(0.7) signal(1)]; % Valeurs d'amplitude correspondantes - -t_total = length(s)/Fe; % Durée totale du signal en secondes -t_interpolated = linspace(0, t_total, length(s)); % Temps interpolé -env_interpolated = interp1(t, env, t_interpolated); % Enveloppe interpolée - -s_envelope = s .* env_interpolated; % Signal avec enveloppe ADSR \ No newline at end of file diff --git a/analyse_audio.m b/analyse_audio.m deleted file mode 100644 index 85651bd..0000000 --- a/analyse_audio.m +++ /dev/null @@ -1,3 +0,0 @@ -[x,fe]=audioread(filename); -soundsc(x,fe); -X=fft(x); \ No newline at end of file diff --git a/question_11.m b/question_11.m deleted file mode 100644 index 02adce5..0000000 --- a/question_11.m +++ /dev/null @@ -1,14 +0,0 @@ -% Question 1 : - -[x,fe]=audioread("C:\Users\camil\Documents\IMT_A\semestre_6\electrical engineering\tp-audio-ee-etudiant-c24leray\src\wav\single_tone_celtic-harp-a3.wav"); - -soundsc(x,fe); -L1 = length(x1); -X1 = fftshift(fft(x1)); -f1 = (-L1/2 : L1/2 - 1)*(fe1/L1); - -figure; -plot(f1, log(abs(X1)),'r'); -title("spectre") -xlabel("fréquence en Hz") -ylabel("log|X(f)|") \ No newline at end of file diff --git a/question_12.m b/question_12.m deleted file mode 100644 index f8cf7d2..0000000 --- a/question_12.m +++ /dev/null @@ -1,25 +0,0 @@ -% Question 2 : - -[x1,fe1]=audioread("C:\Users\camil\Documents\IMT_A\semestre_6\electrical engineering\tp-audio-ee-etudiant-c24leray\src\wav\single_tone_piano1.wav"); -[x2,fe2]=audioread("C:\Users\camil\Documents\IMT_A\semestre_6\electrical engineering\tp-audio-ee-etudiant-c24leray\src\wav\single_tone_piano2.wav"); - -soundsc(x1,fe1); -soundsc(x2,fe2); - -L1 = length(x1); -L2 = length(x2); - -X1 = fftshift(fft(x1)); -X2 = fftshift(fft(x2)); - -f1 = (-L1/2 : L1/2 - 1)*(fe1/L1); -f2 = (-L2/2 : L2/2 - 1)*(fe2/L2); - -figure; -plot(f1, log(abs(X1)),'r'); -hold on -plot(f2, log(abs(X2)),'b'); -title("spectre"); -legend() -xlabel("fréquence en Hz"); -ylabel("10*log|X(f)|"); \ No newline at end of file diff --git a/question_13.m b/question_13.m deleted file mode 100644 index 1e24050..0000000 --- a/question_13.m +++ /dev/null @@ -1,26 +0,0 @@ -% Question 3 : - -freq_r=[220;442;663;885;1108;1331;1556;1782;2009]; -Amplitude = [7259; 5541; 982; 1408; 502; 672; 573; 114; 347]; - -% Durée et fréquence d'échantillonnage -Fe = 44100; % fréquence d'échantillonnage (standard audio) -duree = 1; % durée du signal en secondes -t = 0:1/Fe:duree; % vecteur temps - -% Initialiser le signal composite -s = zeros(size(t)); - -% Ajouter les sinusoïdes -for k = 1:length(freq_r) - s = s + Amplitude(k) * sin(2*pi*freq_r(k)*t); -end - -% Normaliser pour éviter la saturation (valeurs entre -1 et 1) -s = s / max(abs(s)); - -% Jouer le son -soundsc(s, Fe); - -figure; -plot(t,s) \ No newline at end of file diff --git a/question_14.m b/question_14.m deleted file mode 100644 index 02a1167..0000000 --- a/question_14.m +++ /dev/null @@ -1,35 +0,0 @@ -% Question 4 - -% Define ADSR parameters - -A = 0.1; % Attack time (seconds) -D = 0.005; % Decay time (seconds) -S = 0.8; % Sustain level (0 to 1) -R = 0.75; % Release time (seconds) -fs = 44100; % Sampling frequency (Hz) - -% Total duration of the envelope -totalTime = A + D + R; - -% totalTime = totalTime * 6; % Extend the envelope for 6 seconds -t = linspace(0, totalTime, totalTime * 6); - -% Generate ADSR envelope -attack = linspace(0, 1, A * fs); -decay = linspace(1, S, D * fs); -release = linspace(S, 0, R * fs); - - % Combine all segments -adsrEnvelope = [attack, decay, release]; - -% Plot the envelope -plot(t, adsrEnvelope); -xlabel('Time (s)'); -ylabel('Amplitude'); -title('ADSR Envelope'); -[x, fe] = audioread("C:\Users\camil\Documents\IMT_A\semestre_6\electrical engineering\tp-audio-ee-etudiant-c24leray\src\wav\single_tone_piano2.wav"); - -% Apply the ADSR envelope to the audio signal -audiowrite("C:\Users\camil\Documents\IMT_A\semestre_6\electrical engineering\tp-audio-ee-etudiant-c24leray\src\wav\single_tone_piano2.wav", adsrSignal, fe); -adsrSignal = x(1:length(adsrEnvelope)) .* adsrEnvelope'; -soundsc(adsrSignal, fs); \ No newline at end of file diff --git a/question_15.m b/question_15.m deleted file mode 100644 index f4c7c48..0000000 --- a/question_15.m +++ /dev/null @@ -1,18 +0,0 @@ - -[xA, feA] = audioread("C:\Users\camil\Documents\IMT_A\semestre_6\electrical engineering\tp-audio-ee-etudiant-c24leray\src\wav\single_tone_piano2.wav"); - - - -% Apply the ADSR envelope to the audio signal -adsrSignal = abs(ifftshift(ifft(xA))); -sound(adsrSignal, feA); - -% Plot the envelope - -figure; -plot(feA, adsrSignal); -xlabel('Time (s)'); -ylabel('Amplitude'); -title('ADSR Envelope'); - -audiowrite("C:\Users\camil\Documents\IMT_A\semestre_6\electrical engineering\tp-audio-ee-etudiant-c24leray\src\wav\single_tone_piano2.wav", adsrSignal, fe); diff --git a/question_21.m b/question_21.m deleted file mode 100644 index 506672f..0000000 --- a/question_21.m +++ /dev/null @@ -1,97 +0,0 @@ -fe = 10e3; % Fréquence d'échantillonnage -T = 1/10; -Te=1/fs; -t = -1:1/fs:1; % Durée du signal - - -x_1 =square(2*pi*t/T); - -%fft -X_1 = 10*log10(abs(fftshift(fft(x_1)))); -N =length(t) ; -freq = (-N/2:N/2-1)*(1/(Te*N)); - -figure; -stem(freq, X_1, '.') % Tracé du signal -xlabel('f (Hz)') -ylabel('10log(|X_1|)') -title('spectre du signal carré'); - - -x_2 = sawtooth(2*pi*t/T); - -%fft -X_2 = 10*log10(abs(fftshift(fft(x_2)))); - -figure; -stem(freq, X_2, '.') -xlabel('f (Hz)') -ylabel('10log(|X_1|)') -title('spectre du signal en dent de scie'); - -% Question 2.2------------------------------------------ - -% Filtrage : y(k) = 1/2 (x(k) + x(k-1)) -b=[1/2,1/2]; -a=1; -y = filter(b,a,x_1); - - -% FFT -X1 = 20*log10(abs(fftshift(fft(x_1)))); -Y = 20*log10(abs(fftshift(fft(y)))); - -f_lin=linspace(-1/(2*Te),1/(2*Te),N); -disp(f_lin) - - -% Réponse théorique du filtre -H = (1/2*abs(1+exp(-2*1i*pi*f_lin*Te))).^2; - -% Affichage -figure; -subplot(2,1,1); -plot(f_lin, X1); -title('Signal d''entrée |X(f)|^2') -xlabel('Fréquence (Hz)') -ylabel('|X(f)|^2') - - -subplot(2,1,2); - -stem(f_lin, abs(Y), 'b.', 'DisplayName', '|Y(f)|^2'); -hold on; -stem(f_lin, abs(X1).*H, 'r.', 'DisplayName', '|X(f)|^2 × |H(f)|^2 (théorique)'); -legend; xlabel('Fréquence (Hz)'); ylabel('|Y(f)|^2') -title('Spectre de sortie comparé à la théorie'); -xlim([-5000 5000]); - - -%question 2.3 - -soundsc(x_1,fe) - - -% Define ADSR parameters - -A = 0.1; % Attack time (seconds) -D = 0.005; % Decay time (seconds) -S = 0.8; % Sustain level (0 to 1) -R = 0.75; % Release time (seconds) - -% Total duration of the envelope -totalTime = A + D + R; - -% totalTime = totalTime * 6; % Extend the envelope for 6 seconds -t = linspace(0, totalTime, totalTime * 6); - -% Generate ADSR envelope -attack = linspace(0, 1, A * fe); -decay = linspace(1, S, D * fe); -release = linspace(S, 0, R * fe); - - % Combine all segments -adsrEnvelope = [attack, decay, release]; - -adsrSignal = x_1(1:length(adsrEnvelope)) .* adsrEnvelope'; -soundsc(adsrSignal, fe); \ No newline at end of file diff --git a/question_314.m b/question_314.m deleted file mode 100644 index 5c65b62..0000000 --- a/question_314.m +++ /dev/null @@ -1,33 +0,0 @@ -% 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.asv b/question_315.asv deleted file mode 100644 index 97cf61a..0000000 --- a/question_315.asv +++ /dev/null @@ -1,33 +0,0 @@ -[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 - - -fs = f; % Fréquence d'échantillonnage (Hz) -tau = 0.1; % Retard de 100 ms -g = 0.9; % Coefficient d'amortissement -t = 0:1/fs:1; % 1 seconde de signal - - -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 diff --git a/question_315.m b/question_315.m deleted file mode 100644 index 70977a3..0000000 --- a/question_315.m +++ /dev/null @@ -1,35 +0,0 @@ -[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 - - -fs = f; % Fréquence d'échantillonnage (Hz) -tau = 0.25; % Retard (s) -g = 0.9; % Coefficient d'amortissement -t = (0:length(x)-1)/fs; - -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); -disp(size(y)) -disp(size(t)) - -% Affichage -figure; -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 -- GitLab