Fast convolution with striding

749 Views Asked by At

I want to convolve two discrete functions $f$ and $g$ using convolution stride size $a$ to get the result as $s_{a, i}$:

$$s_{i,a} = \sum_i g_k f_{ai-k}$$

I know that simple convolution with $a=1$ can be calculated via FFT. I can do it even now, but I have to drop out all the points except $ai$. I think this way is not the best.

Cannot you advice me something better?

1

There are 1 best solutions below

0
On

You can implement the downsampling with a polyphase filter. Have a look at this document, and go to "downsampled polyphase filter". You basically decompose $f_n$ into $a$ ("stride size") subsampled components. If you do that you can move the downsampling operation before the filters, which makes the process more efficient. However, if efficiency is not a big issue, the question is if it's worth the trouble. For real-time applications it certainly is.