How to use a code that uses FFTW in MATLAB?

6 次查看(过去 30 天)
I have a slow MATLAB code that consists of many helper functions. The bottleneck seems to be one helper function that heavily uses FFT and IFFT so I'd like to speed it up. I already tried generating a MEX function from this specific helper function but the computation became even slower. Another approach is to generate FFTW Library calles as described in Speed Up Fast Fourier Transforms in Generated Standalone Code by Using FFTW Library Calls:
The procedure itself seems to be very similar to a MEX function generation. My questions are,
  • After I generate the code, how can I use it as a part of my MATLAB code? Is the generated code intended to be used in an execution environement other than MATLAB?
  • It seems like the fft function in MATLAB is already using FFTW. Then, what is the purpose of generateing FFTW library calls from MATLAB function? Does it really speedup the computation?
Correct me if I misunderstand something.

采纳的回答

Bruno Luong
Bruno Luong 2022-3-31
  • After I generate the code, how can I use it as a part of my MATLAB code? Is the generated code intended to be used in an execution environement other than MATLAB?
It depends if you compile as stand alone then it is not intended to be used in MATLAB. The only option is compile in MEX.
  • It seems like the fft function in MATLAB is already using FFTW. Then, what is the purpose of generateing FFTW library calls from MATLAB function? Does it really speedup the computation?
No, it is only interesting for people who compile in Stand alone or source code to be used elsewhere and reproduce similar behavioir as MATLAB FFT, based on FFTW.
I personally tried to interface FFTW library on C-code and used under MATLAB, I'm not able to make it as fast as MATLAB FFT. I believe Matlab FFT is compiled with better compiler/option than mine and it is quite hard to beat it.
However if you have good grahics card you might try to do FFT with GPU.
  1 个评论
Daigo
Daigo 2022-4-12
Thank you, Bruno! To tell the truth, I'm already using a GPU to speedup the FFT, so I will try to speed up something other than FFT.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 MATLAB Coder 的更多信息

标签

产品


版本

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by