UMBB /FT/ISE Maste1(RT/ MCIL)
Module : Traitement avance du signal
TP4 : Débruitage d’un signal par la transformée en ondelette discrète (DWT) avec
MATLAB
Objectif :
- Comprendre le concept de la transformée en ondelette discrète (DWT).
- Apprendre à débruiter un signal en utilisant la DWT.
- Familiarisation avec les outils de traitement du signal dans MATLAB.
Résumé des principaux points concernant la DWT :
La transformée en ondelette discrète (DWT) est une méthode puissante de décomposition de signaux utilisée
dans le traitement du signal et l'analyse de données. Voici un résumé des principaux points concernant la
DWT :
1. Concept fondamental :
La DWT est une technique de décomposition de signaux qui permet de représenter un signal en termes
d'ondes de différentes échelles et localisations dans le temps. Contrairement à la transformée de Fourier, qui
fournit une représentation en termes de fréquences, la DWT offre une représentation à la fois en fréquence et
en temps.
2. Propriétés importantes :
- Localisation spatiale : Les ondes de la DWT sont localisées à la fois en fréquence et dans le temps, ce qui
permet de capturer des caractéristiques locales du signal.
- Multirésolution : La DWT offre une analyse multi-échelle du signal, ce qui signifie qu'elle peut détecter
des structures à différentes échelles de résolution.
- Compression de l'information : En raison de sa capacité à concentrer l'énergie du signal dans un petit
nombre de coefficients significatifs, la DWT est souvent utilisée pour la compression de données.
3. Processus de décomposition :
- La décomposition en ondelettes consiste à filtrer le signal à l'aide de filtres passe-bas et passe-haut, suivis
d'un échantillonnage pour réduire la résolution.
- Ce processus est itératif, ce qui permet d'obtenir une série de coefficients d'ondelettes à différentes échelles
et localisations dans le temps.
4. Applications :
- La DWT est largement utilisée dans de nombreux domaines, notamment le traitement du signal, la
compression d'image, l'analyse de séries temporelles, la détection de changements, etc.
- En traitement du signal, la DWT est souvent utilisée pour la détection de bords, le débruitage, et la
compression
En résumé, la transformée en ondelette discrète (DWT) est une méthode polyvalente et puissante pour
l'analyse de signaux, offrant une représentation multi-échelle qui permet de capturer efficacement les
caractéristiques locales du signal. Son utilisation s'étend à de nombreux domaines d'application, ce
qui en fait un outil précieux dans le traitement du signal et l'analyse de données.
Programme
I. Débruitage d’un Signal
% Charger ou générer le signal bruité
fs = 1000; % Fréquence d'échantillonnage
t = 0:1/fs:1-1/fs; % Temps
signal_original = sin(2*pi*50*t) + sin(2*pi*120*t); % Signal original
signal_bruite = signal_original + 0.5*randn(size(t)); % Ajouter du bruit
% Afficher le signal bruité
figure;
plot(t, signal_bruite);
title('Signal Bruité');
xlabel('Temps (s)');
ylabel('Amplitude');
% Définir le niveau de décomposition
max_level = 1; % Par exemple, décomposer jusqu'au niveau 5
wname = 'db5';
% Appliquer la DWT et afficher les détails pour chaque niveau
for level = 1:max_level
[c, l] = wavedec(signal_bruite, level, wname);
coeffs_detail = detcoef(c, l, level); % Obtenir les coefficients de détail du niveau
figure;
plot(coeffs_detail);
title(['Détails du niveau ', num2str(level)]);
xlabel('Échantillons');
ylabel('Amplitude');
coeffs_approx = appcoef(c, l, wname, level);
figure; plot(coeffs_approx);
title(['Coefficients dApproximation du Niveau ', num2str(level)]);
xlabel('Échantillons'); ylabel('Amplitude');
end
% Choisir un seuil de détection approprié (par exemple, seuillage souple)
alpha = 2; % Facteur de seuil
thr = alpha * median(abs(c)) / 0.6745;
% Appliquer le seuillage souple
s = wthresh(c, 's', thr);
% Reconstruction du signal débruité pour le dernier niveau
signal_debruite = waverec(s, l, wname);
% Afficher le signal débruité
figure;
plot(t, signal_debruite);
title('Signal Débruité');
xlabel('Temps (s)');
ylabel('Amplitude');
1. Comparer les quatre figures et commenter.
2. Changer le niveau de décomposition et commenter.
3. Tester d’autre famille des ondelettes (wname = 'sym2';)et commenter.
II. Débruitage d’une image :
Ecris le programme suivant :
X=imread('[Link]'); % mettre la photo de lena a la même place que le fichier Matlab
figure;
imshow(X);
[c,s]=wavedec2(X,2,'haar');
% Extract the level 1 approximation and detail coefficients.
[H1,V1,D1] = detcoef2('all',c,s,1);
A1 = appcoef2(c,s,'haar',1);
V1img = wcodemat(V1,255,'mat',1);
H1img = wcodemat(H1,255,'mat',1);
D1img = wcodemat(D1,255,'mat',1);
A1img = wcodemat(A1,255,'mat',1);
figure;
subplot(2,2,1)
imagesc(A1img)
colormap gray
title('Approximation Coef. of Level 1')
subplot(2,2,2)
imagesc(H1img)
title('Horizontal Detail Coef. of Level 1')
subplot(2,2,3)
imagesc(V1img)
title('Vertical Detail Coef. of Level 1')
subplot(2,2,4)
imagesc(D1img)
title('Diagonal Detail Coef. of Level 1')
1. Commenter la figure.
III. Application sur MATLAB:
1- Ouvrir l’application de la DWT sur Matlab et tester quelques signaux et images.
Recherche à faire :
Quels sont les avantages et les inconvénients de la DWT ?