Real-Time Measurement and Control

cancel
Showing results for 
Search instead for 
Did you mean: 

Filter settings in the 9237 and applying a software filter

Hi, I'm trying to use the 9237 strain gauge module to read data from 4 strain-gauge based pressure sensors. I have two problems regarding filtering:

 

1) The minimum sampling rate for the 9237 is 1612 Hz, and the manual indicates that the module selects the lowpass and highpass filter settings according to the sampling rate selected. How can I find out what the actual cutoff frequency being applied by the 9237 hardware/software is? I cannot find it in the properties node.

 

2) I have tried applying a software filter via the signalexpress vi "filter". The settings I selected were : lowpass, cut-off=100Hz, and 4th order Butterworth. With these settings (and many other settings I tried) the vi stops with the error:  The following conditions must be met:  0 < f_low <= f_high <= fs/2.  I don't understand this as (a) I have not set an f_high and  (b) with a sampling freqency of 1612Hz, the minimum fs that the 9237 should be setting to satisfy Nyquist criterion should be 1612/2 = 806 Hz.

 

Can anyone help on this?

 

Thanks,

Claire. 

0 Kudos
Message 1 of 7
(6,948 Views)

Hello CFJ,

1) For your first question, the filter of the NI 9237 is for anti-aliasing, and is not a simple lowpass filter. On page 18 of the NI 9237 Operating Instructions and Specifications there is a graph that shows the typical passband flatness of the NI 9237. Eyeballing the graph is looks like the typical frequency at which you are going to see rapid attenuation is at about 45% of the sampling rate. So, at 1613 Hz, frequencies above about 726 Hz would typically by filtered out.

2) As far as the filter throwing this error, I tried to recreate it and was unsuccessful. What type of data are you passing into the Express VI? If it isn't a waveform, try changing your DAQmx Read to Waveform rather than double. If this isn't the case, could you post a small piece of example code that reproduces this error for further troubleshooting.

Message Edited by Support on 03-29-2010 09:39 AM

Regards,
Dan King

0 Kudos
Message 2 of 7
(6,931 Views)

Hi,

 

I have a related question to this thread.

 

I am using a NI 6363 AI module on my PXIe-RT system and I would like to filter noise on some of the signals from this module. I am planning to use "Continuous Sampling" with a rate of 1 kHz in my AI task, and my VI reads the data every 100 ms (giving approximately 10 readings every time I read, please correct me if I am wrong).

 

I would like to use a simple Butterworth filter to get rid of the high frequency noise (I don't estimate needing anything more than 1 Hz). My question is, what settings should I use on the Butterworth filter VI. In specific, what should be the "Sampling Frequency" set at?

 

Would be great if someone could comment on this.

 

Thanks

Atul

0 Kudos
Message 3 of 7
(6,306 Views)

Hi neophyte_ab-

 

     It would be best to post this on a new thread, since you are using different hardware from the original post and the question has to do with software.

 

     The best thing to do is to use the same frequency in the Butterworth Filter.vi as you are using in your hardware. 

 

     Have a great day!

Gary P.
Applications Engineer
National Instruments
0 Kudos
Message 4 of 7
(6,284 Views)

Thanks

0 Kudos
Message 5 of 7
(6,281 Views)

neophyte_ab ha scritto:
Hi, I'm trying to use the NI 9237 strain gauge module (setting to strain configuration half bridge II )to read data from 2 strain-gauge.
I would like to filter my signal from the noise and I really don't understand if the NI 9237 has some filters inside that I can regulate with labVIEW.
So I try to use Butterworth Filter (lowpass) but i have different problems:
if I specificate the number of samples for channel of the DAQmx read,I acquire a sampled signal
if I don't specificate this number,the software decides the best number of samples (setting to -1) but I don't read the value of the signal because it return to zero.
Can anyone help me?



Thanks




0 Kudos
Message 6 of 7
(5,970 Views)

Hi zagus7,

 

From what I understand of the drivers, if you do not set the number of samples to read elswhere in the DAQmx task line, it will assume that you are seeking the number of samples indicated by the read function. If the DAQmx Read function is set to Single Channel, Single Sample, then it will take only one sample and terminate. That may be the behavior that you are seeing. The attached are the LabVIEW Help section on Samples per channel and what your code might look like if you are taking a single sample. If you want continuous samples, try adding a while loop around the Read function.

Ben R.
Aerospace & Defense Test
Solutions Marketer
National Instruments
Download All
Message 7 of 7
(5,942 Views)