I am doing phase measurments by transmitting and receiving tones (100 kHz and 16 kHz simultaneously). I am transmitting the tones and receiving them, applying Blackman Harris window and doing FFT for phase measurements. I feel the Blackman Harris window is not optimal for a signal that has only 2 tones but don't know which windowing function is better for phase measurement for such a signal. Any Ideas?

  • $\begingroup$ Are you restricted to using the FFT for determining what would be best for measuring rhe phase of the two tones? $\endgroup$ Apr 20, 2021 at 14:50

1 Answer 1


Using an FFT to measure phase for just two tones results in a lot more processing that doing the following alternate approach that can be either streamed or processed in blocks. No windowing is needed:

Apply the received signal as the input to two multipliers. Apply a normalized local copy of one tone as the second input to one of the multipliers and a normalized local copy of the other tone to the other. The low pass filter of each output will be an estimate of the phase given by$A\cos(\theta)$.

For full 360 degree phase resolution, use a complex local tone and two complex multipliers with two outputs (I, Q) with the phase determined using atan2(Q, I). (This is essentially the operation in two bins of the DFT).

  • $\begingroup$ I considered the complex multiplier approach, but the allowed error is very low, less then 0.01 degrees. $\endgroup$
    – Kurtul
    Apr 20, 2021 at 18:03
  • $\begingroup$ There is no loss in accuracy with complex multiplier and atan2, and you can average the output for best processing gain assuming stationary input (and weight the average by input envelope if varying to be an optimum matched filter in white noise conditions) $\endgroup$ Apr 20, 2021 at 18:07
  • $\begingroup$ Your error will be limited by actual noise including your own quantization noise if fixed point. $\endgroup$ Apr 20, 2021 at 18:08
  • $\begingroup$ @Kurtul Also note due to small angle approximation ($\sin(\theta) \approx \theta$) the SNR required to have less than 0.01 degree rms accuracy is (convert degrees to radians and take -20 log of that) : $-20 \log10(0.01 (2\pi/360))$ = 75 dB. From this you can specify your sampling rate, quantization, filtering requirements etc. $\endgroup$ Apr 21, 2021 at 2:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.