spectral decomposition