The code is bug-prone because it has lots of unnecessary duplicated portions. I'd recommend instead <http://www.mathworks.com/matlabcentral/fileexchange/24504-fft-based-convolution>.
03 Jan 2007
24 Mar 2006
I need coding for convolution coding theory in MATLAB. Need some help!!
05 Dec 2005
This is a simple code for 2-d convolution, based on the built-in matlab routine for 2-d fft. You can write it easily yourself, but this code is pretty clean and straightforward.
For large matrices, filter2 or conv2 are v. slow in matlab for large matrices. This code leads to a considerable speedup, by a factor of 5-10 on my machine, when I convolve a 500^2 matrix with a 100^2 one.
16 Dec 2004
Comparison of calculation times
Signal length 1 second, impulse length 1 second, fs=44100, vectors (one-dimension).
conv 103.8 s
filter 79.4 s
fftfilt 0.38 s
convfft 0.92 s
Signal length 10 seconds, impulse length 1 second
fftfilt 1.28 s
convfft 14.61 s
AMD Athlon XP 2000+ (1.67 GHz), 512 MB RAM
28 Jul 2004
I suppose not. Conv performs time domain convolution. A possible improvement could be wavelet-based convolution...FFtfilt is a 1D FFT-based convolution (OLA method) and this operator in N-dimensions can be performed in N step.
27 Jul 2004
Isn't the standard implementation of the conv function in Matlab already based on fft?....
05 May 2004
fftfilt in matlab is only for 1D cases.
30 Mar 2004
15 Jan 2004
Matlab has a function called fftfilt (in the signal processing toolbox) that does the exact same thing, only faster. This algorithm is also known as Overlap add.