Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Low-pass filter

  1. Nov 13, 2006 #1
    Hi,

    I would like to figure out the RC values for a low-pass filter to filter out the noise depicted in the attachment (the spikes). The ADC I'm using is capable of 250kSPS and I'm reading samples in a loop with very little processing between them. The noise seems to only exist for 2-4 samples so if I'm calculating this properly it lasts about 16 microseconds per spike. I already have an RC low-pass filter between the instrumenation amplifier and the ADC; R=1k and C=2.7nF. Would increasing the C value be the proper way to filter out the noise and if so by how much?

    Thanks
     

    Attached Files:

  2. jcsd
  3. Nov 13, 2006 #2

    chroot

    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    J77,

    I didn't intend for you to design an analog filter. I intended for you to design a digital filter. Unfortunately, digital filter design is not easy.

    Is this noise present at the ADC inputs? Or is this noise actually being created by the ADC itself? This is admittedly rather unusual-looking "noise," as is it not periodic and not at all white. It almost looks like sparkle to me.

    - Warren
     
  4. Nov 13, 2006 #3
    The noise is being created by a motor. I'm using a motor to spin some blades that cause material to impact a plate. The ADC is used to measure the force of these impacts. When I switch the motor on I get the noise you see in the attachement. I'm not sure if the noise from the motor is coming in on the analog inputs or the supply lines for the amplifier and ADC.

    By the way...what is sparkle?
     
  5. Nov 13, 2006 #4

    chroot

    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    Ah, I see.. You should really determine whether the noise is actually present at the ADC input (with an oscilloscope), or whether power-supply effects are creating the "noise" within the ADC itself.

    You might want to try to isolate the power and ground of the ADC circuit and the motor as much as possible. You should also try to shield your signal lines with parallel ground lines.

    You probably can filter out these spikes in software, but it would be better to actually solve the fundamental problem instead.

    - Warren
     
  6. Nov 13, 2006 #5
    You're right...I'll have to figure out where the noise is coming from. The motor is actually driven by a separate variable speed control (separate from the board I designed that includes the ADC). The noise would have to be coming in on the AC power lines or be RF interference.
     
  7. Nov 13, 2006 #6

    chroot

    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    Do you have a metal box you could put your ADC board in? Do you have any long lines between the sensor and the ADC? Could you replace any transmission lines with shielded cable, or twisted pair?

    - Warren
     
  8. Nov 13, 2006 #7

    berkeman

    User Avatar

    Staff: Mentor

    What is the signal source, and what are its signal characteristics. Is it always a sine wave at some frequency, and the amplitude varies, or can the frequency vary as well? How fast can the amplitude and frequency vary?

    If the signal is a pretty steady (slowly changing) sine wave, then your DSP gets a lot easier. Just emulate a digital PLL to lock on to the signal (fast lock then slow changes only allowed). You end up with an expected value for each next sample, and only make adjustments to amplitude and phase with a small percentage of the new input sample and a large percentage of your previous sample. It's basically like a very sharp digital bandpass filter, but you allow the center frequency to slowly move with the input sine wave.

    I agree that you should find and fix the noise coupling as best as you can, but even the noisy waveform you showed can be turned back into a very good sine wave with the digital PLL trick.
     
  9. Nov 13, 2006 #8
    The sensor lines are shielded but they can be shortened. I am going to shorten them and see if I can provide some shielding for my ADC board.

    Berkeman both the amplitude and frequency can vary. The amplitude is a function of the quantity of material impacting the plate and the frequency depends on how fast I have the variable speed motor set to spin the blades. Your PLL trick is interesting...I will have to study up on it and see if it would be better than doing some filtering in software if I am not able to sufficiently fix the noise coupling.
     
  10. Nov 13, 2006 #9

    chroot

    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    A digital PLL won't be appropriate if the frequency of the signal is not (relatively) fixed. If the frquency varies very, very slowly, you might be able to use such a solution, but even the little waveform snippet you showed us does not look like it would be a good candidate for a PLL.

    - Warren
     
  11. Nov 13, 2006 #10

    berkeman

    User Avatar

    Staff: Mentor

    What exactly is the sensor sensing? How is it made, and how is it attached to the blades or whatever? Why is its output sinusoidal?
     
  12. Nov 14, 2006 #11
    The sensor is a single point load cell with a plate attached to it's sensing end. It is used to measure the impact force of material propelled by blades/paddles attached to a motor. The output appears to be sinusoidal because the material impacts the plate at consistent intervals. A portion of the signal you are seeing are the vibrations that occur after an impact. This device is a little research project I am playing around with....maybe it will work and maybe it won't :) The overall goal is to be able to totalize the flow of granular materials with approx. +-5% accuracy in a cost effective way.
     
  13. Nov 14, 2006 #12

    dlgoff

    User Avatar
    Science Advisor
    Gold Member

    Well, I've always tried to eliminate the noise at the source. You haven't said whether the motor is AC or DC. The noise looks a little like brush (arcing) noise.
     
  14. Nov 15, 2006 #13

    es1

    User Avatar

    I would also guess there is a grounding or power issue since the spike is an amplified version of a vibration, which I presume is high frequency, and because the big jumps in the data suggest the ADC is loosing msbs which is a pretty major thing. But another possibility is that you need a remote sense for the differential input to your instrumentation amplifier.

    This is the classic part for handling your amplifier and sensing needs all in one nifty place:
    http://www.analog.com/en/prod/0,,759_782_AMP01,00.html

    Also, you might want to check what input impedances and capacitances your adc can accept. Fast adcs are no where near ideal loads. This could very well be an impedance mismatch.

    Perhaps you could use a slower adc that has more desireable input characteristics and longer integration times?
     
    Last edited: Nov 15, 2006
  15. Nov 15, 2006 #14
    dlgoff you may very well be correct. I did a little more investigating and the noise is definitely being generated by the motor and seems to be coming in on the analog inputs. When the load cell is in close priximity to the motor (1-2 feet) I get the noise in the output from the ADC and when the load cell is moved several feet away the output is clean. Would software filtering be the best solution at this point or is there something else that can be done to eliminate the noise (the load cell has to be in close proximity to the motor)?
     
  16. Nov 15, 2006 #15

    dlgoff

    User Avatar
    Science Advisor
    Gold Member

    You might want to experiment with placing a capacitor (try a 0.1mf) across the brushes if it's a DC motor. Hopefully this will shunt the noise a little.

    You might consider using a different motor. Maybe a brushless DC motor.

    Regards
     
  17. Nov 18, 2006 #16
    its looks periodic, or cyclic, occuring at about the same point with each revolution of the motor, it might just be one spot on the motor commutator that is causing the brushes to bounce or skip.

    its certaily best to fix the noise at the source, and fix the cause of the problem instead of working around the effects.

    but about DSP, PLL and filtering etc, you risk losing the data you want, if you cant remove the spikes, you might just be able to modify your code to throw out crazy readings, say any measurements at are 10% away from "expected" measured value at that time, might solve your problem.

    or any reading the is a large value compared to the previous reading, you ignore, with will take out the spikes from your data, (you can also fill in that value with the last "real" measured value, to keep your dataset more accurate.

    mabey a new set of brushes, and commutator skim, and undercut, and some filter capacitors.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?



Similar Discussions: Low-pass filter
  1. Low pass filter design (Replies: 2)

  2. Low-pass filter (Replies: 14)

  3. Low Pass Filter (Replies: 12)

Loading...