¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io
Date

To the RF gurus out there: bandpass filtering S11 harmonic?

 

Hello everyone!

RF newbie and first time poster here. Recently purchased a NanoVNA-H for a specific experiment I'd like to perform. Without going into the unnecessary details of the experiment itself, what I'd like to do is use the nano as a fixed RF frequency gen, probably in the ~900MHz ISM band, to be fed to an amp and transmitted via an antenna. A probe on S21 will then be used for obtaining relative phase angle measurements.

I know the nano generates a square wave output, thus the dominating frequencies are the fundamental and odd order harmonics, along with some even order and spurious frequencies. I also know that the nano will rely on the 5th harmonic of some fundamental in order to reach my desired fixed frequency. Since not only would it be irresponsible to transmit those various other frequencies, but I also think my experiment would be better served by having as spectrally pure signal as is reasonably possible. To avoid any confusion, my intended TX signal chain is as follows:
nanoVNA S11 -> bandpass filter (probably LC?) -> RF amp -> antenna

So my question is this: how sophisticated does the filter realistically need to be? Would a 1st order LC bandpass do, or do I need something else? Are there any common "gotchas" that trip up newbs that I should be aware of?

Thanks!
Mark


Re: Case for the Nano VNA

 

On Mon, Oct 4, 2021 at 10:01 AM, OiBoy The Pissed off Punk wrote:


Mine came from thingiverse. I love it.
Your radios/equipment might look good if cleaned ;)


Re: NanoVNA-F audio

 

Since the transducer/speaker is small with an even smaller opening, you can open the case and place a piece of masking tape over the opening. That will greatly reduce the level.?


On Tue., 5 Oct. 2021 at 3:55 p.m., James Laughter via groups.io<vk8tx@...> wrote: G'day all, I have the F version 1.0.3 up and running.? Is there any way to disable the audio when the VNA is turned on and each time a calibration? button selection (e.g., Open, Short, Load)?? I hope so since the family doesn't like hearing my testing.
Thanks, Jim


Re: Calibration result

 

On 10/5/21 2:13 PM, Roger Need via groups.io wrote:
On Tue, Oct 5, 2021 at 11:19 AM, Jim Lux wrote:


So that really does push one to say "NanoVNA-Saver" should send a "cal
off" command before sweeping, if you're doing cal within NanoVNA-Saver.
As I mentioned earlier the calibration routines in NanoVNA Saver depend on having calibrated input over a wide range from the NanoVNA according to Rune. This may be because the algorithm used in Saver does not do much bounds checking and would not work well with raw data. I have had instances where Saver just aborts at the conclusion of a cal routine and I have to start all over gain. I have never had this problem with the NanoVNA app by OneOflEleven.

Interesting.. maybe it doesn't handle reflection coefficients with mag > 1 or something. That could easily happen if it's uncalibrated, since it's just returning reflection/source, and the gains of the two paths are different.


Since I'm trying to modify -saver to handle two nanovnas, I'll dig into it.


Re: Calibration result

 

On Tue, Oct 5, 2021 at 11:19 AM, Jim Lux wrote:



So that really does push one to say "NanoVNA-Saver" should send a "cal
off" command before sweeping, if you're doing cal within NanoVNA-Saver.
As I mentioned earlier the calibration routines in NanoVNA Saver depend on having calibrated input over a wide range from the NanoVNA according to Rune. This may be because the algorithm used in Saver does not do much bounds checking and would not work well with raw data. I have had instances where Saver just aborts at the conclusion of a cal routine and I have to start all over gain. I have never had this problem with the NanoVNA app by OneOflEleven.

Roger


NanoVNA-F audio

 

G'day all, I have the F version 1.0.3 up and running. Is there any way to disable the audio when the VNA is turned on and each time a calibration button selection (e.g., Open, Short, Load)? I hope so since the family doesn't like hearing my testing.
Thanks, Jim


Re: Calibration result

 

On 10/5/21 11:13 AM, DiSlord wrote:
Difficult implement fast vector interpolation on this CPU:

NanoVNA measure real imag, for convert it to Z angle need:
Z = sqrtf(real*real + imag * imag)
angle = atan(real, imag); // here more difficults, need get correct sign

After interpolation need back to real imag, also need prevent change angle from 360 degree to 0, lot of mathematic for this small device (H and V2 not have hardware FPU, so any float calculations emulated, slow) ?


Linear interpolation work good, but need know this limits

So that really does push one to say "NanoVNA-Saver" should send a "cal off" command before sweeping, if you're doing cal within NanoVNA-Saver.


Re: Case for the Nano VNA

 

I create this case for my 4 inch nanoVNA v2:


it contain stick holder, and box for calibration kit, not big.


Re: Calibration result

 

Thanks DiSlord for explanation, I understand.

Op di 5 okt. 2021 om 20:13 schreef DiSlord <dislordlive@...>:

Difficult implement fast vector interpolation on this CPU:

NanoVNA measure real imag, for convert it to Z angle need:
Z = sqrtf(real*real + imag * imag)
angle = atan(real, imag); // here more difficults, need get correct sign

