mirror of
https://github.com/BreizhHardware/cours-ISEN-MD.git
synced 2026-03-18 21:50:46 +01:00
Obisidian vault auto-backup: 07-01-2026 13:51:56 on . 5 files edited
This commit is contained in:
14
.obsidian/workspace.json
vendored
14
.obsidian/workspace.json
vendored
@@ -219,17 +219,17 @@
|
|||||||
},
|
},
|
||||||
"active": "8beea5ef99c3c6ed",
|
"active": "8beea5ef99c3c6ed",
|
||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
|
"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",
|
||||||
|
"ISEN/Traitement du signal/CIPA4/TP/TP4/~WRD1351.tmp",
|
||||||
|
"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/~WRL3213.tmp",
|
||||||
"ISEN/Traitement du signal/CIPA4/TP/TP4/~WRD3209.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/TP4_Experience1.m",
|
||||||
"ISEN/Traitement du signal/CIPA4/TP/TP4/TP3_Experience1.m",
|
"ISEN/Traitement du signal/CIPA4/TP/TP4/TP3_Experience1.m",
|
||||||
"ISEN/Traitement du signal/CIPA4/TP/TP4/~WRL0001.tmp",
|
|
||||||
"ISEN/Traitement du signal/CIPA4/TP/TP4/~WRD0000.tmp",
|
|
||||||
"ISEN/Traitement du signal/CIPA4/TP/TP4/~$P4cipa.doc",
|
|
||||||
"ISEN/Traitement du signal/CIPA4/TP/TP4/TP2425cipaCR.doc",
|
|
||||||
"ISEN/Traitement du signal/CIPA4/TP/TP4/DS2425cipaSACCADE.wav",
|
|
||||||
"ISEN/Traitement du signal/CIPA4/TP/TP4/DS2425cipa9.wav",
|
|
||||||
"ISEN/Traitement du signal/CIPA4/TP/TP4/DS2425cipa8.wav",
|
|
||||||
"ISEN/Réseau/CIPA4/TP/TP M02 Conversion.md",
|
"ISEN/Réseau/CIPA4/TP/TP M02 Conversion.md",
|
||||||
"Protocol Data Units (PDU).md",
|
"Protocol Data Units (PDU).md",
|
||||||
"ISEN/English/CIPA4/Elevator pitch.md",
|
"ISEN/English/CIPA4/Elevator pitch.md",
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ title('Single-sided amplitude spectrum of y(t)');
|
|||||||
grid on;
|
grid on;
|
||||||
xlim([0 Fs/2]);
|
xlim([0 Fs/2]);
|
||||||
|
|
||||||
% Choose cutoff frequency for baseband, e.g. 5 kHz (adapt after seeing spectrum)
|
% Choose cutoff frequency for baseband, e.g. 5 kHz
|
||||||
Fc = 5000; % cutoff in Hz
|
Fc = 5000; % cutoff in Hz
|
||||||
wc = 2*pi*Fc/Fs; % digital radian cutoff
|
wc = 2*pi*Fc/Fs; % digital radian cutoff
|
||||||
|
|
||||||
|
|||||||
55
ISEN/Traitement du signal/CIPA4/TP/TP4/TP4_Experience2.asv
Normal file
55
ISEN/Traitement du signal/CIPA4/TP/TP4/TP4_Experience2.asv
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
%% 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);
|
||||||
54
ISEN/Traitement du signal/CIPA4/TP/TP4/TP4_Experience2.m
Normal file
54
ISEN/Traitement du signal/CIPA4/TP/TP4/TP4_Experience2.m
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
%% 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); % Switch to mono
|
||||||
|
end
|
||||||
|
|
||||||
|
N = length(y);
|
||||||
|
|
||||||
|
%% i) Spectre of amplitude in 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]);
|
||||||
|
|
||||||
|
%% Butterworth filter
|
||||||
|
|
||||||
|
Fc = 3000;
|
||||||
|
Wn = Fc/(Fs/2);
|
||||||
|
ordre = 4;
|
||||||
|
|
||||||
|
[b,a] = butter(ordre, Wn, 'low');
|
||||||
|
|
||||||
|
y_filt = filter(b,a,y);
|
||||||
|
|
||||||
|
%% ii) Spectre of filtered signal
|
||||||
|
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]);
|
||||||
|
|
||||||
|
sound(y_filt, Fs);
|
||||||
Binary file not shown.
Reference in New Issue
Block a user