Main Content

De l'analyse de Fourier à l'analyse par ondelettes

Produits internes

Les transformées de Fourier et d'ondelettes mesurent toutes deux la similarité entre un signal et une fonction d'analyse. Les deux transformées utilisent un outil mathématique appelé produit scalaire comme mesure de similarité. Les deux transformées diffèrent par le choix de la fonction d'analyse. Cela se traduit par la manière différente dont les deux transformées représentent le signal et le type d'informations qui peuvent être extraites.

Comme exemple simple du produit scalaire en tant que mesure de similarité, considérons le produit scalaire de vecteurs dans le plan. L'exemple suivant MATLAB® calcule le produit scalaire de trois vecteurs unitaires, {u,v,w}, dans le plan :

{(3/21/2),(1/21/2),(01)}

u = [sqrt(3)/2 1/2];
v = [1/sqrt(2) 1/sqrt(2)];
w = [0 1];
% Three unit vectors in the plane
quiver([0 0 0],[0 0 0],[u(1) v(1) w(1)],[u(2) v(2) w(2)]);
axis([-1 1 0 1]);
text(-0.020,0.9371,'w');
text(0.6382,0.6623,'v');
text(0.7995,0.4751,'u');
% Compute inner products and print results
fprintf('The inner product of u and v is %1.2f\n', dot(u,v))
fprintf('The inner product of v and w is %1.2f\n', dot(w,v))
fprintf('The inner product of u and w is %1.2f\n', dot(u,w))

En regardant la figure, il est clair que u et v sont les plus similaires dans leur orientation, alors que u et w sont les plus différents.

Les produits scalaires capturent ce fait géométrique. Mathématiquement, le produit scalaire de deux vecteurs, u et v, est égal au produit de leurs normes et du cosinus de l'angle, θ, entre eux :

<u,v>=||u||||v||cos(θ)

Dans le cas particulier où u et v ont tous deux une norme unitaire, ou une énergie unitaire, le produit interne est égal à cos(θ) et se situe donc entre [-1,1]. Dans ce cas, vous pouvez interpréter le produit scalaire directement comme un coefficient de corrélation. Si soit u soit v n'a pas de norme unitaire, le produit scalaire peut dépasser 1 en valeur absolue. Cependant, le produit scalaire dépend toujours du cosinus de l'angle entre les deux vecteurs, ce qui permet de l'interpréter comme une sorte de corrélation. Notez que la valeur absolue du produit scalaire est la plus grande lorsque l'angle entre eux est soit 0 soit π radians (0 ou 180 degrés). Cela se produit lorsqu'un vecteur est un multiple scalaire à valeur réelle de l'autre.

Bien que les produits scalaires dans des espaces de dimensions supérieures, comme ceux que l'on rencontre dans les transformées de Fourier et en ondelettes, ne présentent pas la même facilité d'interprétation géométrique que l'exemple précédent, ils mesurent la similarité de la même manière. Une part importante de l'utilité de ces transformées est qu'elles résument essentiellement la corrélation entre le signal et certaines fonctions de base avec certaines propriétés physiques, comme la fréquence, l'échelle ou la position. En résumant le signal en ces parties constitutives, nous sommes en mesure de mieux comprendre les mécanismes qui ont produit le signal.

Transformée de Fourier

L'analyse de Fourier est utilisée comme point de départ pour introduire les transformées en ondelettes, et comme point de référence pour démontrer les cas où l'analyse par ondelettes offre une caractérisation plus utile des signaux que l'analyse de Fourier.

Mathématiquement, le processus d'analyse de Fourier est représenté par la transformée de Fourier :

F(ω)=f(t)ejωtdt.

qui est l'intégrale (somme) sur l'ensemble des temps (durée) du signal f(t) multiplié par une exponentielle complexe. Rappelons qu'une exponentielle complexe peut être décomposée en composantes sinusoïdales réelles et imaginaires. Notez que la transformée de Fourier met en correspondance une fonction d'une seule variable en une autre fonction d'une seule variable.

L'intégrale définissant la transformée de Fourier est un produit scalaire. Voir Produits internes pour un exemple de la façon dont les produits scalaires mesurent la similarité entre deux signaux. Pour chaque valeur de ω, l'intégrale (ou la somme) sur toutes les valeurs de temps produit un scalaire, F(ω), qui résume la similarité des deux signaux. Ces scalaires à valeurs complexes sont les coefficients de Fourier. Conceptuellement, en multipliant chaque coefficient de Fourier, F(ω), par une exponentielle complexe (sinusoïde) de fréquence ω, on obtient les composantes sinusoïdales constitutives du signal original. Graphiquement, le processus se présente comme suit

Parce que ejωt est à valeur complexe, F(ω) est, en général, à valeur complexe. Si le signal contient des oscillations importantes à une fréquence angulaire de ω0, la valeur absolue de F(ω0) sera grande. En examinant un graphique de |F(ω)| en fonction de la fréquence angulaire, il est possible de déterminer quelles fréquences contribuent le plus à la variabilité de f(t).

