I'm trying to train a deep nerual network that takes in input, an signal in the frequency domain, and attempts to learn a mapping to another signal in the frequency domain.

Basically, the input to the network is a 2d matrix with separate real and imaginary components with shape (256, 256, 2). Taking the IFFT of this input, produces the right image.

The input image in(after IFFT operation on the signal) looks like this:

Input image, after Inverse FFT

When the IFFT operation is applied on the network output however, the output image looks like this. Output image, after Inverse FFT

My question is this: What could be causing the output to appear this way? I looked at image scaling issues that could potentially lead to this, the image shown is adjusted with log scaling. The fact that there are two "lines" (vertical and horizontal) leads me to think that it might have to do with the IFFT "erasing" a lot of the information. My apologies for the wording of the title, couldn't figure out how to describe this issue.

  • 1
    $\begingroup$ Your image has a low-frequency content, that would be my guess.. $\endgroup$
    – Ben
    Mar 7 '19 at 16:22
  • 1
    $\begingroup$ How would that be the case given that I'm taking the IFFT of the output from my network? Can you please elaborate? $\endgroup$
    – Reptilian
    Mar 7 '19 at 16:55
  • $\begingroup$ I'm not fully understanding what'd be there to elaborate? Your neural network is literally a random concatenation of nonlinear and linear functions. The IFFT clearly shows it has dominant low-frequency content. What your neural network does is something we can't guess. $\endgroup$ Mar 7 '19 at 23:14
  • $\begingroup$ By the way, the IFFT doesn't erase any information. It's literally an inverse – an invertible operation can't have information loss. $\endgroup$ Mar 7 '19 at 23:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.