1

Folks, I am learning how to calculate PSD of a signal with matlab. I know function Periodogram() works good, but I want to use fft method directly. When I want to learn in detail, I find this website is very helpful:

https://www.mathworks.com/help/signal/ug/power-spectral-density-estimates-using-fft.html

However, I have a problem in the first example. I am a little confused about this statement

psdx = (1/(Fs*N)) * abs(xdft).^2;

I don't know why using Fs and N as parameter.

PySerial Killer
  • 428
  • 1
  • 9
  • 26
Sihao Sun
  • 13
  • 4

1 Answers1

0

The (1/(Fs*N)) is a normalization factor to ensure that the numerical algorithm complies with Parseval's Theorem.

Josh Karpel
  • 2,110
  • 2
  • 10
  • 21
  • Now I understand why we need `1/N`. But where is `1/Fs` coming from? – Sihao Sun Sep 06 '17 at 01:37
  • @SihaoSun The `1/Fs` converts from "power __in__ bin" to "power __per__ bin", so that the resulting `psdx` is the power __per frequency interval__ instead of the power __near that frequency__. – Josh Karpel Sep 06 '17 at 01:59
  • I totally understand your point. One more little question about bin, is bin a line or an area in X-Y coordinate axis? – Sihao Sun Sep 06 '17 at 02:42
  • @SihaoSun A "bin" in this context is a frequency interval. Strictly speaking it doesn't correspond to anything in the X-Y coordinate plane, but I suppose you could imagine it as a line on the x-axis if you'd like. – Josh Karpel Sep 06 '17 at 02:44