Pour illustrer comment la transformée de Fourier capture la similarité entre un signal et des sinusoïdes de fréquences différentes, le code MATLAB suivant analyse un signal composé de deux sinusoïdes de 4 et 8 Hertz (Hz) corrompues par un bruit additif en utilisant la transformée de Fourier discrète.

rng(0,'twister');
Fs = 128;
t = linspace(0,1,128);
x = 2*cos(2*pi*4*t)+1.5*sin(2*pi*8*t)+randn(size(t));
xDFT = fft(x);
Freq = 0:64;
subplot(211);
plot(t,x); xlabel('Seconds'); ylabel('Amplitude');
subplot(212);
plot(Freq,abs(xDFT(1:length(xDFT)/2+1)))
set(gca,'xtick',[4:4:64]);
xlabel('Hz'); ylabel('Magnitude');

Considéré comme un signal temporel, il est difficile de déterminer quelles oscillations significatives sont présentes dans les données. Cependant, en regardant la valeur absolue des coefficients de la transformée de Fourier en fonction de la fréquence, les oscillations dominantes à 4 et 8 Hz sont faciles à détecter.

Transformée de Fourier à court terme

La transformée de Fourier résume la similarité entre un signal et une sinusoïde avec un seul nombre complexe. L'amplitude du nombre complexe représente le degré de contribution des oscillations à une fréquence particulière à l'énergie du signal, tandis que l'argument du nombre complexe représente l'information de phase. Notez que les coefficients de Fourier ne dépendent pas du temps. Les coefficients de Fourier sont obtenus en intégrant, ou en additionnant, sur l'ensemble des temps, il est donc clair que cette information est perdue. Considérons les deux signaux suivants :

Les deux signaux consistent en une seule onde sinusoïdale d'une fréquence de 20 Hz. Cependant, dans le signal du haut, l'onde sinusoïdale dure la totalité des 1 000 millisecondes. Dans le graphique du bas, l'onde sinusoïdale commence à 250 et se termine à 750 millisecondes. La transformée de Fourier détecte que les deux signaux ont le même contenu en fréquence, mais n'a aucun moyen de saisir que la durée de l'oscillation de 20 Hz diffère entre les deux signaux. De plus, la transformée de Fourier n'a aucun mécanisme pour marquer le début et la fin de l'onde sinusoïdale intermittente.

Dans un effort pour corriger cette lacune, Dennis Gabor (1946) a adapté la transformée de Fourier pour n'analyser qu'une petite section du signal à la fois -- une technique appelée fenêtrage du signal. L'adaptation de Gabor est appelée transformée de Fourier en temps court (STFT). La technique fonctionne en choisissant une fonction temporelle, ou fenêtre, qui est essentiellement non nulle uniquement sur un intervalle fini. À titre d'exemple, considérons la fonction de fenêtre gaussienne suivante :

w(t)=απeαt2

La fonction gaussienne est centrée autour de t=0 sur un intervalle qui dépend de la valeur de α. En décalant la fonction gaussienne de τ, on obtient :

w(tτ)=απeα(tτ)2,

qui centre la fenêtre gaussienne autour de τ. Multiplier un signal par w(tτ) sélectionne une partie du signal centrée sur τ. En prenant la transformée de Fourier de ces segments fenêtrés pour différentes valeurs de τ, on obtient la STFT. Mathématiquement, c'est le cas :

F(ω,τ)=f(t)w(tτ)ejωtdt

La STFT transforme une fonction d'une variable en une fonction de deux variables, ω et τ. Cette représentation 2-D d'un signal 1-D signifie qu'il existe une redondance dans la STFT. La figure suivante montre comment la STFT convertit un signal en une représentation temps-fréquence.

La STFT représente une sorte de compromis entre les vues temporelles et fréquentielles d'un signal. Elle fournit certaines informations sur le moment et les fréquences auxquels un événement de signal se produit. Cependant, vous ne pouvez obtenir ces informations qu'avec une précision limitée, et cette précision est déterminée par la taille de la fenêtre.

Si le compromis STFT entre les informations temporelles et fréquentielles peut être utile, l'inconvénient est qu'une fois que vous avez choisi une taille particulière pour la fenêtre temporelle, cette fenêtre est la même pour toutes les fréquences. De nombreux signaux requièrent une approche plus souple, dans laquelle vous pouvez faire varier la taille de la fenêtre pour déterminer avec plus de précision le temps ou la fréquence.

Au lieu de tracer la STFT en trois dimensions, la convention consiste à coder |F(ω,τ)| comme intensité sur une carte de couleurs. Calcul et affichage de la STFT des deux ondes sinusoïdales de 20 Hz de durée différente présentées précédemment :

En utilisant la STFT, vous pouvez voir que l'onde sinusoïdale intermittente commence vers 250 msec et se termine vers 750 msec. De plus, vous pouvez voir que l'énergie du signal est concentrée autour de 20 Hz.