Given a signal that consists of three 1.xxx kHz signals added together (where xxx is never more than 0.01). Each of the three 1kHz signals is 60 degrees out of phase (first is offset by 0 degrees, next is offset by 120 degrees, and the third is offset by 180 degrees), What's the best way to detect the fact that there are three "instances" of very similar frequency present, and the phase offset of each?
I tried using FFT but it doesn't seem to have a notion of phase. I searched the internet a bit for FFT and phase but can't find any way to use FFT to extract multiple instances of a frequency separated only by phase.
I think in order to use FFT in the traditional sense, I would need to have an extreme number of bins (1000*sample_rate?).
I built a gnuradio flow graph to experiment with the concept.
The resulting FFT shows peaks at 0kHz and 1kHz. I can't think of a way to extract the original three signals out of the original.
My use case deals with input signals that differ in frequency by as little as 0.001Hz. Detecting the presence of the component signals and identifying their precise frequency is what I need to do. Their frequencies vary ever so slightly over time.