Main Content

spectrum.welch

Welch spectrum

Syntax

Hs = spectrum.welch
Hs = spectrum.welch(WindowName)
Hs = spectrum.welch(WindowName,SegmentLength)
Hs = spectrum.welch(WindowName,SegmentLength,OverlapPercent)

Description

Note

The use of spectrum.welch is not recommended. Use pwelch instead.

Hs = spectrum.welch returns a default Welch spectrum object, Hs, that defines the parameters for Welch's averaged, modified periodogram spectral estimation method. The object uses these default values.

Property NameDefault ValueDescription

{WindowName,winparam}

Cell array containing WindowName and optional window parameter

'Hamming',

SamplingFlag: symmetric

Cell array containing the window name or 'User Defined' and, if used for the particular window, an optional parameter value. (See window for valid window names and for more information on each window, refer to its reference page.)

You can use set to change the value of the additional parameter or to define the MATLAB® expression and parameters for a user-defined window. (See spectrum for information on using set.)

WindowName

'Hamming',

SamplingFlag: symmetric

Valid windowname options are:

'Bartlett'
'Bartlett-Hann'
'Blackman'
'Blackman-Harris'
'Bohman'
'Chebyshev'
'Flat Top'
'Gaussian'
'Hamming'
'Hann'
'Kaiser'
'Nuttall'
'Parzen'
'Rectangular'
'Triangular'
'Tukey'
'User Defined'

Window names must be enclosed in single quotes, such as spectrum.welch('tukey') or spectrum.welch({'tukey',0.7}).

See window and the corresponding window function page for window parameter information. You can use set to change the value of the additional window parameter or to define the MATLAB expression and parameters for a user-defined window (see spectrum for information on using set).

SegmentLength

64

Length of each of the time-based segments into which the input signal is divided. A modified periodogram is computed on each segment and the average of the periodograms forms the spectral estimate. Choosing the segment length is a compromise between estimate reliability (shorter segments) and frequency resolution (longer segments). A long segment length produces better resolution while a short segment length produces more averages, and therefore a decrease in the variance.

OverlapPercent

50%

Percent overlap between segments

Hs = spectrum.welch(WindowName) returns a spectrum object, Hs, using Welch's method with the specified window and the default values for all other parameters. To specify parameters for a window, use a cell array formatted as spectrum.welch({WindowName,winparam}).

Hs = spectrum.welch(WindowName,SegmentLength) returns a spectrum object, Hs with the specified segment length.

Hs = spectrum.welch(WindowName,SegmentLength,OverlapPercent) returns a spectrum object, Hs with the specified percentage overlap between segments.

Note

See pwelch for more information on the Welch algorithm.

Examples

collapse all

Define a cosine of 200 Hz embedded in white noise.

Fs = 1000;
t = 0:1/Fs:.3;
x = cos(2*pi*t*200)+randn(size(t));

View the spectral content of the signal using the Welch algorithm.

Hs = spectrum.welch;
psd(Hs,x,'Fs',Fs)

Figure contains an axes object. The axes object with title Welch Power Spectral Density Estimate, xlabel Frequency (Hz), ylabel Power/frequency (dB/Hz) contains an object of type line.

Define a cosine of 200 Hz embedded in white noise.

Fs = 1000;
t = 0:1/Fs:0.3;
x = cos(2*pi*t*200)+randn(size(t));

Compute Welch's power spectral density estimate of the signal using a Hann window.

window = 33;
noverlap = 32;
nfft = 4097;

h = spectrum.welch('Hann',window,100*noverlap/window);
hpsd = psd(h,x,'NFFT',nfft,'Fs',Fs);

Visualize the power spectral density expressed in decibels.

Pw = hpsd.Data; 
Fw = hpsd.Frequencies;
plot(Fw,pow2db(Pw))
xlabel('Hz')
ylabel('dB')

Figure contains an axes object. The axes object with xlabel Hz, ylabel dB contains an object of type line.

References

[1] harris, fredric. j. “On the Use of Windows for Harmonic Analysis with the Discrete Fourier Transform.” Proceedings of the IEEE®. Vol. 66 (January 1978).

Version History

Introduced before R2006a

See Also

| |