2016-05-13 1 views
1

J'ai fait FFT sur une fonction complexe dans DM. Et étrangement, les basses fréquences attendues sont situées dans les coins (voir l'image ci-jointe). il a rendu le traitement ultérieur très gênant. Ceci me rappelle des résultats similaires quand il serait exécuté en Python avec numpy.fft.fft, cependant en numpy (python) il y a une fonction fftshift pour décaler la basse fréquence vers le centre.Y at-il une fonction de décalage FFT dans dm-scripting

Y a-t-il une fonction similaire dans DM fonctionnant sur une telle image FFT afin de décaler les basses fréquences du coin vers le centre?

FFT of an complex function

+0

Le iFFT de l'image ci-dessus est assez jolie: c) Holographie liée? – BmyGuest

+0

FFT d'une onde de diffraction de Fresnel calculée. J'ai lutté pendant longtemps ... – w4m

Répondre

2

Une FFT de script calculé ne dispose pas de son fréquences dans le centre. (Notez que l'entrée de l'opération doit être une image complexe.)

image img := GetFrontImage() 
ConvertToComplex(img) 
ComplexImage fImg := FFT(img) 
fImg.ShowImage() 

Cependant, si vous voyez vos fréquences « décalées », alors il est fort probable un signe d'erreur dans votre TFR (ou, équivalent, un mélange de FFT et d'iFFT).

Mais pour répondre à votre question réelle, oui, il y a une telle commande, et il est en fait documenté:

void ShiftCenter(BasicImage image)

enter image description here enter image description here

+0

Merci pour votre indice (de fft mixte et ifft). J'essayais de calculer la diffraction de Fresnel en utilisant la méthode FFT et de la propager à travers un objet puis "focus" (FFT) et ensuite "image" (IFFT). – w4m