Units of FFT in matlab

  • Thread starter Mindscrape
  • Start date
  • #1
1,860
0
I was browsing another topic, and I suddenly remembered that I've never quite figured out what units matlab's fft returns. I've used the fft before and found where I had signal noise by taking the power density of the fourier coefficients, which is all I really wanted to use the fft for in the first place. Still, I'm curious what would need to be done to get a useful measurement like volts/sqrt(Hz), or volts^2/Hz. The units after the FFT should still be in volts, so would all I need to do is divide by frequency, and take the complex conjugate or complex conjugate root? Anyone done this before, if so mind posting your code for me to look at? My initial search on the internet, even through the mathworks site, still reveals nothing very concrete.
 

Answers and Replies

  • #2
245
0
The units of FFT will be in volts only as you mentioned but i dont know the procedure to get it in terms of other units.
 
  • #3
79
0
The answer from matlab will be complex, you'll get the transfer function H(w).

To get amplitude (volt) you need to take the absolute value of the result.

abs(fft(x));

Acctually you will get (volt/radian velocity)
 
  • #4
1,860
0
Right, but I'm looking for a concrete example of taking the FFT coefficients from matlab, and producing Volts/sqrt(Hz). I think my original inclination of taking zz*, dividing by frequency, and sqrt must be very close.
 
  • #5
79
0
Sorry, it seems that matlab will return in frequency domain and not radial velocity.

y=fft(x);
z=abs(y); //Now you have V/Hz
z=z*sqrt(freq) // Now you have V/sqrt(Hz) since (freq/sqrt(freq) = sqrt(freq))
 
  • #6
vela
Staff Emeritus
Science Advisor
Homework Helper
Education Advisor
15,165
1,764
As you noted, the units for the FFT is the same as in the time domain, so if it's volts, you need to square the modulus to get a quantity proportional to the power. If I understand correctly what you're asking for, you then want to divide by [itex]\Delta\omega[/itex], the spacing of bins in the frequency domain. But [itex]\Delta\omega[/itex] is a constant, so simply squaring the FFT gives you what you want, up to an overall constant.
 
  • #7
1,860
0
Jaynte, you may be right, I'll give it a try sometime. I just have to get my hands on a spectrum analyzer, save the data, and compare. Or take somebody's time data that they have converted into V/sqrt(Hz) by some method, and see what matlab gives, or probably actually what octave gives.
 

Related Threads on Units of FFT in matlab

  • Last Post
Replies
1
Views
5K
  • Last Post
Replies
6
Views
4K
  • Last Post
Replies
9
Views
2K
  • Last Post
Replies
0
Views
3K
Replies
3
Views
773
  • Last Post
Replies
4
Views
1K
  • Last Post
Replies
6
Views
2K
Replies
3
Views
6K
Replies
2
Views
914
  • Last Post
Replies
1
Views
3K
Top