Re: Quick compare with HP 8753C...
Roger Henderson
Hi Jeff,
toggle quoted messageShow quoted text
In my 8753 it will default to one of the inbuilt calibration kit definitions. I am not in front of it right now, but from memory it does not (by default) assume the cal kit is perfect. It will use one of the pre-defined HP cal kits by default. I would have to define a cal kit with no characterisation data - i.e. no C0, C1, C2, C3 values, no delay, no loss and with a Zo of 50 ohms for all of the standards. Now it is quite possible of course that you have done this, or that at the frequency range in question the difference is extremely small and is irrelevant. Or it could be that it is just relevant enough to affect the traces you posted, but not enough to be visible on the smith chart at these low freq's. As to the NanoVNA, I think the calibration is still being done on the device and not in the software. The software is not open source so I am not sure how to determine if it is done on the PC, or on the NanoVNA. I found this in the NanoVNA firmware source code: https://github.com/hugen79/NanoVNA-H/blob/master/main.c Code copied below. The code listed is the calculation of the 'adjusted open standard' or s11ao. s11aor is the real component and s11aoi is the imaginary component. You can see this term: *float c = 50e-15;* I think that is a C0 term in Farads. So, if the calibration is being done on the device, then as far as I can tell, the open standard is _not_ assumed to be perfect as it has a capacitance adjustment. How much of an effect that has I don't know and have not checked. So in a perfect test I would take this small C0 adjustment and enter it in the - otherwise assumed perfect - cal kit definition in the 8753. Then they should match. Anyway, that is where I am coming from. Roger static void eterm_calc_es(void) { int i; for (i = 0; i < sweep_points; i++) { // z=1/(jwc*z0) = 1/(2*pi*f*c*z0) Note: normalized with Z0 // s11ao = (z-1)/(z+1) = (1-1/z)/(1+1/z) = (1-jwcz0)/(1+jwcz0) // prepare 1/s11ao for effeiciency *float c = 50e-15;* //float c = 1.707e-12; float z0 = 50; float z = 6.2832 * frequencies[i] * *c ** z0; float sq = 1 + z*z; float s11aor = (1 - z*z) / sq; float s11aoi = 2*z / sq;
On Wed, 21 Aug 2019 at 11:03, Jeff Anderson <jca1955@...> wrote:
Hi Roger,
|
|