Traitement numérique du signal

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Le traitement numérique du signal étudie les techniques de traitement (filtrage, compression, etc), d'analyse et d'interprétation des signaux numérisés. À la différence du traitement des signaux analogiques qui est réalisé par des dispositifs en électronique analogique, le traitement des signaux numériques est réalisé par des machines numériques (des ordinateurs ou des circuits dédiés).
Ces machines numériques donnent accès à des algorithmes puissants, tel le calcul de la transformée de Fourier. Les signaux naturels n’étant généralement pas numériques, il faut les numériser par un convertisseur analogique-numérique.

Avantages du traitement numérique[modifier | modifier le code]

En comparaison du traitement du signal analogique, le traitement numérique présente un certain nombre d'avantages :

  • Immunité au bruit : un signal codé numériquement n'est pas bruité lors de son traitement. On peut donc réaliser des calculs de précision arbitraire et mettre en cascade un grand nombre d'opérations.
  • Souplesse : un traitement numérique est facilement ajustable ou paramétrable en cours de fonctionnement. Le traitement peut même s'adapter de lui même à la situation (évolution du signal d'entrée au cours du temps). L’aptitude des machines numériques à enchaîner des séquences d’opérations facilite également la réalisation d’algorithmes de traitement complexes. Un exemple important est la transformée de Fourier.
  • Mémorisation : la facilité de mettre un signal en mémoire permet de réaliser des retards facilement et donc une grande variété de filtres ou des opérations de corrélation. On a également accès par ce biais à des traitements itératifs, fonctionnant par raffinements successifs, ce qui ouvre considérablement les possibilités.

Ces avantages sont tempérés par quelques limites :

  • La numérisation en elle-même peut dégrader le signal, du fait d'une quantification ou d'un échantillonnage insuffisants. De plus, les calculs numériques ne sont pas exempts d'erreurs, du fait des arrondis. Les calculs effectués en virgule fixe sont particulièrement vulnérables à ces problèmes.
  • Le traitement numérique est nécessairement plus lent, plus consommateur et plus gourmand en ressources matérielles que l'approche analogique. Cependant, les progrès de la microélectronique réduisent de plus en plus l'impact de ces défauts et autorisent le recours au traitement numérique d'un signal pendant sa transmission, dans un vaste domaine d'applications, qui s'effectuent jusqu'à des fréquences élevés de plus de 500 MHz.

Spécificités analytiques du traitement numérique[modifier | modifier le code]

Alors qu’un signal analogique peut être représenté mathématiquement par une fonction continue d’une variable continue (par exemple, modélisation d'une tension électrique variable au cours du temps), un signal numérique est une suite de nombres. Il faut donc des outils mathématiques différents pour les manipuler. Citons :

Conversion analogique-numérique[modifier | modifier le code]

Puisque les signaux naturels sont presque tous des signaux continus et que les circuits numériques ne manipulent que des données discrètes, il faut d'abord transformer ces signaux avant de pouvoir leur appliquer un traitement numérique. Cette transformation s'appelle la digitalisation ou numérisation ; elle est réalisée par un convertisseur analogique-numérique. Cette opération comprend deux actions :

Théorème de Shannon-Nyquist[modifier | modifier le code]

L'échantillonnage transforme un signal continu S(t)\, en un signal discret S_i\, composé de plusieurs mesures du signal continu, relevées à des instants successifs séparés par un pas temporel constant. Ainsi : S_i = S(i \cdot T_e )\,T_e\, est la période d’échantillonnage. F_e =1/T_e\, est la fréquence d’échantillonnage.

D’après le théorème d'échantillonnage de Nyquist-Shannon, un signal dont les composantes fréquentielles sont inférieures à F_e/2\, est échantillonné de façon réversible : il est possible de reconstituer le signal continu à partir des valeurs discrètes. La fonction interpolante utilisée à cette fin est le sinus cardinal (noté sinc) :

S(t)=\sum_i S_i \cdot \operatorname{sinc}\left( \pi (\frac{t}{T_e}-i) \right)

De façon à éviter les artéfacts de « repliements de spectre », il est nécessaire d'éliminer les composantes fréquentielles au-delà de F_e/2\,. Cela est réalisé par un filtre (analogique), appelé filtre anticrènelage, possédant en général une coupure raide (d'ordre élevé).

