01-29-2014 09:14 PM
Hi
I was getting some prob when I wanted to filter an EMG signal. It was a 3rd order Butterworth low pass filter. I set the lower cut off frequency at10Hz. It showed a msg "Error -20023 occurred at Filter->Filter20023.vi Possible reason(s): Analysis: The following conditions must be met: 0 < f_low <= f_high <= fs/2." My original sample frequency was 51.2Hz. I didn't find any option to change the deafult sample frequency.
Could anyone plz help me out? VI is attached here.
Thanks at advance.
Cheers-
Taslim
Solved! Go to Solution.
01-30-2014 07:09 AM
Taslim,
your problem is that you have raw data as array without timing information. Therefore, the dynamic data type does not include timing information as well. So how should the filter know about frequencies?
You have to create waveform data (including a delta t for the sampling) for using filter functions.
Norbert
01-30-2014 07:30 AM
Thanks Norbert. Do you have any VI (example) for creating waveform data? I wanna have a look on this to understand the facts.
Regards-
Taslim
01-30-2014 09:38 AM
@taslim.reza wrote:
Thanks Norbert. Do you have any VI (example) for creating waveform data? I wanna have a look on this to understand the facts.
Just go into the Waveform palette. There is a Build Waveform function there. It looks just like a Bundle By Name. The dt is what sets the data rate. Y is the actual data (your array), and t0 is the start time. You don't need to worry about t0 in this situation though.
02-03-2014 09:39 PM
Thanks crossrulz. It worked nicely.
01-29-2019 06:45 AM
Hi, can you post the vi with the solution presented? Having the same issue and not understanding the method of correcting the problem.
Thank you!
01-29-2019 08:39 AM
Hi, sorry I can't find the VI. It's been long since I last wrote the programme. Maybe you can post your vi and someone might be able to help.
01-29-2019 12:42 PM
I'm just making some assumptions here, but it appears that the problem was they had an array of data points with no time data. The filter has no idea how to work because it doesn't know how far apart in time one data point was taken from the next.
You either have to:
01-29-2019 03:20 PM
Thank you. I was able to work around it. Essentially I used a filter point by point filter instead of trying to program it with a filter that expected an array of data.
That solved what I was trying to do, which was essentially to just filter raw data from pressure sensors.
01-21-2020 12:26 PM - edited 01-21-2020 12:45 PM
This was a simple and elegant solution to the problem, what about if your data acquisition rate was variable (dt not constant)?