"Y a-t-il une application pratique?" Certainement oui, au moins pour vérifier le code et les erreurs liées.
"En théorie, la théorie et la pratique correspondent. En pratique, ce n'est pas le cas." Donc, mathématiquement, non, comme l'a répondu Matt. Parce que (comme déjà répondu), (jusqu'à un facteur d'échelle potentiel). Cependant, elle peut être utile sur le plan informatique, car l'équation ci-dessus est généralement implémentée via la transformée de Fourier discrète et son avatar rapide, la FFT.F(F(x(t)))=x(−t)
Une première raison vient de la volonté de vérifier que l'implémentation de Fourier, qu'elle soit codée par vous, par quelqu'un d'autre ou à partir d'une bibliothèque, fait ce qu'elle doit faire sur vos données. L'ordre des échantillons, les facteurs d'échelle, les limites sur le type d'entrée (réalité, profondeur de bits) ou la longueur sont des sources d'erreurs ultérieures potentielles pour les implémentations de Fourier comme la FFT. Donc, pour vérifier la validité, il est toujours bon de vérifier que les versions implémentées héritent, au moins approximativement, des propriétés théoriques. Comme vous le verrez, comme le montre Machupicchu, vous ne récupérez pas exactement une entrée réelle inversée: souvent, la partie imaginaire n'est pas exactement zéro, et la partie réelle est ce qui était attendu, mais dans une petite erreur relative, en raison de calculs informatiques imparfaits (virgule flottante) dans une tolérance dépendante de la machine. Ceci est rendu visible sur l'image suivante. La FFT est appliquée deux fois sur un signal aléatoire de 32 échantillons et inversée. Comme vous pouvez le voir, l'erreur est faible, en utilisant des flotteurs à double précision.
Si l'erreur n'est pas relativement faible, il peut y avoir des erreurs dans le code que vous utilisez.
Une seconde concerne d'énormes volumes de données ou de grandes quantités de calculs FFT itérés, comme avec la tomographie. Là, les petites erreurs relatives précédentes peuvent s'accumuler et se propager, et même induire des divergences de calcul ou des erreurs certains détails ici . Ceci est rendu visible sur l'image suivante. Pour un signal pas si long ( échantillons ), nous effectuons les itérations suivantes:
où désigne la FFT. Le chiffre affiché est sous-échantillonné. Et nous calculons l'erreur maximaleà chaque itération.x01e6xk+1=Re(f(f(f(f(xk)))))
fmax|xk−x0|
Comme vous pouvez le voir, l'ordre de grandeur de l'erreur a changé, en raison de la taille du signal. De plus, l'erreur maximale augmente régulièrement. Après itérations, il reste suffisamment petit. Mais vous pouvez deviner qu'avec un cube -voxel et des millions d'itérations, cette erreur peut devenir non négligeable.10001000×1000×1000
Limiter l'erreur et évaluer son comportement sur des itérations peut aider à détecter de tels comportements, puis à les réduire par un seuillage ou un arrondi approprié.
Information additionnelle: