-
Notifications
You must be signed in to change notification settings - Fork 125
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unexplained behaviour of calibration correction around high concentration of poles and zeros #38
Comments
There is some "simplification" in si5351 frequency setup code, it leads to wrong frequency set at some frequency boundaries. Like 300 MHz, 600 MHz, etc. And your issue looks like that, but the errors are propagated due to multi-sweep in the NanoVNA-Saver. It's hard to fix, because such fix requires complicated logic. But you can avoid it. Just don't use sweep through these frequency boundaries, if you can't, then setup a small frequency step, it will minimize amount of points with a wrong frequency. |
Its problem come from set si5351 power(in auto mode, power = -1), try set power 0 or 2 and calibrate on all diapasone, and check again. |
Data on intepolation mode - use linear function see cal_interpolate(int s) |
Problem come from here:
Linear interpolation in most cases work good, but then change calibration from one harmonic to other:
Its non correct. Used last value from left or first from right (not do interpolation), need made extrapolate use 2 point before or 2 after |
Hi Hugen.
I'm working about the odd harmonics loss of dynamic when a LPF filter let pass signal in the fundamental band below 300MHz and cuts in the odd harmonics bands above 300MHz.
I already designed a 5th order elliptic HP filter and modified one nanoVNA to clock the MPU and the DSP with a separate 8MHz oscillator as per your nanoVNA-H4 model, and used the CLK2 output of the Si5351A to drive the HP filter to get a cleaner signal with the fundamentals below the harmonics level when the DUT is checked above the 300MHz limit.
I modified the firmware to get the test signal that drives the DUT directly from CLK1 for frequencies below 300MHz and to get the test signal that drives the DUT from CLK2 passed through the filter for frequencies above.
Now the dynamic improved a lot making the device useful for duplexer testing/tuning.
Doing that I experienced an unexplained (for me) behavior of the calibration function of the S11 plot in the range between 150...350MHz.
Since for the moment I simply paralleled the filtered CLK2 output to CLK1 output, this last is influenced by the HP filter poles and zeros in that range (it's an elliptic filter and in the stop band it has abrupt changes in impedance there). I already planned to put an RF switch to remove this loading issue, but I would point out this issue anyways because it seems that the interpolated correction works bad.
This is the uncorrected plot of that range:
![S11uncorrected](https://user-images.githubusercontent.com/57619411/76571378-a51aa100-64b7-11ea-855d-3dafe9379a92.png)
![S11corrected](https://user-images.githubusercontent.com/57619411/76571376-a3e97400-64b7-11ea-8f08-ebcc0d15e8f2.png)
While this is the plot of the same range when corrected by the interpolated calibration parameters:
I did the 10kHz... 1.5GHz full span calibration and the marker in the plot are placed in the point of that full band calibration.
My question is:
how could the calibrated plot showing those almost parabolic interpolation between two consecutive calibration points?
I also can't explain why that red marker is so high, since this is a calibration point computed exactly with the very same dummy load used for the plot. Anyways, how could the S11 between two successive calibration points at lower RL have an higher RL?
This happens only when the DUT is well matched, in case of S11 close to 0dB this issue disappear little by little as the 0dB line is approached.
Do you have any idea about this?
Have a great day.
Massimo - IK1IZA
The text was updated successfully, but these errors were encountered: