MATLAB: Help with pwelch function (windowing)

spectral calculation

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.

Best Answer

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.