BTW,
the single frequency dft using the Goertzel algorithm is approx. twice efficient as the Lock-in Amplifier decoding.
FFT makes only sense for wide band applications.
But you need windowing function for the samples. Odd frequencies of interest to the number of samples per frame/buffer at specific sample rate require windowing regardless of FFT, Goertzel, Lock-in amp or any other decoding algorithm.
https://en.wikipedia.org/wiki/Window_function
It is best to avoid windowing by taking harmonic frequencies (this means, that the frequency fits fully (0.. 2pi) into your sample buffer or is the multiple of it). No windowing is required and you save CPU time. You get very stable decoding output and you don't have to average it.
Just tune your TX to the harmonic frequency if it is a resonant TX system like a VLF design.
I can decode phase angles better than 0.001 degree.
You don't even need phase information. Just decode 3 harmonic frequencies centered at the resonant frequency. And take the magnitude decoding outputs (R = sqrt(I*I + Q*Q) ). These three magnitudes around the resonant frequency delivers enough information for resistive and reactive response.
Aziz
the single frequency dft using the Goertzel algorithm is approx. twice efficient as the Lock-in Amplifier decoding.

But you need windowing function for the samples. Odd frequencies of interest to the number of samples per frame/buffer at specific sample rate require windowing regardless of FFT, Goertzel, Lock-in amp or any other decoding algorithm.
https://en.wikipedia.org/wiki/Window_function
It is best to avoid windowing by taking harmonic frequencies (this means, that the frequency fits fully (0.. 2pi) into your sample buffer or is the multiple of it). No windowing is required and you save CPU time. You get very stable decoding output and you don't have to average it.

Just tune your TX to the harmonic frequency if it is a resonant TX system like a VLF design.
I can decode phase angles better than 0.001 degree.

You don't even need phase information. Just decode 3 harmonic frequencies centered at the resonant frequency. And take the magnitude decoding outputs (R = sqrt(I*I + Q*Q) ). These three magnitudes around the resonant frequency delivers enough information for resistive and reactive response.

Aziz
Comment