Transformée de Fourier discrète 248014 31275335 2008-07-03T20:08:40Z Valvino 116222 [[Catégorie:Transformée]] La '''transformée de [[Joseph Fourier|Fourier]] discrète''' (TFD) est un outil mathématique de [[traitement du signal]] numérique, qui est l'équivalent [[système discret|discret]] de la [[transformée de Fourier]] continue qui est utilisée pour le traitement du signal analogique. Sa définition mathématique pour un signal <math>s</math> de <math>N</math> échantillons est la suivante : : <math>S(k) = \sum_{n=0}^{N-1}s(n)\cdot e^{-2 i \pi k \frac{n}{N}}</math> La transformée inverse est donnée par : : <math>s(n) = \frac{1}{N} \sum_{k=0}^{N-1}S(k)\cdot e^{2 i \pi n \frac{k}{N}}</math> On obtient ainsi une représentation spectrale du signal échantillonné <math>s(n)</math>. <div id="figure-1"> [[Image:TFD.JPG|thumb|center|600px|Figure 1 : Transformée de Fourier discrète sur <math>N=64</math> points d'un sinus de fréquence 10 kHz échantilloné à 100 kech/s.]]</div> Ces définitions ne sont pas uniques : on peut tout à fait normer la TFD par <math>1/N</math>, et ne pas normer la TFD inverse, ou encore normer les deux par <math>\tfrac{1}{\sqrt{N}}</math>, le but étant dans tous les cas de retrouver le signal originel par la TFD inverse de sa TFD. La TFD est un cas particulier de la [[transformée en Z]], lorsqu'on évalue cette dernière sur le [[cercle unité]]. == Fréquence d'échantillonnage et interpolation == On peut remarquer que ce signal est périodique de période <math>N</math>, et renseigne sur les fréquences comprises entre <math>-F_e/2</math> et <math>F_e/2</math>, <math>F_e</math> étant la fréquence d'[[échantillonnage (signal)|échantillonnage]] souvent noté <math>f_s</math> dans la littérature anglosaxonne. On n'a donc que <math>N</math> points pour analyser le spectre, et il peut être intéressant d'augmenter ce nombre de points afin d'augmenter sa résolution spectrale (<math>\delta F = F_e/N)</math> et donc de mieux localiser les maxima de son spectre (un signal de fréquence non multiple de <math>F_e/N</math> ne sera pas vue après TFD. Il y a alors perte d'information). Pour augmenter le nombre de points, on peut : * Augmenter la fréquence d'échantillonnage. Mais cela a un coût en termes de ressources matérielles. * Faire une [[interpolation numérique|interpolation]]. Cela se fait par la technique du '''bourrage de zéros''' (en anglais ''zero-padding''), qui consiste à compléter le signal <math>s(n)</math> par <math>P</math> zéros. La nouvelle définition devient : : <math>S(k) = \sum_{n=0}^{N+P-1}s(n)\cdot e^{-2 i \pi k \frac{n}{N+P}} = \sum_{n=0}^{N-1}s(n)\cdot e^{-2 i \pi k \frac{n}{N+P}} </math> On somme toujours les mêmes valeurs de <math>s(n)</math> (les <math>P</math> autres étant nulles), mais on obtient une TFD de période <math>N+P</math> au lieu de simplement <math>N</math> : on a <math>P</math> points supplémentaires pour décrire la même TFD, on a donc augmenté sa résolution. Cette technique est notamment utilisée pour avoir un nombre de points total <math>N+P</math> en puissance de deux, et pouvoir utiliser un algorithme de [[transformée de Fourier rapide]]. On peut, de la même manière, faire du bourrage de zéros sur le spectre afin d'obtenir, par transformée inverse, une interpolation sur le signal initial. On considère ici toujours une fréquence d'échantillonnage de 1. En parlant en fréquences réduites (normalisées par rapport à la fréquence d'échantillonnage), la TFD est décrite pour des valeurs de la fréquence réduite variant entre 0 (pour <math>k=0</math>) et 1 (pour <math>k=N+P</math>). == Signaux réels == Pour un signal réel, on a la relation : <math> S(k)^* = S(-k)~</math> (propriété de symétrie [[hermitien|hermitienne]]). Lorsque l'on s'intéresse au spectre d'un signal, on élève le module de sa TFD au carré : le spectre est donc pair. Or, on a vu que la TFD est périodique, de période <math>N+P</math> : les fréquences <math>\tfrac{N+P}{2}</math> et <math>N+P</math> sont les mêmes que celles comprises entre <math>-\tfrac{N+P}{2}</math> et 0. Les fréquences négatives étant identiques aux positives, toute l'information spectrale est contenue entre les fréquences <math>\tfrac{N+P}{2}</math> et <math>N+P</math>. == Applications == La TFD est utilisée dans un large spectre d'applications, seuls les plus communs sont listés ici. Toutes ces applications nécessitent l'existence d'un algorithme rapide de calcul de la TFD et de son inverse, voir à ce sujet les méthodes de [[transformée de Fourier rapide]]. ===Analyse spectrale=== L'[[analyse spectrale]] des signaux est un élément essentiel en électronique pour de nombreuses raisons parmi lesquelles on peut citer : * déterminer la largeur de bande de fréquence occupée par une transmission ; * évaluer les distorsions harmonique apportée par le traitement des signaux ; * mesurer les filtres. L'électronicien qui a toujours besoin de vérifier expérimentalement a besoin d'un outil de mesure, l'analyseur de spectre. Il existe trois grandes familles d'analyseur de spectre, chacun ayant des caractéristiques intrinsèques : ==== L'analyseur de spectre à balayage (analogique) ==== Comme son nom l'indique, cet analyseur balaye une plage de fréquence en utilisant un filtre de largeur réglable. Il est capable de mesurer des plages de fréquence allant de l'audio à l'optique et ce pour des signaux d'amplitude très faible. ==== L'analyseur de spectre à FFT (numérique) ==== La FFT (Fast Fourier Transform ou transformée de Fourier rapide) est ici utilisé après échantillonnage du signal d'entrée basses fréquences (audio). Avantage : il est capable de capturer les signaux en temps réel avec une résolution spectrale très fine qui dépend du nombre de points <math>N</math> et de la fenêtre de pondération utilisée. L'augmentation de la rapidité et de la résolution des convertisseurs analogique numérique permettra d'analyser des signaux à des fréquences de plus en plus élevées. ==== L'analyseur de signaux vectoriel (analogique/numérique) ==== Comme il combine les technologies des deux premiers (balayage et FFT), ils permet d'analyser des signaux dont les fréquences ne sont séparées que de quelques mHz sur toute la gamme de fréquences radio. Très utilisé dans le domaine des transmissions numériques pour analyser des signaux complexes (QAM, QPSK,) === Compression de données === Le traitement du signal en général utilise énormément les opérations dans le domaine fréquentiel et en particulier la TFD ou une de ses variantes. En compression du son ou de l'image, des transformées proches de la TFD (par exemple la [[transformée en cosinus discrète]]) sont appliquées en général sur des portions de signal, pour réduire la complexité. Les coefficients <math>S(k)</math> sont ensuite [[Quantification (signal)|quantifiés]] avec des pas de quantification plus élevés pour les hautes fréquences, qui sont considérées comme négligeables pour la perception humaine. Le gain en compression vient de la réduction de précision de ces coefficients (voire leur suppression totale) qui nécessitent alors moins de bits pour être codés. Il s'ensuit généralement une étape de [[codage entropique]]. La reconstruction du signal s'effectue alors à partir de cet ensemble réduit de coefficients quantifiés. Exemple : Sur la [[#figure-1|figure 1]], il est facile d'observer que le traitement temporel du signal sans perte d'information, nécessite de mémoriser 64 échantillons alors que le traitement fréquentiel n'en nécessite qu'un seul point (en rappelant que les deux raies portent la même information). Et il n'y a pas de perte. === Équations aux dérivées partielles === {{...}} === Multiplication de grands nombres entiers === Certains des algorithmes les plus rapides pour la multiplication de grands nombres entiers sont basés sur la TFD. Les séquences de chiffres sont interprétées comme les éléments d'un vecteur, dont on calcule la [[Produit de convolution|convolution]]. On calcule pour cela leur TFD, qui sont multipliées entre elles (une [[Produit de convolution|convolution]] en temps est un produit en fréquence) puis on effectue la TFD inverse. === Analyse de séries temporelles === La TFD est utilisée pour l'étude des séries temporelles (ou chronologiques) où le but est de trouver des corrélations entre deux séquences de données. Un exemple classique est l'analyse des cours de la bourse, afin de repérer des évenements particuliers. La problématique est en général celle de la [[fouille de données]], ou de la recherche par similarité. La TFD est utilisée ici comme un moyen de réduire la dimensionnalité du problème. La TFD permet en effet de décorréler les données de départ et de ne travailler que sur un petit nombre de coefficients significatifs. == Quelques TFD de signaux classiques== {| class="wikitable" style="background:white; text-align:center;" align="center" |+Quelques signaux et leur TFD |- ! <math>x_n=\frac{1}{N}\sum_{k=0}^{N-1}X_k \cdot e^{i 2 \pi kn/N} </math> ! <math>X_k=\sum_{n=0}^{N-1}x_n \cdot e^{-i 2 \pi kn/N} </math> ! Note |- | <math>x_n \cdot e^{i 2 \pi kn/N} \,</math> | <math>X_{n-k}\,</math> | rowspan="2"| Propriété de translation |- | <math>x_{n-k}\,</math> | <math>X_k \cdot e^{-i 2 \pi kn/N} </math> |- | <math>x_n \in \mathbb{R}</math> | <math>X_k=X_{N-k}^*\,</math> | TFD d'un signal réel |- | <math>a^n\,</math> | <math>\frac{1-a^N}{1-a \cdot e^{-i 2 \pi k/N} }</math> |&nbsp; |- | <math>{N-1 \choose n}\,</math> | <math>\left(1+e^{-i 2 \pi k/N} \right)^{N-1}\,</math> |&nbsp; |} == Références == * Analyse de Fourier et applications, Claude Gasquet, Patrick Witomski: Université de Grenoble I, Dunod (1996) * Efficient Similarity Search In Sequence Databases, Rakesh Agrawal, Christos Faloutsos, Arun Swami, Proceedings of the 4th International Conference of Foundations of Data Organization and Algorithms (1993) == Voir aussi == * [[Matrice circulante]] qui donne une interprétation géométrique de la transformée de Fourier discrète * [[Transformée de Fourier]] * [[Transformée de Fourier rapide]] * [[Transformée en Z]] * [[Fenêtrage]] * [[Transformée de Fourier à court terme]] * [[Transformée en cosinus discrète]] {{portail mathématiques}} [[Catégorie:Transformée]] [[Catégorie:Transformée du signal]] [[Catégorie:Analyse harmonique discrète]] [[ar:تحويل فوريي المنقطع]] [[ca:Transformada Discreta de Fourier]] [[de:Diskrete Fourier-Transformation]] [[en:Discrete Fourier transform]] [[es:Transformada de Fourier discreta]] [[fa:تبدیل گسسته فوریه]] [[hi:डिस्क्रीट फुरिअर रूपान्तर]] [[id:Transformasi Fourier diskrit]] [[it:Trasformata di Fourier discreta]] [[ja:離散フーリエ変換]] [[ko:이산 푸리에 변환]] [[lt:Diskrečioji Furjė transformacija]] [[nl:Discrete fouriertransformatie]] [[pl:Dyskretna transformata Fouriera]] [[ru:Дискретное преобразование Фурье]] [[sr:Дискретна Фуријеова трансформација]] [[su:Transformasi Fourier Diskrit]] [[tr:DFT]] [[vi:Biến đổi Fourier rời rạc]] [[zh:离散傅里叶变换]]