NanoVNA – interpolation – part 3 discussed interpolation and introduced cubic spline interpolation.
NanoVNA-App v1.1.209-OD12 and prior used one of the special monotone types of cubic spline interpolation.
When used in VNA correction, the control points are often complex numbers with real and imaginary in broadly sinusoidal form and approximately 90° out of phase… so behavior on this scenario is important.
Above is a comparison of two types of interpolation on a pure sine wave. The green curve is the underlying sine curve, the orange dots are the samples or control points, the red curve is a linear interpolation, the blue dots are an example monotone cubic spline interpolation (monotone-cubic-spline.js).
There is a small error in both types of interpolation which contributes to measurement noise, and more control points would improve the accuracy / reduce measurement noise.
NanoVNA-App v1.1.209-OD13 has been released, the only change over NanoVNA-App v1.1.209-OD12 is that it uses linear interpolation of the correction data set (instead of the Catmull Rom monotone cubic interpolation).
It should be possible to calibration files saved with …OD12.
Some users have reported online problems with the earlier version, but the reports don't have sufficient information to form a reliable opinion.
Whilst I use natural cubic spline interpolation in a lot of my work, I have a concern in this application that interpolation in the end segments of the correction data set can be quite wrong and it produces flawed plots (though this can be avoided by careful selection of the calibration and measurement frequency ranges and number of steps in both). I am not sure that the monotone cubic spline particularly suit the correction data when the reference plane is at the end of transmission lines or equivalent networks, so I have released a version with linear interpolation activated.
I have not tested either interpolation in unit tests, one hopes they were tested during the original development. A superficial test of the linear interpolation shows the expected artifacts of its operation, so I have some confidence.
Note that while NanoVNA-App v1.1.209-OD13 has an internal calibration facility that is well integrated with recent NanoVNA firmware, it assumes SOL calibration parts are ideal. That is a problem as calibration sets used with common connectors may have delay offset that becomes increasingly significant above say 100MHz, often the offset between S and O is of the order of 5mm or 50ps round trip time.