0% ont trouvé ce document utile (0 vote)
6 vues4 pages

Traitement du signal analogique en MATLAB

Le document présente un script MATLAB pour traiter un signal analogique en ajoutant du bruit, en amplifiant, en filtrant, en échantillonnant et en quantifiant le signal. Un signal sinusoïdal pur est généré, puis du bruit est ajouté avant d'appliquer un filtre passe-bas et de convertir le signal en numérique. Les résultats sont enregistrés dans un fichier CSV et visualisés à travers plusieurs graphiques.

Transféré par

Luciano RAKOTOARISON
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOC, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
6 vues4 pages

Traitement du signal analogique en MATLAB

Le document présente un script MATLAB pour traiter un signal analogique en ajoutant du bruit, en amplifiant, en filtrant, en échantillonnant et en quantifiant le signal. Un signal sinusoïdal pur est généré, puis du bruit est ajouté avant d'appliquer un filtre passe-bas et de convertir le signal en numérique. Les résultats sont enregistrés dans un fichier CSV et visualisés à travers plusieurs graphiques.

Transféré par

Luciano RAKOTOARISON
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOC, PDF, TXT ou lisez en ligne sur Scribd

clc;

clear;

close all;

% --- Paramètres du signal analogique (capteur) ---

f = 5; % fréquence du signal (Hz)

A = 1; % amplitude du signal

t = 0:0.001:1; % temps continu (1 ms de pas)

signal_ideal = A * sin(2 * pi * f * t); % signal sinusoïdal pur

% --- Ajout de bruit (bruit blanc gaussien) ---

bruit = 0.3 * randn(size(t)); % bruit de moyenne 0, écart-type ajustable

signal_brule = signal_ideal + bruit; % signal bruité

% --- Conditionneur : amplification ---

gain = 2;

signal_amplifie = gain * signal_brule;

% --- Filtrage passe-bas (filtre FIR simple) ---

fc = 10; % fréquence de coupure du filtre (Hz)

Fs = 1000; % fréquence d’échantillonnage du signal analogique (1/pas)

ordre = 50;

wn = fc / (Fs / 2); % fréquence normalisée

b = fir1(ordre, wn); % coefficients du filtre passe-bas

signal_filtre = filter(b, 1, signal_amplifie);


% --- Echantillonnage ---

Fe = 50; % fréquence d'échantillonnage (Hz)

Te = 1 / Fe;

t_ech = 0:Te:1;

signal_ech = interp1(t, signal_filtre, t_ech); % valeurs échantillonnées

% --- Conversion analogique-numérique (quantification) ---

nb_bits = 8;

Vref = 5;

niveaux = 2^nb_bits;

pas_quantif = Vref / niveaux;

% Mise à l’échelle entre 0 et Vref

sig_rescale = signal_ech - min(signal_ech);

sig_rescale = sig_rescale * (Vref / max(sig_rescale));

% Quantification

signal_num = round(sig_rescale / pas_quantif) * pas_quantif;

% --- Enregistrement des données numériques dans un fichier CSV ---

csvwrite("donnees_acquisition.csv", [t_ech' signal_num']);

% --- Affichages ---

figure;
subplot(4,1,1);

plot(t, signal_ideal, 'b', t, signal_brule, 'm:');

title('Signal capteur avec bruit');

legend('Signal idéal','Signal bruité');

xlabel('Temps (s)');

ylabel('Amplitude');

subplot(4,1,2);

plot(t, signal_amplifie, 'r');

title('Signal amplifié avant filtrage');

xlabel('Temps (s)');

ylabel('Amplitude');

subplot(4,1,3);

plot(t, signal_filtre, 'k');

title('Signal après filtrage passe-bas');

xlabel('Temps (s)');

ylabel('Amplitude');

subplot(4,1,4);

stem(t_ech, signal_num, 'g');

title('Signal numérique (échantillonné + quantifié)');

xlabel('Temps (s)');

ylabel('Amplitude');

Vous aimerez peut-être aussi