02-05-2022 03:47 AM
I am doing 4 wire resistance measurements on conductive samples (20mOhm), which are relatively noisy if I use the standard settings. I am trying to use the filter function in my labview code, but for some reason it does not improve my noise level. I am sampling the measurements with a while loop timed at 500ms with the read.vi, so it should give me plenty of time to average a lot of readings and reduce my noise?
Is there something i am missing about the filter function in labview?
On a side note, if I use the local control of the instrument and configure the filter on the front panel, I can greatly improve my signal while keeping a sampling rate faster than 500ms.
I attach a screen shot of my code, any help would be much appreciated!
02-14-2022 08:41 AM
Hi Clenic
02-14-2022 09:13 AM - edited 02-14-2022 09:16 AM
@Maneh wrote:
Hi Clenic
- Have you tried decreasing the loop time? If not, I'll suggest changing it to 200ms
As a matter of fact. The read will wait for the next available sample anyway so, the timing function needs to be deleted entirely.
Then the loop will operate at the fastest transfer speed it can for each single filtered measurement. BUT! that still requires time to send and receive the requests 1 point at a time. An optimal approach would be to pre-configure the SMU to take n filtered measurements (saving them to the on-board buffer) and requesting the entire record.
Keithley is not likely to respond in a timely manner. And, if they did they might just say that everything I just said is clearly stated in the device manual.
02-19-2022 02:23 AM
Thank you both for your answers. I have been slow to respond, but in the meantimes I have done some additionnal testing.
About the sample rate, I removed the timer of the while loop, and it seems that the fastest rate at which the read.vi can take measurements is around 120 ms. It is slower that what I can achieve, but I read in another thread that this is normal.
Anyway, about the filter, it turns out that if I use the repeating function I do get an improvement, but it is very, very slow. Basically, if I set the filter count to 5 it multiply the rate by five.
I would like to use the moving function of the filter, because the manual says it is faster, but that is the one that doesn't change anything, so I am wondering if the moving filter is compatible with the read.vi? of should I make a custom read.vi with modified lower level function?
For the multiple point measurements suggestion, I also tried, but it doesn't seems to be improved by the moving filter either. And, it is not faster either. I don't know much about configuring the trigger manually etc, so I probably did it wrong though..
02-19-2022 05:55 AM - edited 02-19-2022 06:09 AM
Thank you for summarizing your hard work!
I'll try to shed a little light on what you are seeing.
Your configuration is a 4wire resistance measurement at very high scale. Simply put you source a current, measure Voltage and apply Ohm's law R=E/I. So, E is Properional to I. Let's say you want a resolution of R^-3. Your range is 10mOhms. To get a delta E of 10ųOhms scaled up to something that the ADC can see as a LSB you need a goodly current source.
Going back to Mr. Watt we recall P=I^2R so the power in the measurement circuit is directly proportional to the square of the current. Dang IT, that means the power has to be transfered out as HEAT and Tjc (the thermal transfer) of the system has to be satisfied before the measurement is stable since resistance of most materials is directly proportional to temperature ( except NTC thermistors by definition)
You didn't do anything wrong! Speed is inversely proportional to resistance measurement minimum resolution.
The only way to get around Tjc is to speed up Time itself! Don't do that, I suspect it would have negative consequences for the universe. Then you are going to have to explain why you went and messed up 6 whole hard days of His work to Him! Gen2:1-2.