Andrei Shelkovenko. L'un des développeurs et fondateurs de Vibromera.
La traduction de l'article peut contenir des inexactitudes.
- Transformée de Fourier et spectre du signal
Dans de nombreux cas, la tâche consistant à obtenir (calculer) le spectre d'un signal est la suivante. Il y a un CAN qui, avec une fréquence d'échantillonnage Fd, transforme le signal continu qui arrive à son entrée pendant le temps T, en échantillons numériques - N morceaux. Ce tableau d'échantillons est ensuite transmis à un programme (par exemple FourierScope) qui produit N/2 valeurs numériques.
Pour vérifier si le programme fonctionne correctement, nous formons un tableau d'échantillons sous la forme d'une somme de deux sin(10*2*pi*x)+0,5*sin(5*2*pi*x) et nous l'introduisons dans le programme. Le programme a dessiné ce qui suit :
Il y a deux harmoniques sur le graphique du spectre - 5 Hz avec une amplitude de 0,5 V et 10 Hz avec une amplitude de 1 V, tout est comme dans la formule du signal original. Tout va bien, le programme fonctionne correctement.
Cela signifie que si nous envoyons un signal réel provenant d'un mélange de deux sinusoïdes à l'entrée du CAN, nous obtiendrons un spectre similaire composé de deux harmoniques.
Ainsi, notre réel signal mesuré d'une durée de 5 secondesnumérisée par l'ADC, c'est-à-dire représentée par discret échantillons, dispose d'un discret non périodique spectre.
D'un point de vue mathématique, combien d'erreurs cette phrase contient-elle ?
Essayons maintenant de mesurer le même signal pendant 0,5 seconde.
Il y a quelque chose qui ne va pas ! L'harmonique à 10 Hz est dessinée normalement, et au lieu de l'harmonique à 5 Hz, il y a des harmoniques peu claires.
Sur Internet, on dit qu'il faut ajouter des zéros à la fin de l'échantillon et que le spectre sera dessiné normalement.
Ce n'est pas du tout cela. Je vais devoir m'occuper de la théorie. Allons à wikipedia - la source de la connaissance.
2. Fonction continue et sa représentation en série de Fourier
Mathématiquement, notre signal d'une durée de T secondes est une fonction f(x) donnée sur l'intervalle {0, T} (X étant ici le temps). Une telle fonction peut toujours être représentée comme une somme de fonctions harmoniques (sinus ou cosinus) de la forme :
k est le nombre de la fonction trigonométrique (le nombre de la composante harmonique, le nombre de l'harmonique)
T - segment où la fonction est définie (durée du signal)
Ak- amplitude de la k-ième composante harmonique,
θk- la phase initiale de la kème composante harmonique
Que signifie "représenter la fonction comme la somme des séries" ? Cela signifie qu'en ajoutant les valeurs des composantes harmoniques de la série de Fourier en chaque point, nous obtenons la valeur de notre fonction en ce point.
(Plus strictement, l'écart quadratique moyen de la série par rapport à la fonction f(x) tendra vers zéro, mais malgré la convergence quadratique moyenne, la série de Fourier d'une fonction n'a pas besoin, en général, de converger vers elle point par point. )
Cette série peut également être écrite sous la forme :
où la kième amplitude complexe.
ou
La relation entre les coefficients (1) et (3) est exprimée par les formules suivantes :
Notez que ces trois représentations des séries de Fourier sont parfaitement équivalentes. Parfois, lorsqu'on travaille avec des séries de Fourier, il est plus pratique d'utiliser les exposants de l'argument imaginaire plutôt que les sinus et les cosinus, c'est-à-dire d'utiliser la transformée de Fourier sous forme complexe. Mais il est plus pratique pour nous d'utiliser la formule (1), où la série de Fourier est représentée comme une somme de cosinus avec les amplitudes et les phases correspondantes. Quoi qu'il en soit, il est faux de dire que le résultat de la transformée de Fourier du signal réel sera des amplitudes harmoniques complexes. Comme le dit correctement Wiki, "La transformée de Fourier (ℱ) est une opération qui fait correspondre une fonction d'une variable réelle à une autre fonction également d'une variable réelle."
En résumé :
La base mathématique de l'analyse spectrale des signaux est la transformée de Fourier.
La transformée de Fourier permet de représenter une fonction continue f(x) (signal) définie sur l'intervalle {0, T} comme une somme d'un nombre infini (série infinie) de fonctions trigonométriques (sinus et/ou cosinus) avec des amplitudes et des phases définies également considérées sur l'intervalle {0, T}. Une telle série est appelée série de Fourier.
Notons encore quelques points dont la compréhension est nécessaire à l'application correcte de la transformée de Fourier à l'analyse des signaux. Si nous considérons la série de Fourier (somme des sinusoïdes) sur l'ensemble de l'axe X, nous constatons qu'en dehors de l'intervalle {0, T}, la fonction de la série de Fourier répète périodiquement notre fonction.
Par exemple, dans le graphique de la figure 7, la fonction originale est définie sur l'intervalle {-T\2, +T\2}, et la série de Fourier représente une fonction périodique définie sur l'ensemble de l'axe des abscisses.
En effet, les sinusoïdes étant elles-mêmes des fonctions périodiques, leur somme sera également une fonction périodique.
Ainsi :
Notre fonction d'origine est une fonction continue, non périodique, définie sur un segment de longueur T.
Le spectre de cette fonction est discret, c'est-à-dire qu'il est représenté par une série infinie de composantes harmoniques - une série de Fourier.
En fait, la série de Fourier définit une fonction périodique, qui coïncide avec notre fonction sur l'intervalle {0, T}, mais cette périodicité n'est pas essentielle pour nous.
Suivant.
Les périodes des composantes harmoniques sont des multiples de l'intervalle {0, T}, sur lequel la fonction initiale f(x) est définie. En d'autres termes, les périodes des harmoniques sont des multiples de la durée de la mesure du signal. Par exemple, la période de la première harmonique d'une série de Fourier est égale à l'intervalle T dans lequel la fonction f(x) est définie. La période de la deuxième harmonique d'une série de Fourier est égale à l'intervalle T/2. Et ainsi de suite (voir figure 8).
En conséquence, les fréquences des composantes harmoniques sont des multiples de 1/T. Autrement dit, les fréquences des composantes harmoniques Fk sont Fk= k\T, où k prend des valeurs comprises entre 0 et ∞, par exemple, k=0 F0=0 ; k=1 F1=1\T ; k=2 F2=2\T;k=3 F3=3\T ;.... Fk= k\T (à fréquence nulle, une composante constante).
Soit notre fonction initiale, un signal enregistré pendant T=1 sec. Alors la période de la première harmonique sera égale à la durée de notre signal T1=T=1 sec et la fréquence de l'harmonique est égale à 1 Hz. La période de la deuxième harmonique sera égale à la durée de notre signal divisée par 2 (T2=T/2=0,5 sec.) et la fréquence est égale à 2 Hz. Pour la troisième harmonique, T3=T/3 sec et la fréquence est de 3 Hz. Et ainsi de suite.
Dans ce cas, le pas entre les harmoniques est de 1 Hz.
Ainsi, un signal d'une durée de 1 seconde peut être décomposé en composantes harmoniques (pour obtenir un spectre) avec une résolution de fréquence de 1 Hz.
Pour augmenter la résolution d'un facteur 2 à 0,5 Hz, il est nécessaire d'augmenter la durée de la mesure d'un facteur 2 à 2 secondes. Un signal de 10 secondes peut être décomposé en composantes harmoniques (spectre) avec une résolution de fréquence de 0,1 Hz. Il n'y a pas d'autres moyens d'augmenter la résolution de fréquence.
Il existe un moyen d'augmenter artificiellement la durée du signal en ajoutant des zéros au tableau d'échantillons. Mais cela n'augmente pas la résolution de la fréquence réelle.
3. Signaux discrets et transformée de Fourier discrète
Avec le développement de la technologie numérique, les modes de stockage des données de mesure (signaux) ont changé. Alors qu'auparavant un signal pouvait être enregistré sur un magnétophone et stocké sur une bande sous forme analogique, les signaux sont aujourd'hui numérisés et stockés dans des fichiers de la mémoire d'un ordinateur sous la forme d'un ensemble de nombres (décomptes).
Le schéma habituel de mesure et de numérisation des signaux est le suivant.
Transducteur de mesure -- Normalisateur de signal -- ADC -- Ordinateur
(Fig.9 Schéma du canal de mesure)
Le signal provenant du transducteur de mesure est transmis à l'ADC pendant une période de temps T. Les lectures du signal (échantillonnage) reçues pendant le temps T sont transmises à l'ordinateur et enregistrées dans la mémoire.
Quelles sont les exigences relatives aux paramètres de numérisation du signal ? Un dispositif qui convertit le signal analogique d'entrée en un code discret (signal numérique) est appelé convertisseur analogique-numérique (ADC) (© Wiki).
L'un des paramètres fondamentaux de l'ADC est le taux d'échantillonnage maximal - la fréquence d'échantillonnage d'un signal continu dans le temps. La fréquence d'échantillonnage est mesurée en hertz. ((© Wiki))
Selon le théorème de Kotelnikov, si un signal continu a un spectre limité par la fréquence Fmax, il peut être entièrement et uniquement reconstruit à partir de ses échantillons discrets prélevés à des intervalles de temps T = 1/2*Fmax, c'est-à-dire avec une fréquence Fd ≥ 2*Fmax, où Fd - fréquence d'échantillonnage ; Fmax - la fréquence maximale du spectre du signal. En d'autres termes, la fréquence de numérisation du signal (fréquence d'échantillonnage de l'ADC) doit être au moins 2 fois supérieure à la fréquence maximale du signal que nous voulons mesurer.
Et que se passera-t-il si nous prélevons des échantillons à une fréquence inférieure à celle requise par le théorème de Kotelnikov ?
Dans ce cas, il y a un effet de "repliement" (alias effet stroboscopique, effet moiré), dans lequel un signal haute fréquence après numérisation se transforme en un signal basse fréquence, qui en fait n'existe pas. Dans la figure 11, l'onde sinusoïdale rouge de haute fréquence est le signal réel. L'onde sinusoïdale bleue de fréquence plus basse est un signal fictif, dû au fait que pendant le temps d'échantillonnage, il s'est écoulé plus d'une demi-période du signal à haute fréquence.
Pour éviter l'effet de repliement, un filtre anti-repliement spécial (filtre passe-bas) est placé avant le CAN. Il laisse passer les fréquences inférieures à la moitié de la fréquence d'échantillonnage du CAN et coupe les fréquences plus élevées.
Pour calculer le spectre d'un signal à partir de ses échantillons discrets, on utilise la transformée de Fourier discrète (DFT). Notons à nouveau que le spectre d'un signal discret est "par définition" limité à une fréquence Fmax inférieure à la moitié de la fréquence d'échantillonnage Fd. Par conséquent, le spectre d'un signal discret peut être représenté par la somme de un fini nombre d'harmoniques, contrairement à la somme infinie de la série de Fourier d'un signal continu, dont le spectre peut être illimité. Selon le théorème de Kotelnikov, la fréquence maximale d'une harmonique doit être telle qu'elle représente au moins deux échantillons, de sorte que le nombre d'harmoniques est égal à la moitié du nombre d'échantillons d'un signal discret. Autrement dit, s'il y a N échantillons dans l'échantillon, le nombre d'harmoniques dans le spectre sera de N/2.
Considérons maintenant la transformée de Fourier discrète (DFT).
Comparaison avec la série de Fourier
Comme on peut le voir, elles coïncident, à l'exception du fait que le temps dans la FFT est discret et que le nombre d'harmoniques est limité à N/2, qui est la moitié du nombre d'échantillons.
Les formules DFT sont écrites en variables entières sans dimension k, s, où k est le nombre d'échantillons du signal, s est le nombre de composantes spectrales.
La valeur s indique le nombre d'oscillations harmoniques complètes par période T (durée de mesure du signal). La transformée de Fourier discrète est utilisée pour trouver les amplitudes et les phases des harmoniques numériquement, c'est-à-dire "sur l'ordinateur".
Comme il a déjà été dit plus haut, lorsqu'on décompose une fonction non périodique (notre signal) en séries de Fourier, la série de Fourier résultante correspond en fait à une fonction périodique de période T (Fig.12).
Comme le montre la figure 12, la fonction f(x) est périodique avec une période T0. Cependant, comme la durée de l'échantillon de mesure T n'est pas égale à la période de la fonction T0, la fonction obtenue sous forme de série de Fourier présente une discontinuité au point T. Par conséquent, le spectre de cette fonction contiendra un grand nombre d'harmoniques à haute fréquence. Si la durée de l'échantillon de mesure T coïncidait avec la période de la fonction T0, le spectre obtenu après la transformée de Fourier ne contiendrait que la première harmonique (une sinusoïde de période égale à la durée de l'échantillon), car la fonction f(x) est une sinusoïde.
En d'autres termes, le programme DFT "ne sait pas" que notre signal est une "tranche d'onde sinusoïdale", mais il tente de représenter sous forme de série une fonction périodique qui présente une discontinuité due à la discontinuité de morceaux distincts de l'onde sinusoïdale.
En conséquence, des harmoniques apparaissent dans le spectre, qui devrait, au total, représenter la forme de la fonction, y compris cette discontinuité.
Ainsi, pour obtenir un spectre "correct" d'un signal qui est une somme de plusieurs sinusoïdes de périodes différentes, il est nécessaire qu'un nombre entier de périodes de chaque sinusoïde doit être présente sur la période de mesure du signal. Dans la pratique, cette condition peut être remplie avec une durée de mesure du signal suffisamment longue.
Si la durée est plus courte, l'image sera plus "mauvaise" :
Dans la pratique, il peut être difficile de comprendre où sont les "composants réels" et où sont les "artefacts" causés par l'incohérence des périodes des composants et des durées d'échantillonnage du signal ou par des "sauts et des ruptures" dans la forme d'onde. Bien entendu, les mots "composantes réelles" et "artefacts" ne sont pas mis entre guillemets sans raison. La présence de nombreuses harmoniques sur le graphique du spectre ne signifie pas que notre signal en est réellement constitué. C'est comme si l'on pensait que le chiffre 7 "se compose" des chiffres 3 et 4. Le nombre 7 peut être considéré comme la somme de 3 et 4 - c'est exact.
Ainsi, notre signal... ou plutôt pas "notre signal", mais une fonction périodique composée par la répétition de notre signal (échantillon) peut être représentée comme une somme d'harmoniques (ondes sinusoïdales) avec certaines amplitudes et phases. Mais dans de nombreux cas importants pour la pratique (voir les figures ci-dessus), il est en effet possible de relier les harmoniques obtenues dans le spectre à des processus réels ayant un caractère cyclique et contribuant de manière significative à la forme du signal.
Quelques résultats
1. Un signal réel mesuré d'une durée de T secondes numérisé par un CAN, c'est-à-dire représenté par un ensemble d'échantillons discrets (N pièces), possède un spectre discret non périodique représenté par un ensemble d'harmoniques (N/2 pièces).
2. Le signal est représenté par un ensemble de valeurs valides et son spectre est représenté par un ensemble de valeurs valides. Les fréquences des harmoniques sont positives. Ce n'est pas parce qu'il est mathématiquement plus commode de représenter le spectre sous forme complexe en utilisant des fréquences négatives que "c'est juste" et "c'est ainsi qu'il faut toujours faire".
3. Le signal mesuré à l'instant T n'est déterminé qu'à l'instant T. Ce qui s'est passé avant que nous ne commencions à mesurer le signal et ce qui se passera ensuite sont inconnus de la science. Et dans notre cas, ce n'est pas intéressant. La FFT du signal limité dans le temps donne son spectre "réel", en ce sens que, sous certaines conditions, elle permet de calculer l'amplitude et la fréquence de ses composantes.