I need to calculated a 3D Fourier transform of a structures I have their [x,y,z] coordinates. I thought of interpolating to a uniform grid of the smallest spacing between the points and use fft, but that turned to be impractical in memory, so fft
can't be used. A sample from my [x,y,z] data is:
xyz=[ 23.1860 44.9710 5.9280
25.5370 44.0090 4.9960
24.5030 44.5890 6.2280
20.0150 46.4080 7.9110
24.9910 44.6760 7.5330
4.8660 44.7120 8.6830
36.7170 33.7440 6.5570
11.1510 40.0590 5.8120
29.2550 34.8750 10.0850
5.4230 48.8200 12.7380
38.2020 35.7590 1.3260 ];
Would appreciate your advise
I've not used this myself, but consider using the NFFT posted on Chemnitz University of Technology Department of Mathematics site. It reduces the O(N^2) requirement to just O(NlogN) as in the FFT case. Also, it now includes Matlab classes to interface with the mex files.
You can download some examples on the site that show to to interact with MATLAB and the faq has instructions on how to use in Windows+MATLAB (if you are).
NFFT requires the initialization of a plan and precomputes several things to increase performance. It looks like it will take some effort to get familiar with but may be very helpful to you.
It is licensed under the GPL.