Long term average spectrum
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 (2024). Long term average spectrum (https://github.com/IoSR-Surrey/MatlabToolbox), GitHub. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
- MATLAB > Mathematics > Fourier Analysis and Filtering >
- MATLAB > External Language Interfaces > Other languages > Octave >
Tags
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!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
+iosr
+iosr/+acoustics
+iosr/+auditory
+iosr/+bss
+iosr/+dsp
+iosr/+figures
+iosr/+general
+iosr/+statistics
+iosr/+svn
Versions that use the GitHub default branch cannot be downloaded
Version | Published | Release Notes | |
---|---|---|---|
1.0.0.0 | Migrated to GitHub. |
|