Hi,
One other method seems to be to use lock-in amplifiers
I use lock in amplifiers when i
*generate a signal
* transmit the signal
* process it somehow (maybe a speedmeter with ultrasonic transducers)
* receive the processed signal
...
and want i know the amplitude and the phase delay of received signal referred to the original signal.
The difference to your application is, that i generate the frequency and use it´s phase information for the lock in amplifier.
I recommend DFT instead of lock in.
....
in my eyes it is very similar to DFT, but the DFT uses a sine and a cosine signal for correlation, but the lock in amplifier uses two 90 degree phase shifted square signals.
The benifit of the DFT is that you don´t need (but it is better) to have the original signal, the result is only the original frequency with very good calculatable filter bandwidth.
But it needs high speed ADC and a lot of processing power.
The benifit of the lock in is, that if you build it by hardware it is very simple (only some analog switches) and uncritical low pass filters. But result is the original frequency including
the overtones (according the square wave´s fourier series). It needs simple low frequency ADCs.
both are very precise and helpful instruments.
Klaus