02-24-2018 07:48 PM
Could someone help me fix this error 20023 that appears when i run the attached VI. ifve tried everything but i cant get rid of it. Thanks
Solved! Go to Solution.
02-24-2018 09:45 PM
Your filter frequency must be between 0 and the Nyquist Frequency. (1/2 the acquistion rate.) What is your acquisition rate?
I think the problem is that your signal processing path starts out as just an array of data that gets converted into the Dynamic Data Type. Since that array wire contains no timing information, it assumes your acquisition rate is 1 Hz. Thus a filter value greater than 1/2 Hz is going to give your error.
What functions are you using to get your data? (Those subVI's weren't included in your post.)
02-25-2018 12:00 AM
Thanks for responding. im using arduino INIT and arduino contnuous acquisition VI and a pulse sensor. Acqusition speed was 50. I tried to fix it but i dont know how to change the frequeancy. I tried a build waveform but the error kept popping up
02-25-2018 10:50 AM
You would build it into a waveform. If that didn't work for you, show your code so we can figure out why it didn't
02-25-2018 10:51 AM
When you build the waveform, there are three components: Y, t0, and dt.
You'd set the sampling rate with dt. What did you set that to? If 1, you've got 1Hz. If 0.1, you've got 10Hz. You'll want to set that appropriately. It looks like 50Hz, so 0.02. Then, you can use a filter setting of 25Hz or less.
02-25-2018 10:58 AM
02-25-2018 11:05 AM
02-25-2018 11:09 AM
@derek.s wrote:
I tried a build waveform but the error kept popping up
Building a waveform should work just fine as long as you set dt correct. Can you show us what you did? Alternatively you could do all the filtering unit-less and define all relevant frequencies relative to 1Hz.
Also your peak detection seems completely off. First of all, get rid of the local variable. The indicator named "scalar" just seems a dummy to store data via local variables. Since the local variable most likely gets read before the terminal receives data, you have a race condition. Just wire your calculation to the correct data source.
And no, the "# found" is not an array that contains any information about frequency, and a double dynamic data conversion is also certainly not the right way to get anything out of it.
What does the signal represent and what are you trying to get out of it. I am sure there are much better ways overall. You probably don't even need express VIs.
02-25-2018 11:14 AM
Please post actual VI's rather than hard to see pictures of your monitor.
Your first filter is set for 3Hz. That means your first picture where you set it to dt=0.3 will give an error (since bandwith is just over 3 Hz, half of that is too small for a 3Hz filter.) The second picture would work because dt=0.1 or 10 Hz. Half is 5Hz. and 3 Hz is less than that.
But your second filter is 40 Hz. That mean you have to acquire at a rate of more than 80 Hz (dt < .0125 secs) in order to not have an error for that one.
02-25-2018 11:19 AM
im trying to read a signal from a pulse sensor and display it on a Waveform Chart and Display the BPM. Im still an armature at LabVIEW so i maynot know better ways to do it yet