After interpolation need back to real imag, also need prevent change angle
from 360 degree to 0, lot of mathematic for this small device (H and V2 not
have hardware FPU, so any float calculations emulated, slow) ?


Linear interpolation work good, but need know this limits






Re: Calibration result

 

Difficult implement fast vector interpolation on this CPU:

NanoVNA measure real imag, for convert it to Z angle need:
Z = sqrtf(real*real + imag * imag)
angle = atan(real, imag); // here more difficults, need get correct sign

After interpolation need back to real imag, also need prevent change angle from 360 degree to 0, lot of mathematic for this small device (H and V2 not have hardware FPU, so any float calculations emulated, slow) ?


Linear interpolation work good, but need know this limits


Re: Calibration result

 

Hello DiSlord,

Should the interpolation not be based on radial interpolation: so average
of modulus and average of angle? All things here are complex numbers, so I
think that we should also do a complex interpolation.
Or do I misunderstand?

All the best,

Victor

Op di 5 okt. 2021 om 19:18 schreef DiSlord <dislordlive@...>:

Better do one calibration or on NanoVNA or on CPU side
Calibration data contain noise, this noise added to calibrated value
(increase noise), after send to CPU and use as basic calibration in CPU
side, and additional increase noise after.

About interpolation, NanoVNA use linear interpolation, and if
phase/amplitude rotate fast between points - can give big error (see image):
Exist 2 points, on linear interpolation used line, so result vector - red
point, but correct value - green point. On small phase between 2 points
error small, but on big ... can be wrong
Bigger point count - reduce phase/amplitude shift

V2 - have this problem in range < 30MHz, so need calibrated in 2 ranges
1MHz to 140MHz and 40MHz - max (on less 1 MHz better add additional
calibration)
H/H4 - not critical calibrate in 1 to 1500MHz range (but also have
problems in harmonic change near 300, 900MHz at this point i use
extrapolation, this reduce error, but not remove it)






Re: Calibration result

 

Better do one calibration or on NanoVNA or on CPU side
Calibration data contain noise, this noise added to calibrated value (increase noise), after send to CPU and use as basic calibration in CPU side, and additional increase noise after.

About interpolation, NanoVNA use linear interpolation, and if phase/amplitude rotate fast between points - can give big error (see image):
Exist 2 points, on linear interpolation used line, so result vector - red point, but correct value - green point. On small phase between 2 points error small, but on big ... can be wrong
Bigger point count - reduce phase/amplitude shift

V2 - have this problem in range < 30MHz, so need calibrated in 2 ranges 1MHz to 140MHz and 40MHz - max (on less 1 MHz better add additional calibration)
H/H4 - not critical calibrate in 1 to 1500MHz range (but also have problems in harmonic change near 300, 900MHz at this point i use extrapolation, this reduce error, but not remove it)


Re: Calibration result

 

I was referring to interpolation between points. If you calibrate
with 401 points between 1 and 1.5G on the device and then
calibrate with 2000 points on PC, all those in between values
are interpolated.

I always leave the slot 0 uncalibrated, calibrating on the PC is
superior in any case due to higher number of points, calibration
standard parameters, better algorithms
(Enhanced Response Correction for example), etc.

On Tue, 5 Oct 2021 at 17:52, Jim Lux <jim@...> wrote:

On 10/5/21 8:06 AM, Dragan Milivojevic wrote:
If I understand correctly this will lead to interpolation
by Nano firmware which is not a good idea.
Well, as a substitute for "no calibration" which isn't easy to command,
if the wideband cal is stored in #0, it has the advantage of "power
cycle and you're in a known state"

I'm not sure what the interpolation algorithm does if it's over, say,
1-100 MHz, and it extrapolates for, say, 500 MHz. If it just assumes
"carry 100 MHz cal all the way to the top" that's probably ok. If it's
"continue last linear segment" then you could wind up with a weird
result, if the cal coefficients between 99-100 MHz happened to be
changing rapidly.



On Tue, 5 Oct 2021 at 15:32, Jim Lux <jim@...> wrote:

On 10/4/21 6:07 PM, Roger Need via groups.io wrote:
Rune had a good suggestion where you calibrate slot 0 in the NanoVNA
for
the maximum frequency range you would ever need and then leave it that
way
and use the other slots for other frequency ranges you might want.
That is a good idea.






Re: Calibration result

 

On 10/5/21 8:12 AM, DiSlord wrote:
in my firmware need use:
'scan start stop points mask'

mask - output mask
#define SCAN_MASK_OUT_FREQ (1<<0) // Output freq in Hz
#define SCAN_MASK_OUT_DATA0 (1<<1) // Output complex S11
#define SCAN_MASK_OUT_DATA1 (1<<2) // Output complex S21
#define SCAN_MASK_NO_CALIBRATION (1<<3) // Send no calibrated data

Also in old firmwares you can on/off/reset calibration by command:
Disable calibration
'cal off'
Enable calibration
'cal on'
Reset calibration
'cal reset'
That's useful.


