# Performing DFT twice on an image. Why am I getting an inverted image? [duplicate]

I was asked to perform DFT on an image twice as a part of my school assignment. Why am I getting a blurry inverted image when I perform DFT on an image twice? Sorry, I'm new to image processing and signal processing. Can someone help me explain this mathematically?

Here's the result I obtained. PS: I used FFT algorithms to perform the DFT. (Python and numpy, np.fft.fft2)

: I haven't shifted the DC value, F(0,0), to the center as usual, for the magnitude spectra given here. (I haven't used np.fft.fftshift)

Here's the exact code I used.

import numpy as np
from matplotlib import pyplot as plt

dft = np.fft.fft2(img)
dft_of_dft = np.fft.fft2(dft)

spectrum = np.abs(dft)
c = 255 / log(1 + np.amax(spectrum))
spectrum = c*np.log(spectrum)

double_dft_spectrum = np.abs(dft_of_dft)
c = 255 / log(1 + np.amax(double_dft_spectrum))
double_dft_spectrum = c*np.log(double_dft_spectrum)

p, axarr = plt.subplots(1, 3, figsize=(12,4))
axarr[0].imshow(img, cmap = 'gray')
axarr[0].set_title('Original Image')
axarr[1].imshow(spectrum, cmap = 'gray')
axarr[1].set_title('DFT')
axarr[2].imshow(double_dft_spectrum, cmap = 'gray')
axarr[2].set_title('Double DFT')
plt.show()


## marked as duplicate by Peter K.♦Jan 16 at 14:12

• What are you using to apply the FFT? – Royi Jan 16 at 13:15
• @Royi I'm using python and numpy. Using np.fft.fft2 function to be exact. – icyfire Jan 16 at 13:18
• Share your code and we'll assist you. I would guess you use fft twice. – Royi Jan 16 at 13:23
• @Royi I have added the code in a new edit. – icyfire Jan 16 at 13:27

It's a DFT property that if you apply DFT twice to input data, you get the original signal flipped (circularly). Stated mathematically for 1D case:

$$x[n] \xrightarrow{ N-DFT } X[k]$$ $$X[k] \xrightarrow{ N-DFT } Y[k] = N x[-k]$$

similar result can be shown for 2D case. And as you can see, the resulting output is the flipped (horizontally and vertically) original data.

You can see mathematical derivation in other questions on this site. I remember having answered that before. Please check this site for applying DFT or FFT twice.