06-12-2015 06:11 AM
Hi,
I am trying to read the signal from an accelerometer using LabVIEW and an arduino uno board.
The accelerator (352C33) is a high sensitivity sensor, approx. 105mV/g and my problem comes when I try to filtrate the signal. I am using different point to point filters but none of them works. Does anyone know how could I filtrate the signal properly? I can upload the programming I am using or the accelerometer specifications if necessary.
Thanks in advanced
06-12-2015 06:54 AM
Do you have desktop LabVIEW?
If so, I would work with the filter process on that until you get it working the way you want.
Then deploy it to Arduino.
Blog for (mostly LabVIEW) programmers: Tips And Tricks
06-12-2015 08:16 AM
Yeah, i do have labVIEW the problem is that i cant get with the proper filter, some of them dont filter as much as i want and some others too much. I dont know which one should be better for filtering an accelerometer of that type.
06-12-2015 08:28 AM
Since you have such a highly sensistive sensor, my guess is that noise may be getting into the front end. That noise will be aliased into the digital data. It may be that NO amount of digital filtering will help at that point.
My first step would be to look for any noise from the sensor to your arduino and band limiting that analog signal before it gets digitized.
06-12-2015 08:28 AM
Well, all the filters are programmable, so you should pick the basic shape you want first (Chebyshev, Butterworth, etc.) based on the characteristics you need (some trade steepness of cutoff for less ripple in the passband, or vice versa).
If you need help choosing those, consult Wikipedia or some other basic filtering handbook.
Just a starting point: <http://www.etc.tuiasi.ro/cin/Downloads/Filters/Filters.htm>
Then set your sampling frequency and filter order.
All that is easier to do (IMO) on a desktop with some simulated or recorded signals.
When you get all the knobs set the way you like, deploy the same code to your real device.
Blog for (mostly LabVIEW) programmers: Tips And Tricks
06-12-2015 08:31 AM - edited 06-12-2015 08:32 AM
Jamiva is right - the old saying "An ounce of prevention is worth a pound of cure" certainly applies here.
If you can reduce the noise getting in in the first place you will be better off than trying to remove it later.
If the noise is in the same frequency range as the signal, then you cannot get it out without damaging your signal.
Blog for (mostly LabVIEW) programmers: Tips And Tricks
06-12-2015 08:33 AM - edited 06-12-2015 08:35 AM
What is the frequency band of interest?
What is the samplerate?
Equal spaced samples?
Phase information of any importance?
What delay in signal processing is possible? Can range from : Doesn't matter I want it offline, to: I need it in 1ms for my control loop 😉
Can you post a sample of your signal?
can you post a signal captured at the highest possible samplerate?
One easy way for the signal posting: If you have a LabVIEW vi with one or more diagrams/graphs containing/showing the signal: Hit Edit-'Make current values default' , save the vi and attach it to your post.
06-12-2015 08:51 AM
I am an idustrial engineering student so i dont have the proyect here i will upload all the info on moday, didnt think u guys were gonna answer so quickly. Thanks a lot
06-12-2015 09:42 AM - edited 06-12-2015 09:43 AM
I will second what everyone here is saying about conditioning the signal as good as possible before trying to do any software conditioning. Besides making it easier for the software, it makes it easier on your test equipment as you will be filtering out spikes and transients that may damage your equipment.