Products > Test Equipment
Capacitive & Inductive Impedance Plots with SDS2104X Plus Bode Function
mawyatt:
Those are beautiful plots indeed, well done :clap:
Haven't looked at the Python code yet, hopefully get too that later.
Also, thanks for the offer on the scope adapter and will take you up on the offer ;D
With your nice plots and doing so in python with the raw Bode data, gotta think someone at Siglent is watching and thinking about incorporating this into a future firmware Upgrade, or additional "Option" ::)
Best,
TopQuark:
What I realised while programming the Python script, which should have been obvious, is you can reconstruct the output of the transfer function H(s) as a function of the sweep frequency.
The definition of the Bode plot (from wiki) is as follows,
Magnitude plot y0(s) = 20log10(|H(s)|)
Phase plot φ(s) = Arg(H(s))
Given the following identity: z = |z|ei Arg(z)
You can represent H(s) as : |H|ei Arg(H)
Substituting y0(s) and φ(s) into the formula above, you yield: H(s) = 10y0(s)/20 * eiφ(s)
So in essence, you can get the output of the transfer function H(s) of the plant/DUT you are measuring using the data from the bode plot measurements. This is how my improved Python script works. You might even be able to use something like https://www.mathworks.com/help/ident/ref/systemidentification-app.html from Matlab to build a transfer function of whatever black box circuit you are measuring just from the bode data.
This should have been plainly obvious when I started using bode plot had I read up on the actual mathematical definitions, but I am just starting to realise the true potential of the bode plot function.
mawyatt:
The subtly here is that H(s) for setup and which Vo/Vi that the Bode produces, is not exactly Z of the DUT.
DUT Z is Vo/I, where I is computed as (Vi-Vo)/R. So Z(s) = Vo/I or R(Vo/(Vi-Vo)), or R(Vo/Vi)/(1-Vo/Vi)
If H(s) is the Bode result, or Vo/Vi (Mag & Phase), then
Z(s) = R*H(s)/(1-H(s))
If H(s) <<1 then
Z(s) ~ R*H(s)
This basically means that |Z| << R, or Vo << Vi
Anyway, the plots you've produced with your superb Python Routine are very beneficial and helpful, and show how a capacitor follows the classic -20dB/dec as frequency increases, and become inductive with ~20dB/dec past SRF.
One very interesting concept would be to implement a "Transimpedance Amp" input to sense the DUT current and forced the input node to virtual ground. The output of the Transimpedance Amp is scaled as Rt, thus the output is I*Rt, where I is the DUT current. If this becomes Ch2 on the Bode Function while Ch1 is now the Voltage at the DUT (the signal source can still provide a source resistance R, but not necessary as you'll see).
The Bode Function Ch2/Ch1 now becomes Vo/Vt where Vt is the Transimpedance output or I*Rt, and Vo is the voltage at the +end of DUT (-end feeds Transimpedance Amp input).
So Bode = Vo/Vt = Vo/(I*Rt), or Z/Rt irrespective of the source impedance R.
This is exact without any requirements on Z mentioned above. Of course this assumes an ideal Transimpedance Amp, but with "Possible" some of the Transimpedance Amp undesirable characteristics calibrated out, then likely a good result for Z, which yields a good C and the other parameters without as much restrictions. Now we are venturing into the more quality Impedance Meter space ;D
Anyway, we've been seriously "Thinking" about this (some simulations underway), maybe others might be interested ::)
BTW agree with your request on the SDS2104X HD thread for the Bode Function to be Enabled, have Data available, and Controlled by SCPI remote commands. This would make your Python Routine capable of directly controlling, collecting data, and displaying the Bode Plots along with the other useful plots you've shown.
https://www.eevblog.com/forum/testgear/siglent-sds2000x-hd-missing-features-and-bugs/
Edit: Trying a differential measurement for Ch1 Bode Plot, will report later. Initial test looks promising!!
Best,
graybeard:
Three years ago I uploaded a video showing how to directly measure impedance using the using the bode plot function. I discuss the limitation of the measurements due to the scope, function generator, and fixture parasitics. You can get the example files and view graphs here.
Chris
mawyatt:
If Vo is the voltage across the DUT and Vi is the voltage from the AWG source.
Impedance of DUT Z = Vo/I, where I is the DUT thru current.
I = (Vi-Vo)/R, where R is the sense resistor
Z = Vo/[(Vi-Vo)/R] = R[Vo/( Vi-Vo)]
The Bode Plot is Scope Ch2/Ch1, so Ch1 is Vi-Vo and Ch2 is Vo.
Using a Differential Amplifier Sensing Vi-Vo for Ch1 and Vo on Ch2 provides the Bode Plot of the DUT Z Impedance scaled by sense resistor R.
We used a Micsig DP1007 100MHz Differential Probe for Ch1 and Siglent PP215 200MHz Probe for Ch2. Using a sensing R of 1K (999.361) and a 0.22uF (220.060nF) Mylar Film DUT. Here's plot of the Bode result, note C is computed as 218nF at 1KHz. Will add additional DUTs Plots later.
Best,
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version