Solution
Some possible reasons for this error are:
- 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, fhigh
is the upper cutoff frequency and fs
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.
- Trying to run more tasks than permitted per module when using a cDAQ chassis:
Make sure that the number of DAQmx tasks that you are trying to run
meets the number of tasks permitted on the cDAQ chassis you are using. If you are running too many tasks, combine the tasks by creating one task with multiple channels/configurations as shown below.