[time-nuts] Using a nanoVNA as DMTD, simulation only

Erik Kaashoek erik at kaashoek.com
Mon Sep 19 15:47:54 UTC 2022


After reading about DMTD and how the VNWA is doing frequency measurements I
was curious if it would be possible to use a nanoVNA to create a DMTD by
only changing the SW.
The nanoVNA has two input channels (S11 and S21) and a reference channel.
By disabling the output of the reference LO in SW the S11 and S21 channels
become two independent inputs. One via the reflection bridge (S11) into a
mixer and one directly into another mixer. Both mixers also have the
offset_LO as input which should be tuned so both mixers output close to the
IF frequency.
The output of the mixers is converted using a 16bit stereo ADC running up
to 96kHz. The 16 bit samples streams are converted to phase and amplitude
by doing a SW I/Q downmix to DC.
The number of samples to combine into one phase/amplitude measurement is
defined in the SW.
As I did not want to put a lot of effort into creating embedded SW I
created a one input channel simulation in Octave of the processing after AD
conversion.
The simulation uses a 1kHz input signal with added noise and a 48kHz sample
rate and combines 1k samples into one angle measurement. All sample data,
I/Q data, cosine and sine tables are rounded to 16bits as used in the
nanoVNA. The 48 angle measurements per second limit the frequency
difference between the input signals and the tuned frequency because if the
frequency difference is too high the unwrapping of the angle will fail.
After unwrapping the 48 angle measurements per second a linear regression
uses the angle measurements to calculate the angular speed per second,
dividing this speed by 2*pi gives the frequency deviation of the input
signal from the reference signal.
It would also be possible to output the 48 angle measurements per second
(or any subsampled number) as raw phase difference measurements and do the
rest of the processing in something like Timelab
Using 48kHz sample rate and 16 bit accuracy of the data and an added noise
level of 1e-5 (is this -100dBc/Hz (?)) the minimum observable delta
frequency in the simulation is about 1e-6Hz. Any lower delta frequency
falls below the 16 bit numerical resolution. A higher noise level, such as
1e-4,  hides the 1e-6Hz difference.
To make a complete DMTD one would have to do this angular measurement for
both channels and subtract the measured angle.
It is assumed the internal reference cancels out in a dual channel setup
comparing the two inputs so the simulation assumes a perfect internal
reference.
Some questions.
1: The measurement of the angle (phase) is actually a combination of 1k
samples over a 1/48 second period. Is this a valid way to measure the phase
of an input signal? A frequency offset will cause phase rotation over the
measurement period. Is this causing systematic errors?
2: With a 10MHz input signal and a minimum observable frequency difference
of 1e-6Hz over a one second period the frequency resolution with a "gate
time" of one second seems to be in the order 1e-13. Could this be correct?
Is the noise level realistic? Would this translate into a phase resolution
of below 1 ps or am I making a big mistake?
Erik.




More information about the Time-nuts_lists.febo.com mailing list