From: Lei on 28 Mar 2010 03:18 I have found that there are a lot of factors that can affect the computation time of the FFT algorithm. One factor I just found is the compiler. Firstly I compiled the source code "get1fft.c" by using the LCC compiler in Matlab, next time, I compiled the source code by using Microsoft Visual C++ 2005. I found the latter one is more efficient. I did a few more tests and found the algorithm proposed by you is better than the build-in "fft" function. Thank you very much for your help. I am new in the Mex-file approach, so I may make a lot of mistakes.
From: Dave Robinson on 28 Mar 2010 09:29 "Lei " <mikej.edu(a)gmail.com> wrote in message <homvru$q4d$1(a)fred.mathworks.com>... > I have found that there are a lot of factors that can affect the computation time of the FFT algorithm. One factor I just found is the compiler. Firstly I compiled the source code "get1fft.c" by using the LCC compiler in Matlab, next time, I compiled the source code by using Microsoft Visual C++ 2005. I found the latter one is more efficient. > > I did a few more tests and found the algorithm proposed by you is better than the build-in "fft" function. Thank you very much for your help. I am new in the Mex-file approach, so I may make a lot of mistakes. Remember to check your compiler options in Visual Studio. From memory I believe you have the option to compile for a minimum size code or for maximum performance. One step up from that, using the Intel compiler, which is Visual Studio compatible, this, as far as I am aware is capable of automatically generating optimized C code that will utilize the SIMD structure buried in your Pentium chip (assuming you are running an Intel based system of course), and can increase the performance of parallelizable(???) code by up to 8 times, even if you only have single core. Hope that helps Regards Dave Robinson
From: Loren Shure on 29 Mar 2010 08:14 In article <hok9bu$dcu$1(a)fred.mathworks.com>, mikej.edu(a)gmail.com says... > The Matlab build-in function "fft" is a highly efficient algorithm for fast implementation of the Fourier transform. However, in some situations I do not need the calculate the full-point FFTs every time. Suppose I only need to calculate a subset of outputs, I have to develop a partial FFT (i.e. fractional FFT, or pruned FFT) algorithm. Actually I developed a partial FFT algorithm in an M-file, but the computation speed is far lower than the build-in "fft". > > I need some tips on how to accelerate the computation speed of the partial FFT algorithm, it should be faster than the "fft" function. For example, if I only need to calculate the first output X(0) of a 1024-point FFT, my partial FFT algorithm should be faster than the standard "fft" algorithm. I need to explore possible code optimization for my partial FFT algorithm. > > Is there someone who can help me cope with this problem? I can be reached at mikej.edu(a)gmail.com > Thanks. > Will the chirp z-transform help you out? http://www.mathworks.com/access/helpdesk/help/toolbox/signal/czt.html -- Loren http://blogs.mathworks.com/loren http://matlabwiki.mathworks.com/MATLAB_FAQ
First
|
Prev
|
Pages: 1 2 3 Prev: Problem with gath geva algorithm Next: geometry profile in pde tool. |