Skip to content
Snippets Groups Projects
Commit 2631e601 authored by VATON Samuel's avatar VATON Samuel
Browse files

question_21.m

parent 894a0440
No related branches found
No related tags found
No related merge requests found
% 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");
[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");
%[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);
L1 = length(x1)
X1 = fftshift(fft(x1))
f1 = (-L1/2 : L1/2 - 1)*(fe1/L1)
figure;
plot(f1, log(abs(X1)),'r');
......@@ -19,11 +19,11 @@ 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");
%[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);
%soundsc(x1,fe1);
%soundsc(x2,fe2);
L1 = length(x1);
L2 = length(x2);
......@@ -43,10 +43,9 @@ xlabel("fréquence en Hz");
ylabel("10*log|X(f)|");
% Question 3 :
%Question 3 :
freq_r=[220;442;663;885;1108;1331;1556;1782;2009];
amplitude = [];
% Durée et fréquence d'échantillonnage
Fe = 44100; % fréquence d'échantillonnage (standard audio)
......@@ -58,7 +57,7 @@ s = zeros(size(t));
% Ajouter les sinusoïdes
for k = 1:length(freq_r)
s = s + amplitude * sin(2*pi*freq_r(k)*t);
s = s + sin(2*pi*freq_r(k)*t);
end
% Normaliser pour éviter la saturation (valeurs entre -1 et 1)
......@@ -71,49 +70,21 @@ soundsc(s, Fe);
% 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 * fs);
% 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];
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
% Plot the envelope
figure;
plot(t, adsrEnvelope);
xlabel('Time (s)');
ylabel('Amplitude');
title('ADSR Envelope');
[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 = xA(1:length(adsrEnvelope)) .* adsrEnvelope';
sound(adsrSignal, feA);
plot(t, signal(t, freq_r))
audiowrite("C:\Users\camil\Documents\IMT_A\semestre_6\electrical engineering\tp-audio-ee-etudiant-c24leray\src\wav\single_tone_piano2.wav", adsrSignal, fe);
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
% Question 5 :
\ No newline at end of file
s_envelope = s .* env_interpolated; % Signal avec enveloppe ADSR
\ No newline at end of file
fs = 10e3; % Fréquence d'échantillonnage
T = 2*pi;
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))));
X_1 = 10*log10(abs(fftshift(fft(x_1))));
N =length(t) ;
freq = (-N/2:N/2-1)*(1/(T*N));
freq = (-N/2:N/2-1)*(1/(Te*N));
figure;
stem(freq, X_1, '.') % Tracé du signal
......@@ -32,39 +33,35 @@ title('spectre du signal en dent de scie');
%question 2.2------------------------------------------
% Paramètres
T = 2*pi;
N = 1000;
t = linspace(-T/2, T/2, N);
% Signal carré en entrée (amplitude ±1)
x = sign(sin(2*pi*t/T));
% Filtrage : y(k) = 1/2 (x(k) + x(k-1))
y = zeros(size(x));
y(2:end) = 0.5 * (x(2:end) + x(1:end-1));
b=[1/2,1/2];
a=1;
y = filter(a,b,x_1);
% FFT
X = fftshift(fft(x))/N;
Y = fftshift(fft(y))/N;
f = (-N/2:N/2-1)*(1/(T/N)); % Axe fréquentiel
omega = 2*pi*f*(T/N); % Fréquence angulaire en rad/sample
X1 = 20*log10(abs(fftshift(fft(x_1))));
Y = 20*log10(abs(fftshift(fft(y))));
f = (-N/2:N/2-1)*(1/(Te/N)); % Axe fréquentiel
f_lin=linspace(-1/(2*Te),1/(2*Te),N);
disp(f_lin)
% Réponse théorique du filtre
H = abs(cos(omega/2));
H = (1/2*abs(1+exp(-2*1i*pi*f_lin*Te))).^2;
% Affichage
figure;
subplot(3,1,1);
plot(t, x); title('Signal d''entrée x(k)');
plot(t, x_1); title('Signal d''entrée x(k)');
subplot(3,1,2);
plot(t, y); title('Signal filtré y(k)');
subplot(3,1,3);
plot(f, abs(Y), 'b', 'DisplayName', '|Y(f)|');
plot(f_lin, abs(Y), 'b', 'DisplayName', '|Y(f)|^2');
hold on;
plot(f, abs(X).*H, 'r--', 'DisplayName', '|X(f)| × |H(f)| (théorique)');
plot(f_lin, abs(X2).*H, 'r', 'DisplayName', '|X(f)|^2 × |H(f)|^2 (théorique)');
legend; xlabel('Fréquence (Hz)');
title('Spectre de sortie comparé à la théorie');
xlim([-10 10]);
......
fs = 10e3; % Fréquence d'échantillonnage
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))));
X_1 = 10*log10(abs(fftshift(fft(x_1))));
N =length(t) ;
freq = (-N/2:N/2-1)*(1/(T*N));
freq = (-N/2:N/2-1)*(1/(Te*N));
figure;
stem(freq, X_1, '.') % Tracé du signal
......@@ -33,31 +34,41 @@ title('spectre du signal en dent de scie');
%question 2.2------------------------------------------
% Filtrage : y(k) = 1/2 (x(k) + x(k-1))
y = zeros(size(x_1));
y(2:end) = 0.5 * (x_1(2:end) + x_1(1:end-1));
b=[1/2,1/2];
a=1;
y = filter(b,a,x_1);
% FFT
X2 = fftshift(fft(x_1))/N;
Y = fftshift(fft(y))/N;
f = (-N/2:N/2-1)*(1/(T/N)); % Axe fréquentiel
omega = 2*pi*f*(T/N); % Fréquence angulaire en rad/sample
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 = abs(cos(omega/2));
H = (1/2*abs(1+exp(-2*1i*pi*f_lin*Te))).^2;
% Affichage
figure;
subplot(3,1,1);
plot(t, x_1); title('Signal d''entrée x(k)');
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(3,1,2);
plot(t, y); title('Signal filtré y(k)');
subplot(3,1,3);
plot(f, abs(Y), 'b', 'DisplayName', '|Y(f)|');
subplot(2,1,2);
stem(f_lin, abs(Y), 'b.', 'DisplayName', '|Y(f)|^2');
hold on;
plot(f, abs(X2).*H, 'r', 'DisplayName', '|X(f)| × |H(f)| (théorique)');
legend; xlabel('Fréquence (Hz)');
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([-10 10]);
xlim([-5000 5000]);
%question 2.3
sound(y,fe)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment