Skip to main content
12-Amethyst
September 18, 2013
Solved

Dimensional analysis of fast Fourier Transform

  • September 18, 2013
  • 15 replies
  • 7472 views

Hi everybody,

I do not understand the following: I have a signal, an acceleration: the units are of course [m/sec2].

Now the Fourier Transform of a function should have the dimensions of [function]*time.

So the FFT of my signal should have the dimensions of [m/sec]

What I get (I am actually using cfft, but that should not do any difference)

cfft(acceleration) --> units [m/sec2]

why does this happen? it should be [m/s]

I discovered the problem while trying to compute the Power Spectral Density of the acceleration signal (that is what I actually want). It comes out with the wrong units. I also tried to use pspectrum (from Signal Processing), but I also get wrong units.

Attached a small example where I show my problem using a sample sinusoidal signal + noise

Thanks a lot for any advice!

Best answer by Werner_E

You are just facing the difference between the continous and the discrete FT. In the latter the codomain and so the unit does not change.

Possibly just multiply the result cfft vector by the total sampling time?

Rather with the reciproke of the sampling frequency, that is by the total sampling time divided by the numer of samples.

What you get using an FFT is essentially the complex amplitudes (scaled, differently for CFFT or cfft). The abscissa is a dimensionless scale - just indices. To get the corresponding frequency f of a given index i you would have to use f = i * Fs / N, where Fs is the sampling frequency and N the number of sampled Points.

Don't know but may these links can be of help with figureing out the relationship between the continuous and discrete spectra.

http://dsp-book.narod.ru/DSPMW/01.PDF

http://www.gmrt.ncra.tifr.res.in/gmrt_hpage/Users/doc/WEBLF/LFRA/node68.html

15 replies

Werner_E
25-Diamond I
September 18, 2013

The cfft is using the ordinate values only and doesn't know anything about a time-axis. The values are calculated using

cfft1.png

So c must have the same unit as the transformed vector v.

12-Amethyst
September 18, 2013

Hi Werner!

I see what zou mean, you are right, I did not think about that. May I then ask you (and the other forum readers) what should I do in order to approximate the mathematical definition of Fourier transform,

Cattura.JPG

given a function of time fun(t) approximated through two vectors fun(i) and time(i), with time(i)=i*delta?

Possibly just multiply the result cfft vector by the total sampling time?

I am not so familiar with signal processing: my background is more in mechanics. But I do need to compute the Power Spectral Density of an acceleration signal, and I know that it should come out [m2/sec3]

Thanks a lot for any hints,

Best regards

Claudio

Werner_E
Werner_E25-Diamond IAnswer
25-Diamond I
September 18, 2013

You are just facing the difference between the continous and the discrete FT. In the latter the codomain and so the unit does not change.

Possibly just multiply the result cfft vector by the total sampling time?

Rather with the reciproke of the sampling frequency, that is by the total sampling time divided by the numer of samples.

What you get using an FFT is essentially the complex amplitudes (scaled, differently for CFFT or cfft). The abscissa is a dimensionless scale - just indices. To get the corresponding frequency f of a given index i you would have to use f = i * Fs / N, where Fs is the sampling frequency and N the number of sampled Points.

Don't know but may these links can be of help with figureing out the relationship between the continuous and discrete spectra.

http://dsp-book.narod.ru/DSPMW/01.PDF

http://www.gmrt.ncra.tifr.res.in/gmrt_hpage/Users/doc/WEBLF/LFRA/node68.html

23-Emerald I
September 18, 2013

An FFT (or cfft) doesn't change the units. A fourier transform takes a time history (m/sec^2 vs time) and returns a frequency distribution (m/sec^2 vs frequency.) Why do you believe it should multiply by time?

12-Amethyst
September 18, 2013

Hi Fred,

the reason I believe this is that I am trying to obtain a PSD of an acceleration signal and I have to compare it with a given PSD, supplied in m2/sec3 (*). Since the units come out different, I was looking for an explanation.

Beside this, dimensionally speaking, isn't the Fourier Transform of the function f(t) an integral of the function in dt, that is shouldn't it have the dimensions [f(t)]* time ?

Cattura.JPG

(*) see page 24 of this PDF

Thanks a lot for your answer!

23-Emerald I
September 18, 2013

There is a function, "pspectrum," that develops the power spectrum of a signal. Give that a try.