FFT application to Gravity data. Issues with units.

1 view (last 30 days)
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!

Accepted Answer

Star Strider
Star Strider on 1 Nov 2017
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.)

More Answers (0)

Categories

Find more on Fourier Analysis and Filtering in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!