next up previous contents
Next: Variance of PSD estimates Up: Introduction to power spectral Previous: Power spectral density   Contents

Barlett's method / Welch's method

It turns out that in the mathematical details, the concept of Power Spectral Density is defined as an integral over infinite time duration 6. In the real world, we can only ever measure finite length signals. So, we can't truly measure the PSD of a signal, we can only estimate it from samples of the signal. Much in the same way as can never take the Fourier Transform of a signal - the most we can do is take a Discrete Fourier Transform as an estimate.

The periodogram (taking an FFT and normalizing by bin width) is one way to estimate a PSD. But it turns out it's not a very good one. Not only are all of plots jagged, but look carefully. Alice's plot is no better than Charlie's, even though she took 64 times more data. This is the basic problem with the periodogram. Taking more data points does not smooth out the measurement error.

One step better is Bartlett's method, by which the time history is split into multiple smaller segments, the PSD is computed for each, and then the PSDs are averaged together. This is shown in Figure 24. Here we use a constant segment length, which means that a longer measurement time means means more segments and thus more averaging. Now in this method longer measurement times do make for better results.

Another step better is Welch's method, which adds windowing and overlap to Bartlett's method. These method is shown in figure 24 using a Hamming window with 50% overlap (the default for matlab's pwelch()). As can be seen, there is a big improvement going from the periodogram to Bartlett's method, and Welch's method adds a slight improvement.



Footnotes

...6
technically, the fourier transform of the autocorrelation function

next up previous contents
Next: Variance of PSD estimates Up: Introduction to power spectral Previous: Power spectral density   Contents " . $row['Name'] . " Posted on " . $row['DateTime']; echo "
"; echo $row['Comment']; echo "

"; } echo "
"; ?> Leave a comment on this page:

Name: (optional)
To prove you are not a robot, what is 2+3?

Creative Commons License
This work by Daniel Kiracofe (daniel dot kiracofe at gmail dot com) is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License./' $I