Help with pwelch function (windowing)
9 views (last 30 days)
Show older comments
Hello,
I am trying to use the pwelch command to calculate energy spectra of a 2D boundary profile which consists of 61 points. (with uniform spatial distribution). I zero-pad and detrend the data to remove any mean and extend it to 64 points. We take repeated scans of the boundary,and plan to calculate the spectrum as above, and then average the spectrum over the number of scans.
I am confused with respect to the actual workings of the pwelch function - can someone tell me what the difference in the output would be if either of these commands are used? (Spac = spacing between corresponding points.)
[pxx,f1]= pwelch(upadded,64,0,64,(1/spac));
[pxx, f1] = pwelch(upadded,ones(1,64),0,64,(1/spac));
Am I right in saying that the second line implies that there is essentially no windowing being performed? The results don't vary a lot when I use either, and that is leading to some confusion. Any help is appreciated.
0 Comments
Accepted Answer
Wayne King
on 27 Mar 2013
Edited: Wayne King
on 27 Mar 2013
You are essentially correct, but a few points here:
pwelch() is used for overlapped segment averaging. Here you have a data vector of 61 points, so by using a window of 61 points (you actually use a window longer than your input signal, which you shouldn't do. You don't base your window length on the NFFT), you're not getting any overlapped averaging here, so just use periodogram.
[pxx,f] = periodogram(upadded,hamming(length(upadded)),64,1/spac);
[pxx1,f] = periodogram(upadded,[],64,1/spac);
The first periodogram is a modified periodogram using a Hamming window. The second uses a rectangular window.
This is very short data record, so you may want to increase your padding out to 128.
0 Comments
More Answers (1)
See Also
Categories
Find more on Spectral Estimation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!