Troubleshooting Error 20023 or Error 20020 from Filter VIs
LabVIEW Development Systems>>LabVIEW Full Development System
Primary Software Version:
Primary Software Fixed Version:
LabVIEW Development Systems>>LabVIEW Base Package, LabVIEW Development Systems>>LabVIEW Professional Development System
A filter VI in my program is returning one of the following errors:
Error 20023: Analysis:
The following conditions must be met: 0 < f_low <= f_high <= fs/2.
Error 20020: Analysis: The cut-off frequency, fc, must meet: 0 <= fc <= fs/2.
Why am I getting this error?
Two of the possible reasons for this error are:
Related Links: Product Reference: NI High-Speed Digitizers Help: Butterworth FiltersKnowledgeBase 2RE8M35A: Where Is the Half-Power Point for a Bessel and Butterworth Filter?
The cutoff frequencies are invalid.
When using any type of filter (highpass, lowpass, bandpass, bandstop), the upper and lower cutoff frequencies must meet the following criteria:
0 < flow <= fhigh <= fs/2
Where flow is the lower cutoff frequency, f
high is the upper cutoff frequency and f
s is the sampling frequency.
Notice that this means the lower frequency limit cannot equal zero. In addition the upper frequency limit cannot be greater than half the waveform sampling rate.
- An array of data is being passed to the filter without waveform information:
If you wire an array into the input, most filter VIs will automatically place a Convert to Dynamic Data Express VI between the array and the input. The new dynamic data will not have time data. The filter needs to know dt (the time between samples in seconds). You can configure an array into a waveform by adding a Build Waveform VI to your block diagram as shown below. You can then specify dt, and connect the resulting waveform to the filter VI.
Also, you should check the source of your data. If you are getting data from a VI and the output is an array, sometimes you can change the type of output to waveform in the context menu (right-click).
- An array of waveforms is being passed into the filter:
If you wire in an array of waveforms into a single filter, the filter will not be able to display a filtered signal for each of the signals, thus producing an error. If you want to filter multiple signals, index your array of signals so that you pass each signal into their own filter.