Go to Post If you don't have anything nice to say, don't say it all. I mean, I know we all get frustrated during build season, but we still need to make an effort to be polite and helpful. - Karthik [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
 
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 22-01-2009, 10:53
Jared Russell's Avatar
Jared Russell Jared Russell is offline
Taking a year (mostly) off
FRC #0254 (The Cheesy Poofs), FRC #0341 (Miss Daisy)
Team Role: Engineer
 
Join Date: Nov 2002
Rookie Year: 2001
Location: San Francisco, CA
Posts: 3,078
Jared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond repute
Re: Accelerometer success?

Why would you bother?

The Fourier transform is generally a more useful tool for designing filters rather than implementing them. There is no frequency domain filter that cannot be implemented in the time domain.
  #2   Spotlight this post!  
Unread 22-01-2009, 11:15
manderson5192 manderson5192 is offline
Registered User
AKA: Matt Anderson
FRC #0948 (Newport Robotics Group: NRG (pronounced eNeRGy))
Team Role: Programmer
 
Join Date: Jan 2008
Rookie Year: 2007
Location: Bellevue, WA
Posts: 62
manderson5192 is on a distinguished road
Re: Accelerometer success?

Quote:
Originally Posted by Abwehr View Post
Why would you bother?

The Fourier transform is generally a more useful tool for designing filters rather than implementing them. There is no frequency domain filter that cannot be implemented in the time domain.
I think I remember reading a little about how to design time-domain filters based on a Fourier Transform, but I couldn't glean much from the website's brief description.

I'm assuming that taking a Fourier Transform of the signal could reveal the frequencies of the high-frequency signals of vibrations and electronic noise. Using this information, one could then design a time-domain filter to extract the "real" acceleration signal. If this assumption is wrong, would you so enlighten me .

Also, I would like to know what the name of such a time-domain filter would be. I'd like to do some research on it...

Thanks!
-Matt
  #3   Spotlight this post!  
Unread 22-01-2009, 12:48
Jared Russell's Avatar
Jared Russell Jared Russell is offline
Taking a year (mostly) off
FRC #0254 (The Cheesy Poofs), FRC #0341 (Miss Daisy)
Team Role: Engineer
 
Join Date: Nov 2002
Rookie Year: 2001
Location: San Francisco, CA
Posts: 3,078
Jared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond repute
Re: Accelerometer success?

Quote:
Originally Posted by manderson5192 View Post
I think I remember reading a little about how to design time-domain filters based on a Fourier Transform, but I couldn't glean much from the website's brief description.

I'm assuming that taking a Fourier Transform of the signal could reveal the frequencies of the high-frequency signals of vibrations and electronic noise. Using this information, one could then design a time-domain filter to extract the "real" acceleration signal. If this assumption is wrong, would you so enlighten me .

Also, I would like to know what the name of such a time-domain filter would be. I'd like to do some research on it...

Thanks!
-Matt
Matt -

Do you have access to MATLAB? There is a nice digital filter design tool that you can use to accomplish the goals you are putting forward.

To design a filter, there are generally a few steps that you will want to follow. Basically, you capture some representative sample data, take its FFT, and examine its Bode plot. From this you should be able to surmise what frequencies are useful, and what are noise. You can then pick a "cutoff frequency" above which your filter will reject the signal as noise (for a low-pass filter, which is what you want here). Finally, you pick your filter type and size (number of poles) and you can compute all of the necessary coefficients from the selections you've made. Voila!

So from the above you will see you need three things to design a (low-pass) filter:

1. A characterization of the noise (Which is what the FFT can help you with)
2. A filter architecture
3. A filter size

For #2, there are hundreds of well-known filters out there. All linear filters are either FIR (finite impulse response) or IIR (infinite impulse response). A moving average is an FIR filter, since there is no feedback from prior filter outputs into the next filter output. A filter like "x_filtered = 0.1*x + 0.9*x_filtered" would be IIR, since there is feedback from the last value of "x_filtered" to the next. Generally, FIR filters are easiest to implement and are always stable. IIR filters can achieve better noise rejection performance, but you have to worry about stability and other tradeoffs.

Once you have your filter type, it's time to address #3. Clearly, a moving average of the last 100 readings will reject higher frequency noise than a moving average of the last 3 (since in the 100 "tap" case, a single spike would only be 1/100th of the output, whereas in the 3 tap case, a single spike would be 1/3rd of the output). This applies to all types of linear filters. Unfortunately, with increased smoothing comes increased phase (time) delay. To go back to our moving average example, if the input stepped from 0 to 1 at time T, it would take 50 readings before our 100 tap moving average registered even half of the change.

I hope this helps (and isn't too confusing). For more information, Wikipedia has some great filtering articles. Try:

http://en.wikipedia.org/wiki/Digital_filter
http://en.wikipedia.org/wiki/Low_pass_filter
http://en.wikipedia.org/wiki/Filter_design

For particular types of filters that tend to work well in practice, try:

http://en.wikipedia.org/wiki/Chebyshev_filter
http://en.wikipedia.org/wiki/Butterworth_filter
http://en.wikipedia.org/wiki/Elliptic_filter

Good luck!
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
pic: Success!!! andrew348 Extra Discussion 8 06-01-2009 02:33
Camera Success?? Warren Boudreau Programming 3 16-03-2006 17:55
pic: Success! Jeff Rodriguez Extra Discussion 5 13-02-2006 05:30
Success in D.C.? Bcahn836 Off-Season Events 6 23-02-2004 14:54


All times are GMT -5. The time now is 02:28.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi