Bonjour. Dans cette vidéo, nous allons voir comment mettre en pratique la transformation de Fourier à l'aide du langage Scilab. Et en fait, ce qu'on va faire avec Scilab, c'est pas des calculs de transformée de Fourier, parce que ça, ça représente un nombre de points infinis, mais ce qu'on appelle la transformée de Fourier discrète. Et on va donc commencer par voir en quoi consiste cette transformée de Fourier discrète. Alors, pour cela, il faut d'abord se poser la question de l'échantillonnage d'un signal qui va dépendre du temps. Donc, j'ai par exemple ici une fonction f de t, donc représentée en fonction de t. J'ai pris l'exemple d'une gaussienne. Et puis, cette transformée de Fourier ici, f de oméga. C'est la transformée de Fourier inverse en fonction de la fréquence ou de la pulsation oméga. Donc, dans ce signal qui dépend du temps ou de la fréquence, on a un problème, c'est qu'on a en fait une infinité de points, une double infinité. D'abord parce que notre fonction, elle va de moins l'infini jusqu'à plus l'infini. Donc, elle s'étend sur l'intervalle de temps qui va être infini. Et puis en plus parce qu'on a un ensemble dense de points, c'est-à-dire qu'on a, dans chaque élément de, dans chaque intervalle ici, on aura aussi une infinité de points. Donc évidemment, tout ça, ça va pas rentrer dans la mémoire finie d'un ordinateur, et il va falloir faire quelque chose. C'est ce qu'on appelle l'échantillonnage. C'est-à-dire qu'on va considérer les valeurs des fonctions uniquement en des points discrets, Donc, qu'est-ce qui se passe déjà si j'échantillonne la fonction dans l'espace des fréquences? C'est-à-dire que si je considère non pas la fonction, en fonction de oméga, mais simplement des points discrets. Eh bien, qu'est-ce que c'est que une fonction qui n'a que certaines valeurs discrètes de la fréquence? C'est tout simplement une fonction périodique, et la période étant égale à l'inverse de l'écart ici, entre deux points. Donc, c'est ce qu'on a vu sur les séries de Fourier. Si je périodise ma fonction f de t, eh bien, je vais avoir une série de Fourier avec un ensemble dénombrable ici, de points des valeurs de la fréquence oméga n qui seront des multiples de 2 pi sur T comme on l'a vu sur le cours sur la série de Fourier. Et puis, alors évidemment, pour que ça fonctionne, il faut que le support temporel de la fonction f de t soit plus petit que la période t qu'on va choisir. Mais ça, c'est une période t. On va donc la choisir de manière adaptée. Et puis on peut évidemment faire la même chose. C'est-à-dire, ce spectre ici, qui est dans l'espace des fréquences, on va pouvoir le périodiser. Donc, on va pouvoir prendre ce motif f de oméga, et puis le reproduire identique à lui-même avec une certaine période dans l'espace des fréquences. Donc par exemple, ce que je vais dire, c'est que je veux considérer un nombre fini de points que je vais appeler grand N, et puis je vais prendre une largeur ici, en fréquence, qui va être égale à n fois le pas d’échantillonnage dans l'espace des fréquences, donc n fois 2 pi sur T. Alors, qu'est-ce qui va se passer? Eh bien, on connaît la réponse, parce que rappelez-vous qu'il y a une symétrie parfaite entre le domaine temporel et le domaine spectral. Donc, si je périodise ma fonction dans l'espace des fréquences, ce qui va se passer c'est que je vais avoir un ensemble dénombrable ici de points, dans le domaine temporel. Et en effet, c'est ce qu'on peut montrer mathématiquement. Ce qui va se passer, c'est que si donc, je périodise ma fonction dans l'espace des fréquences, je vais avoir ici ma fonction qui prendra des valeurs non nulles, seulement en des points discrets que je vais appeler les points t indice k qui seront égaux à k fois le pas d'échantillonnage delta t. Et puis, on a les mêmes relations entre le domaine temporel et le domaine des fréquences, donc dans les deux sens. C'est-à-dire que vous voyez qu'ici, le pas d'échantillonnage, dans le domaine des fréquences, c'est 2 pi sur T, comme on l'avait vu sur la transformée de Fourier. Donc, 2 pi sur la période dans le domaine temporel. Eh bien, de la même manière, le pas d'échantillonnage temporel delta t, ça va être égal à 2 pi divisé par la période dans l'espace des fréquences. Et si j'ai conservé n point, donc n fois 2 pi sur T, ici. Donc, la période dans l'espace des fréquences, c'est n fois 2 pi sur T. Et donc, vous voyez que finalement, mon pas d'échantillonnage, il est relié au choix de T et de N, c'est tout simplement T sur N. Et donc, vous voyez que grâce à cet échantillonnage, finalement, je vais pouvoir représenter ma fonction f de t avec seulement un nombre fini de point grand N, soit n point dans l'espace des temps, avec un pas d'échantillonnage delta t qui est égal à T sur N. Donc, je vais pouvoir couvrir comme ceci, l'intervalle ouvert zéro, T. Ouvert, parce que la valeur de la fonction en grand T, c'est évidemment la même que la valeur en zéro. Donc, j'ai besoin de grand N point. Mais je peux aussi décrire la même information dans l'espace des fréquences avec un ensemble N de points puisque quand petit n ici, varie entre zéro et n moins 1, eh bien, je vais effectivement couvrir l'ensemble de la période 2 pi sur T de ma fonction dans l'espace des fréquences. Alors, pour que ça marche, ça il faut, d'une part, que le support temporel de la fonction évidemment soit plus petit que t. Ça, c'est assez immédiat. Et puis, il faut aussi que le support dans l'espace des fréquences soit plus petit que la période dans l'espace des fréquences. Donc, si j'appelle oméga max, la plus grande fréquence qu'on a dans le spectre de la fonction f de oméga, donc j'ai ici une largeur de 2 oméga max. Il faut que 2 oméga max soit plus petit que N fois 2 pi sur T. Donc ça, c'est ce qu'on appelle le critère de, le critère de Nyquist-Shannon, 2 oméga max plus petit que N fois 2 pi sur T. Comme T sur N, on a vu que c'était égal au pas d'échantillonnage dans le domaine temporel. Eh bien, il faut que 2 oméga max soit plus petit que 2 pi sur T. Donc, on échantillonne une fonction dans le domaine temporel, il va falloir que le pas d'échantillonnage vérifie cette condition qui soit suffisamment petit. C'est aussi une condition qu'on exprime en diant que il faut qu'il y ait au minimum deux points par frange, puisque ça je peux le reformuler, en disant que delta T doit être plus petit que pi sur oméga max. Donc vous voyez que grâce à ce critère de Nyquist-Shannon, eh bien, on peut dire que à condition d'avoir une fonction qui a un support temporel borné, et qui a un support spectral borné, on va être capable d'avoir toute l'information sur la fonction, à condition donc de vérifier cette condition d'échantillonnage. Et donc évidemment, dans la suite, ce qu'on va faire, c'est des calculs de ce qu'on appelle les transformées de Fourier discrètes qui permettront de passer de cet ensemble de n point dans le domaine temporel, à un ensemble de n point dans le domaine spectral. Ce qui sera important de retenir, c'est les relations qu'on a entre les pas d'échantillonnage et les périodes dans les deux espaces. Donc, il faudra se rappeler que le pas d'échantillonnage dans le domaine temporel, c'est l'inverse de la période dans le domaine des fréquences. Cette période ici, N fois 2 pi sur T, comme delta T, c'est T sur N, je peux encore l'écrire 2 pi divisé par delta T. Donc, vous voyez que en fréquence, la période dans l'espace des fréquences, c'est exactement 1 sur delta T, donc c'est l'inverse du pas d'échantillonnage. De la même manière, le pas d'échantillonnage dans l'espace des fréquences, c'est 2 pi sur T. Donc, enfin l'espace des pulsations, c'est 2 pi sur T. Donc, dans l'espace des fréquences, c'est 1 sur T. C'est exactement l'inverse de la période temporelle dans le domaine des temps. Et donc, il faut bien se souvenir de ces deux relations qui nous seront utiles par la suite. Donc, ce qu'on vient de voir sur le critère d'échantillonnage de Shannon-Nyquist va nous permettre de calculer les transformées de Fourier à l'aide d'un ordinateur. Donc, j'ai reproduit ici les définitions de la transformée de Fourier et de la transformée de Fourier inverse. Ce qu'on va utiliser, pour faire le calcul numérique, ça va être ce qu'on appelle la transformée de Fourier discrète dont les expressions mathématiques sont reportées ici. Alors, la première formule ne doit pas vous surprendre. On retrouve simplement l'expression de la série de Fourier, avec ici, l'équivalent des coefficients cn, et des exponentielles moins i oméga n T. Simplement, cette série de Fourier est évaluée en des valeurs discrètes du temps, les valeurs TK qui étaient égales à K fois le pas d'échantillonnage delta T. Simplement, la différence avec la série de Fourier, c'est que là, on va se limiter à un nombre fini de valeur de la fréquence des coefficients de Fourier. Et on a pu faire ça parce que on a supposé que notre spectre dans l'espace des fréquences, était périodique. Donc, c'est pas la peine d'aller au-delà de la période. Et puis, grâce à cette symétrie qu'on a entre temps et fréquence, eh bien, on retrouve exactement la même expression avec un changement de signe ici, pour passer des valeurs échantillonnées au point tk aux valeurs échantillonnées au point oméga N, ou alors de oméga N qu'on a défini dans la diapositive précédente. Ce sera la même formule. Simplement, au lieu d'un signe moins, ici, on a un signe plus. Et puis, il y a un facteur 1 sur N, pour que on puisse avoir les bonnes façons que la transformée de Fourier inverse soit bien l'inverse de la transformée de Fourier. On peut aussi voir ces formules comme des expressions approchées des intégrales qu'on a là, en faisant l'intégrale de Riemann de ces expressions. Donc en fait, c'est ça qu'on va calculer à l'aide d'un ordinateur. Donc, ce sera tout simplement des sommes discrètes. C'est ça qu'on appelle la transformée de Fourier discrète. Alors, un problème, c'est que le temps de calcul va être a priori assez long, puisque vous voyez que si je veux calculer l'ensemble des valeurs par exemple, de f de oméga N, en partant de l'ensemble des valeurs f de tk. Eh bien, je vais devoir calculer N valeur de f de oméga N, puisque je vous rappelle que N va être compris entre zéro et N moins 1. Donc, j'ai N, somme à calculer, et chacune de ces sommes comporte N terme. Donc, je vais avoir à, finalement, a priori, un temps de calcul, si je le fait de manière immédiate, sans trop réfléchir. J'aurai un temps de calcul qui va être en N au carré. Et donc, dès lors qu'on va s'intéresser à des données assez volumineuses, on va avoir une augmentation inacceptable du temps de calcul. Et donc, le domaine du calcul numérique de la transformée de Fourier a été révolutionné par un algorithme qu'on appelle l'algorithme de Fast Fourier Transform qui a été introduit par Cooley et Tukey dans les années 60. C'est un algorithme dichotomique qui permet de calculer beaucoup plus vite. Et en fait, ce qu'ils ont montré, c'est que leur algorithme était en N, log de N en base 2. Donc, par exemple, si vous avez un ensemble de données qui a 65 536 points, c'est-à-dire 2 puissance 16, eh bien, le temps de calcul, au lieu d'être 2 puissance 32, ça va être simplement 16 fois 65 536. Donc, si je me trompe pas, ça va faire 2 puissance 20. Donc, c'est évidemment beaucoup plus, considérablement plus rapide que d'utiliser la méthode bête de calculer chacune de ces sommes N fois. Donc, c'est cet algorithme de transformée de Fourier qu'on va tout le temps utiliser, et cet algorithme est évidemment disponible avec un langage comme Scilab. Et c'est ce qu'on va voir maintenant en le mettant en pratique.