Long term average spectrum

version 1.0.0.0 (150 KB) by Christopher Hummersone
Calculate the long-term average spectrum of a signal

943 Downloads

Updated 5 May 2018

From GitHub

View License on GitHub

NOTE: this function is now available from the IoSR Matlab Toolbox as iosr.dsp.ltas.
-------------------------
S = LTAS(X,FS) calculates the long-term average spectrum (LTAS) of signal X, sampled at FS Hz. The spectrum is calculated from the average power spectral density (PSD) obtained from a series of overlapping FFTs; the FFT length is 4096, and the hop size is 2048. The segments of X are Hann-windowed. The average PSD is then Gaussian-smoothed to 1/3-octave resolution.
X can be a vector, matrix, or multidimensional array; LTAS will operate along the first non-signleton dimension, and return the LTAS for each corresponding row/column/etc.

S = LTAS(X,FS,'PARAMETER','VALUE') allows numerous parameters to be specified. These parameters are:-
'dim' : {find(size(X)>1,1,'first')} | scalar
Specifies the dimension of operation (defaults to the first non-singleton dimension).
'graph' : {false} | true
Choose whether to plot a graph of the LTAS.
'hop' : {NFFT/2} | scalar
Specifies the step size through X used to calculate each segment. NFFT is determined by the 'win' parameter.
'noct' : {3} | scalar
Apply 1/noct-octave smoothing to the frequency spectrum. Setting 'noct' to 0 results in no smoothing.
'scaling' : {'none'} | 'max0'
Specifies any scaling to apply to S. By default, no scaling is applied. If scaling is set to 'max0', S will be scaled to have a maximum value of 0.
'units' : {dB} | 'none'
Specifies the output units. By default the PSD is calculated in dB. Otherwise the PSD is returned directly.
'win' : {4096} | scalar | vector
Specifies the window or FFT length NFFT used to calculate the spectrum. If 'win' is a scalar, it specifies the FFT length, and a Hann window is applied to each segment. If 'win' is a vector, NFFT is the length of the vector, and the vector is multiplied with each segment.

Example

% Plot the 1/6th-octave-smoothed LTAS of the Handel example
load handel.mat
figure
ltas(y,Fs,'noct',6,'graph',true);

See also STFT, SMOOTH_SPECTRUM.

Cite As

Christopher Hummersone (2022). Long term average spectrum (https://github.com/IoSR-Surrey/MatlabToolbox), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2015b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Acknowledgements

Inspired by: Short time FFT with octave smooth

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.