pwelch

Compute power spectral density.

Syntax

Pxx=pwelch(x)

Pxx=pwelch(x,window)

Pxx=pwelch(x,window,overlap)

Pxx=pwelch(x,window,overlap,nfft)

Pxx=pwelch(x,window,overlap,nfft,fs)

Pxx=pwelch(x,window,overlap,nfft,fs,range)

[Pxx,freq]=pwelch(...)

Inputs

x
The signal.
Type: double
Dimension: vector
window
The window size, or the window vector.
Type: double | integer
Dimension: scalar | vector
overlap
The number of overlapping points in adjacent windows.
Type: integer
Dimension: scalar
nfft
The size of the fft.
Type: integer
Dimension: scalar
fs
The sampling frequency.
Type: double
Dimension: scalar
range
The spectrum type: 'onesided' or 'twosided'.
Type: string

Outputs

Pxx
The power spectral density.
Type: vector
freq
The vector of frequencies corresponding to the density values.
Type: vector

Example

n = 1000;                           
fs = 1125;                             
ts = 1/fs;              
t = [0:1:(n-1)]*ts;
f1 = 24;
f2 = 56;
omega1 = 2 * pi * f1;
omega2 = 2 * pi * f2;
signal = 3 + 5 * cos(omega1 * t) + 7 * cos(omega2 * t);
window = hann(250,'periodic');
overlap = 125;
fftsize = 250;
range = 'onesided';
[Pxx,freq]=pwelch(signal,window,overlap,fftsize,fs,range);
f = freq([1, 2, 3, 4, 5, 13, 14, 15])'
p = Pxx([1, 2, 3, 4, 5, 13, 14, 15])'
f = [Matrix] 1 x 8
0  4  20  24  28  52  56  60
p = [Matrix] 1 x 8
1.50000  0.75000  0.52083  2.08333  0.52083  1.02083  4.08333  1.02083

Comments

It is often recommended to remove the signal mean prior to calling pwelch. The function does not remove the mean automatically.

The optional arguments can be defaulted using []. The defaults are as follows.

window: a Hamming window with the largest length that produces 8 data segments.

overlap: one half of the window length.

nfft: the window length. A larger value will pad zeros to each block of windowed data.

fs: 1.0 Hz.

range: 'onesided'.