PicoScope 7 Software
Available on Windows, Mac and Linux
Very nice work, Wim! I'll have to try this our soon._Wim_ wrote: ↑Mon Feb 11, 2019 7:57 pmFull source code is available at:
https://github.com/WimHuyghe/FRA-Impedance-Viewer
Very happy you figured this out. I was going to have to dig very deep into the memory banks to help out. It's been a long while since I've P/Invoked a DLL from C#_Wim_ wrote: ↑Tue Feb 26, 2019 7:27 pmHi Hexamer,
I solved the problem of returning the message log. I declared the P/Invoke to return and InPtr, and converted this InPtr using Marshal.PtrToStringUni(ptr) directly instead of calling Marshal.ReadIntPtr(pptr) first as I found in interop examples. Now it works perfectly, and I learned a bit more about using interop
Hi Kai,kaimex wrote: ↑Tue Feb 26, 2019 5:17 pmHi,
I am using a PicoScope 2204A with FRA4PicoScope V. 0.6.2b.RC4, assuming that it is the newest version.
In recent weeks I have used this for impedance measurement on capacitors and inductances in the range 1 Hz to 100 kHz. The setup is apparently the same as the one posted by _Wim_ on Feb 10, 2019, but I only saw this about half an hour ago.
In the course of these measurements I noticed, that there are reproducable irregularities in the impedance versus frequency plots, especially pronounced in the real part of the impedance or e.g. in the dissipation factor (tan(delta)). These irregularities come from errors in the phase measurement of FRA4PicoScope, which vary with frequency. I have provided illustrations of this effect in the form of plots. The postprocessing is presently done with a MatLab-Script but could likewise be done with Octave (requiring possibly minor changes in the graphics).
In the beginning I used FRA4PicoScope with the default settings. Later I found that the phase ripple can be reduced by setting the "Extra settling time" parameter to 25 , in some case also to values as high as 50, 100, 200. Experimenting with the "Minimum cycles parameter" brought further improvement by increasing from the default 16 to 28 or 30. From 32 on the program complains that this is not compatible with a start frequency of 10 Hz. I have not found documentation about these parameters, so this was the result of experimentation.
Sometimes these settings lead to smooth result curves, at other "times" the plots still show bumps that cannot be explained by the DUT-properties. So my impression is, that there is some potential of improvement in the implemented phase calculation method.
The attached example has been produced with a 1 kOhm resistor between inputs A & B, the AWG connected to A and the DUT was a 10 uF capacitor from B to ground. I used 200 Steps/decade for this demonsration ( otherwise only 20 steps/decade).
Regards Kai
A primary reason I chose the generalized Goertel is that it does not have to deal with this limitation of the FFT. It can always fit exactly an integer number of stimulus cycles into the sample window.kaimex wrote: ↑Sat Mar 02, 2019 1:50 pmThe FFT phase result is always depending on how much signal cycles fit into the time intervall. The phase error is zero, when an integer number fits exactly in. It is totally predictable, when non-integer numbers of cycles are in the intervall. But you can put this in different terms: it is possible to calculate phase exactly by using the proper mathematics (and not just the FFT result).