The Fourier transform of the convolution of two signals with stride 1 is equivalent to point-wise multiplication of their individual Fourier transforms. I need to perform stride-'n' convolution using FFT-based convolution. For some reasons I need to operate in the frequency domain itself after taking the point-wise product of the transforms, and not come back to space domain by taking inverse Fourier transform, so I cannot drop the excess values from the inverse Fourier transform output to get equivalent stride - 'n' convolution. How can I handle the stride in the frequency domain? Thanks.

  • $\begingroup$ can you write down the formula of "stride-n convolution"; I could imagine two very different things that could be. $\endgroup$ Apr 14 '20 at 19:31
  • $\begingroup$ I wish to refer to the stride in convolutional neural networks, which is how many pixels the kernel moves over before calculating each output value of the convolution. $\endgroup$
    – psj
    Apr 14 '20 at 19:42
  • $\begingroup$ ah, that's just filtering, followed by decimation by n; well, that aliases everything to an 1/n-th of your bandwidth. That means you'll take your DFT, multiply with your DFT'ed kernel, divide the result it in n chunks of equal size, and add up the n chunks point wise. $\endgroup$ Apr 14 '20 at 21:10
  • $\begingroup$ Could you kindly provide some link/reference to how this is derived, maybe in digital image processing context? I am sorry but I don't have a signal processing background hence can't logically connect and understand it. $\endgroup$
    – psj
    Apr 15 '20 at 7:41
  • $\begingroup$ basically, every DSP textbook introduces aliasing, and that's exactly what's happening here. Pick your favourite book, even on image processing (but it's easier in 1D, so really, go with a DSP basics textbook)! So, ignore for a moment that you call it stride-n convolution. Instead understand the same mathematical operation being 1. filtering 2. keeping 1 sample, throw away n-1 samples, keep 1 sample, throw away...: that leads to aliasing, and aliasing is nothing but "folding over" your spectrum onto the remaining 1/n of original size. Aliasing is a concept you should become familiar with! $\endgroup$ Apr 15 '20 at 7:55

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.