A method of processing a time domain signal stream, comprising: receiving an input signal comprising the time domain signal stream, and creating a first windowed data set and a second windowed data set from the time domain signal stream by applying a windowing function to the time domain signal stream, wherein the first and second windowed data sets are each formed of n sequential samples and the start of the second windowed data set lags the start of the first windowed data set in time; transforming the first windowed data set and the second windowed data set to a complex frequency domain and storing the resulting data as frequency domain data having a fundamental transform resolution; performing complex spectral phase evolution (CSPE) on the frequency domain data whereby a phase rotation measured between the transforms of the first and second windowed data sets is used to estimate, at a resolution greater than the fundamental transform resolution, component frequencies corresponding to oscillator peaks in the first and second windowed data sets; determining a high resolution frequency domain transform of the windowing function, and using the component frequencies estimated in the CSPE to fit said transform of the windowing function to at least one of an amplitude, phase, amplitude modulation and frequency modulation of at least one of said oscillator peaks; using a tracking algorithm to identify at least one tracklet comprising one or more of said peaks that emanate from a single oscillator source; and providing an output signal representing a contribution to the input signal from said single source, using a set of parameters describing each of the one or more oscillator peaks of the at least one tracklet, the set of parameters for each oscillator peak comprising the component frequency at said greater resolution and the at least one of the fitted amplitude, phase, amplitude modulation and phase modulation. receiving an input signal comprising the time domain signal stream, and creating a first windowed data set and a second windowed data set from the time domain signal stream by applying a windowing function to the time domain signal stream, wherein the first and second windowed data sets are each formed of n sequential samples and the start of the second windowed data set lags the start of the first windowed data set in time; transforming the first windowed data set and the second windowed data set to a complex frequency domain and storing the resulting data as frequency domain data having a fundamental transform resolution; performing complex spectral phase evolution (CSPE) on the frequency domain data whereby a phase rotation measured between the transforms of the first and second windowed data sets is used to estimate, at a resolution greater than the fundamental transform resolution, component frequencies corresponding to oscillator peaks in the first and second windowed data sets; determining a high resolution frequency domain transform of the windowing function, and using the component frequencies estimated in the CSPE to fit said transform of the windowing function to at least one of an amplitude, phase, amplitude modulation and frequency modulation of at least one of said oscillator peaks; using a tracking algorithm to identify at least one tracklet comprising one or more of said peaks that emanate from a single oscillator source; and providing an output signal representing a contribution to the input signal from said single source, using a set of parameters describing each of the one or more oscillator peaks of the at least one tracklet, the set of parameters for each oscillator peak comprising the component frequency at said greater resolution and the at least one of the fitted amplitude, phase, amplitude modulation and phase modulation.