MATLAB: FFT application to Gravity data. Issues with units.

fftunits

Hello,
My question is about units after applying an fft. I am going from gravity units (g.u. or m/s^2). What will the units be after converting to the wavelength domain and taking an absolute value?
ftgrav = fft(data); absdata = abs(data);
23 coefficients total. Sample interval is 0.2km, therefore 5 samples per km. N/2 = 2.5km^-1
wavenum = 0 : 0.1087 : 2.51 ; plot (wavenum,absdata(1:24));
so wavenumber (km^-1) on the x and unsure about the y.
Any help would be appreciated!

Best Answer

They are the same as the original units, unless you express them as power, since that squares the magnitudes. You need to divide by the length of ‘data’ to normalise the energy in the Fourier transform to get the correct magnitudes:
ftgrav = fft(data)/(length(data);
If you are doing a one-sided Fourier transform, you need to multiply the amplitude by 2 as well. See the documentation on fft (link) for a full description. (I discussed that in some detail in this recent Answer (link), so I won’t repeat it here.)
Related Question