File Exchange

image thumbnail

Long term average spectrum

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

3 Downloads

Updated 05 May 2018

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 (2020). Long term average spectrum (https://www.github.com/IoSR-Surrey/MatlabToolbox), GitHub. Retrieved .

Comments and Ratings (1)

Dongwoon Yi

Updates

1.0.0.0

Migrated to GitHub.

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

Inspired by: Short time FFT with octave smooth