Filtrage linéaire[modifier | modifier le code]

Un filtre calcule un signal discret y(n)\, à partir d’un signal discret x(n)\,. Chaque échantillon de y(n)\, est une combinaison linéaire d’échantillons de x(n)\,.

Un filtre est dit causal si l’échantillon y(n)\, ne dépend exclusivement que des valeurs de x(i)\, pour i < n, c’est-à-dire des valeurs antérieures. C'est le cas de tous les systèmes réels, qui ne peuvent pas anticiper les valeurs futures. Toutefois, grâce à la mémorisation des signaux rendue possible par la numérisation, on peut réaliser des réponses impulsionnelles d'apparence non-causale.

Un filtre linéaire et invariant est caractérisé par sa réponse impulsionnelle, ie. la réponse à une entrée ne comportant qu’une valeur non nulle. La nature de cette réponse caractérise le filtre qui peut être à réponse impulsionnelle finie (RIF) ou infinie (RII). La sortie d’un filtre est la convolution de l’entrée par la réponse impulsionnelle. Cette convolution donne un algorithme de calcul d’un filtre RIF. Cette convolution peut être également calculée par transformée de Fourier rapide. Pour réaliser des filtres de type RII, on utilise des techniques récursives (la sortie du filtre dépend des échantillons de sortie précédents).

La transformée en Z de la réponse impulsionnelle est la fonction de transfert du filtre. Sa factorisation permet de décrire un filtrage par une équation aux différences discrètes. La transformée de Fourier — c'est-à-dire la transformée en Z pour z = e^{\,j2\pi\lambda}\, — de la réponse impulsionnelle est la « réponse en fréquence » du filtre : elle permet de passer dans un domaine spectral. \lambda\, est la fréquence réduite : \lambda  = F/Fe\,.

Le calcul des coefficients d’un filtre pour obtenir une réponse en fréquence spécifiée est appelé « synthèse du filtre. »

Spectre unilatéral[modifier | modifier le code]

Tout signal périodique de période T_0=1/F_0 se décompose en série de Fourier : S(t)=A_0 + \sum_{n=1}^\infty A_n   cos(2\pi\cdot n\cdot F_0\cdot t) +  i*\sum_{n=1}^\infty  B_n sin(2\pi\cdot n\cdot F_0\cdot t ) Ce qui conduit directement au spectre discret du signal.

Analyse spectrale[modifier | modifier le code]

La transformée de Fourier discrète (TFD) est utilisée pour calculer numériquement le spectre d'un signal, c’est-à-dire sa représentation fréquentielle. L’utilisation de cette TFD nécessite cependant quelques précautions. D’une part, parce qu’elle n’est applicable que sur un signal de durée limité : le signal doit donc souvent être tronqué, ce qui entraîne l’apparition d’ondulations parasites sur le spectre — elles peuvent être atténuées par les techniques d'apodisation. D’autre part, parce que le spectre obtenu est lui-aussi échantillonné, ce qui rend son interprétation plus difficile. Une interpolation de ce spectre peut être souhaitable.

En pratique, on utilise pour réaliser la transformée de Fourier discrète un algorithme connu sous le nom de transformée de Fourier rapide (FFT pour Fast Fourier Transform en anglais). Il consiste à ordonner astucieusement les calculs de manière à réduire le nombre total de multiplications nécessaires. La complexité de l'algorithme passe alors de N^2 à N.\log_2(N) , N étant le nombre de points d'acquisition composant le tableau de valeurs.

Mise en œuvre[modifier | modifier le code]

Le traitement de signaux déjà numérisés peut se faire sur des ordinateurs d’usage général. Dans les applications de traitement en temps réel, des microprocesseurs spécialisés sont utilisés (DSP). Pour plus de rapidité, des fonctions spécifiques sont réalisées directement sous la forme de circuits intégrés (ASIC) ou implantées sur des composants en logique programmable (FPGA).

Signal causal[modifier | modifier le code]

s(t)=0 pour t<0

Un signal est dit causal si ce signal est nul quand t<0

Par opposition, un signal non-causal est défini sur l'ensemble des réels : le signal existe même pour t<0.

Bibliographie[modifier | modifier le code]

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]