Re: Calibration result

 

On 10/5/21 8:06 AM, Dragan Milivojevic wrote:
If I understand correctly this will lead to interpolation
by Nano firmware which is not a good idea.
Well, as a substitute for "no calibration" which isn't easy to command, if the wideband cal is stored in #0, it has the advantage of "power cycle and you're in a known state"

I'm not sure what the interpolation algorithm does if it's over, say, 1-100 MHz, and it extrapolates for, say, 500 MHz.? If it just assumes "carry 100 MHz cal all the way to the top" that's probably ok.? If it's "continue last linear segment" then you could wind up with a weird result, if the cal coefficients between 99-100 MHz happened to be changing rapidly.



On Tue, 5 Oct 2021 at 15:32, Jim Lux <jim@...> wrote:

On 10/4/21 6:07 PM, Roger Need via groups.io wrote:
Rune had a good suggestion where you calibrate slot 0 in the NanoVNA for
the maximum frequency range you would ever need and then leave it that way
and use the other slots for other frequency ranges you might want.
That is a good idea.


Re: NanoVNA Low-Z capabilities

 

Challenging but doable, you will have to use "Shunt through" method.
For an easy to understand explanation of the problem:

On Tue, 5 Oct 2021 at 04:44, Walter Miller, AJ6T <aj6t@...> wrote:

I need to measure a very low impedance device for a non-ham
application.....probably less than 1 Ohm. Is the NanoVNA able to make
an accurate measurement on such a load in the 14 MHz range?

73, Walt, AJ6T







Re: Calibration result

 

in my firmware need use:
'scan start stop points mask'

mask - output mask
#define SCAN_MASK_OUT_FREQ (1<<0) // Output freq in Hz
#define SCAN_MASK_OUT_DATA0 (1<<1) // Output complex S11
#define SCAN_MASK_OUT_DATA1 (1<<2) // Output complex S21
#define SCAN_MASK_NO_CALIBRATION (1<<3) // Send no calibrated data

Also in old firmwares you can on/off/reset calibration by command:
Disable calibration
'cal off'
Enable calibration
'cal on'
Reset calibration
'cal reset'


Re: Calibration result

 

If I understand correctly this will lead to interpolation
by Nano firmware which is not a good idea.

On Tue, 5 Oct 2021 at 15:32, Jim Lux <jim@...> wrote:

On 10/4/21 6:07 PM, Roger Need via groups.io wrote:
Rune had a good suggestion where you calibrate slot 0 in the NanoVNA for
the maximum frequency range you would ever need and then leave it that way
and use the other slots for other frequency ranges you might want.
That is a good idea.

Then you can calibrate for the desired range you want in NanoVNA Saver
using the number of segments (more data points) and degree of averaging
that you want. Now the two calibrations (hardware and Saver) are
independent and the saved calibrations in NanoVNA can be recalled and used
as long as the nanoVNA is set to slot 0 (power up default).

I tend to use NanoVNA app by OneOfEleven when I want to use the PC.
More features than Saver, easy calibration, more graphs, better scaling
(which is easier to use) and up to five traces at a time.

I just started using NanoVNA-saver because it's in Python, and I'm
familiar with scikit-rf.








Re: Calibration result

 

On 10/4/21 8:55 PM, DiSlord wrote:
NanoVNA firmware can send uncalibrated data, then calibration need use in external software
But by default NanoVNA send calibrated data (if calibration apply on NanoVNA) in this case not need made calibration in external software, and if need calibration in external soft better disable/reset calibration on NanoVNA

You can see this in NanoVNA-App, and select mode None/VNA/App
What commands make the NanoVNA send uncalibrated data?? I was casually looking around, and it seemed to me that you can turn off calibration with the menu, but there's no command that you can send over the wire to make that happen.


Re: NanoVNA Low-Z capabilities

 

On 10/4/21 7:14 PM, Walter Miller, AJ6T wrote:
I need to measure a very low impedance device for a non-ham application.....probably less than 1 Ohm.? Is the NanoVNA able to make an accurate measurement on such a load in the 14 MHz range?

73, Walt, AJ6T
It's all about how accurately can you measure the reflection coefficient: Gamma = (Zload-Z0)/(Zload+Z0)

For Z0 = 50, and Zload = 1

gamma = -49/51 = -0.96078

A 10% change in Zload would be

gamma = -49.1/51.1 = -0.96086

Not a huge difference. The NanoVNA calculates gamma by dividing reflected voltage by incident voltage (as measured by the two internal receivers) = gamma = Vr/Vi

In this case, the incident voltage will be pretty much the same (it's the measured source signal)

The reflected voltage is large (which is a good thing, large SNR), so to get 10% accuracy, you're looking at measuring the difference between -0.96078 and -0.96086 -> about 0.00008

To do that that implies the noise is at least 80dB below the signal.? That's probably "ragged edge" of the nanoVNA's capability.

On the other hand to measure the difference between 1 ohm and two ohms is between -0.96078 and -0.93208, a difference of 0.032, a sort of 30dB SNR need, which is more likely.