diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index d062eba..f87ac3c 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -219,6 +219,10 @@ }, "active": "8beea5ef99c3c6ed", "lastOpenFiles": [ + "ISEN/Traitement du signal/CIPA4/TP/TP4/TP4_Experience3.m", + "ISEN/Traitement du signal/CIPA4/TP/TP4/Copy_of_TP4_Experience2.m", + "ISEN/Traitement du signal/CIPA4/TP/TP4/~WRL1606.tmp", + "ISEN/Traitement du signal/CIPA4/TP/TP4/~WRD1606.tmp", "ISEN/Traitement du signal/CIPA4/TP/TP4/~WRL0238.tmp", "ISEN/Traitement du signal/CIPA4/TP/TP4/~WRD0235.tmp", "ISEN/Traitement du signal/CIPA4/TP/TP4/~WRL1355.tmp", @@ -226,10 +230,6 @@ "ISEN/Traitement du signal/CIPA4/TP/TP4/TP4_Experience2.asv", "ISEN/Traitement du signal/CIPA4/TP/TP4/TP4_Experience2.m", "ISEN/Traitement du signal/CIPA4/TP/TP4/Copy_of_TP4_Experience1.m", - "ISEN/Traitement du signal/CIPA4/TP/TP4/~WRL3213.tmp", - "ISEN/Traitement du signal/CIPA4/TP/TP4/~WRD3209.tmp", - "ISEN/Traitement du signal/CIPA4/TP/TP4/TP4_Experience1.m", - "ISEN/Traitement du signal/CIPA4/TP/TP4/TP3_Experience1.m", "ISEN/Réseau/CIPA4/TP/TP M02 Conversion.md", "Protocol Data Units (PDU).md", "ISEN/English/CIPA4/Elevator pitch.md", diff --git a/ISEN/Traitement du signal/CIPA4/TP/TP4/TP4_Experience2.asv b/ISEN/Traitement du signal/CIPA4/TP/TP4/TP4_Experience2.asv deleted file mode 100644 index e1c796e..0000000 --- a/ISEN/Traitement du signal/CIPA4/TP/TP4/TP4_Experience2.asv +++ /dev/null @@ -1,55 +0,0 @@ -%% Experiment 2 : Baseband recovery from TP4cipaQ2.wav - -clc; -clear; -close all; - -%% Load the audio -[y, Fs] = audioread('TP4cipaQ2.wav'); -if size(y,2) > 1 - y = mean(y,2); % -end - -N = length(y); - -%% i) Spectre d'amplitude en kHz -Y = fft(y); -magY = abs(Y); -halfN = floor(N/2)+1; -magY_half = magY(1:halfN); -f = (0:halfN-1)*(Fs/N); % Hz -f_kHz = f/1000; % kHz - -figure; -plot(f_kHz, magY_half,'g'); -xlabel('Frequence (kHz)'); -ylabel('|Y(f)|'); -title('Spectre amplitude du signal TP4cipaQ2'); -grid on; -xlim([0 Fs/2000]); - -%% Filtre passe-bas Butterworth pour recuperer la bande de base -% Choisir une frequence de coupure Fc (en Hz) apres avoir regarde le spectre. -Fc = 3000; % exemple : 3 kHz (a adapter si besoin) -Wn = Fc/(Fs/2); % normalisation par Fs/2 [web:237] -ordre = 4; % ordre du filtre (simple mais efficace) - -[b,a] = butter(ordre, Wn, 'low'); % filtre passe-bas Butterworth - -y_filt = filter(b,a,y); % signal filtre - -%% ii) Spectre du signal filtre -Yf = fft(y_filt); -magYf = abs(Yf); -magYf_half = magYf(1:halfN); - -figure; -plot(f_kHz, magYf_half,'g'); -xlabel('Frequence (kHz)'); -ylabel('|Y_f(f)|'); -title('Spectre amplitude du signal filtre'); -grid on; -xlim([0 Fs/2000]); - -%% iii) Ecouter le signal filtre (a lancer dans MATLAB) -% sound(y_filt, Fs); \ No newline at end of file diff --git a/ISEN/Traitement du signal/CIPA4/TP/TP4/TP4_Experience3.m b/ISEN/Traitement du signal/CIPA4/TP/TP4/TP4_Experience3.m new file mode 100644 index 0000000..a33089e --- /dev/null +++ b/ISEN/Traitement du signal/CIPA4/TP/TP4/TP4_Experience3.m @@ -0,0 +1,71 @@ +%% Experiment 3 : Recovery of a(t) from y1(t) and y2(t) + +clc; +clear; +close all; + +%% Load data from MAT-file + +donnees3 = load('TP4cipaQ3.mat'); +y1 = donnees3.y1; +y2 = donnees3.y2; +y1 = y1(:); +y2 = y2(:); + +Fs = 96000; % Sampling frequency (Hz) +Ts = 1/Fs; % Sampling period (s) +N = length(y1); % Number of samples +t = (0:N-1)*Ts; % Time axis (s) + +%% Recover a(t) using the hint cos^2 + sin^2 = 1 +% a(t) is the envelope common to y1 and y2. + +a = sqrt( y1.^2 + y2.^2 ); + +%% Plot y1(t) and y2(t) in time domain + +figure('Name','y1(t) and y2(t)'); +subplot(2,1,1); +plot(t, y1, 'g'); +xlabel('Time (s)'); +ylabel('Amplitude'); +title('y1(t) = a(t) cos(2\pi 30000 t + A)'); +grid on; + +subplot(2,1,2); +plot(t, y2, 'g'); +xlabel('Time (s)'); +ylabel('Amplitude'); +title('y2(t) = a(t) sin(2\pi 30000 t + A)'); +grid on; + +%% Plot a(t) in time domain + +figure('Name','a(t)'); +plot(t, a, 'g'); +xlabel('Time (s)'); +ylabel('Amplitude'); +title('Recovered envelope a(t) = sqrt(y1(t)^2 + y2(t)^2)'); +grid on; + +%% Amplitude spectrum of a(t) in kHz and in dB + +A_fft = fft(a); +magA = abs(A_fft); + +halfN = floor(N/2) + 1; % Positive frequencies only +magA_half = magA(1:halfN); + +f_Hz = (0:halfN-1)*(Fs/N); % Frequency axis (Hz) +f_kHz = f_Hz / 1000; % Convert to kHz + +% Convert magnitude to dB scale (20*log10), avoid log(0) using eps +magA_dB = 20*log10(magA_half + eps); + +figure('Name','Amplitude spectrum of a(t)'); +plot(f_kHz, magA_dB, 'g'); +xlabel('Frequency (kHz)'); +ylabel('Amplitude (dB)'); +title('Single-sided amplitude spectrum of a(t)'); +grid on; +xlim([0 Fs/2000]); % From 0 to Nyquist frequency in kHz diff --git a/ISEN/Traitement du signal/CIPA4/TP/TP4/TP4cipa.doc b/ISEN/Traitement du signal/CIPA4/TP/TP4/TP4cipa.doc index 34f8cef..5411511 100644 Binary files a/ISEN/Traitement du signal/CIPA4/TP/TP4/TP4cipa.doc and b/ISEN/Traitement du signal/CIPA4/TP/TP4/TP4cipa.doc differ