用NAG函数加速Matlab离散傅立叶变换
我想把一些Matlab的傅立叶变换命令翻译成。DFT是:用NAG函数加速Matlab离散傅立叶变换,matlab,fft,convolution,Matlab,Fft,Convolution,我想把一些Matlab的傅立叶变换命令翻译成。DFT是: fft(A,n) fft(A,n,dim) ifft(A,[],dim) 其中,A是一个复数向量。例如fft(A,n)是c06fc(real(A),imag(A),'n',n) 问题:我很难找到合适的NAG函数,它们与fft(A,n,dim)和ifft(A,[],dim)的工作相同 背景:我正在使用Bruno Luong的卷积函数计算具有100万个复杂元素的向量卷积,convnfft(A,B,'same')。Luong的函数使用FFT
fft(A,n)
fft(A,n,dim)
ifft(A,[],dim)
A
是一个复数向量。例如fft(A,n)
是c06fc(real(A),imag(A),'n',n)
问题:我很难找到合适的NAG函数,它们与fft(A,n,dim)
和ifft(A,[],dim)
的工作相同
背景:我正在使用Bruno Luong的卷积函数计算具有100万个复杂元素的向量卷积,convnfft(A,B,'same')
。Luong的函数使用FFT快速计算卷积,我想通过使用NAG函数进一步加快计算速度。几句话:
FFTW被认为是最快的FFT库。我真的怀疑NAG的实现是否更快。你不会得到比MATLAB更快的FFT李>
然后,渐近地,Tome域卷积的复杂度为O(mn)。
然而,要在傅里叶域中应用卷积,必须使滤波器和信号的长度相同,然后复杂性为O(2nlog(n))。
因此,对于2log(n)>m的情况,最好使用时域卷积
由于这是渐近分析,实际上需要2log(n)>>m才能获得时域卷积的实际增益。你的问题是什么?谢谢@Royi。1.我已经调查了
fftw
,但速度几乎没有改善。2.听起来很有趣。你能提供一些很好的参考资料吗?嗨,你把FFTW和什么做过比较吗?如我上面所写,如果将其与MATLAB进行比较,当您使用fft
或ifft
时,您不会看到增益,因为MATLAB使用FFTW。无论如何,您无法获得比MATLAB内部更快的FFT(也许,只是也许,英特尔MKL FFT在某些情况下更好)。