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

Homework Help: Filter Design -- Butterworth LPF for aan ADXL377 accelerometer with analog output

  1. Nov 9, 2017 #1
    • Thread moved from the technical forums, so no Homework Template is shown
    I am a student trying to design a Butterworth LPF to meet the class 1000 specifications, by SAE J211 (https://law.resource.org/pub/us/cfr/ibr/005/sae.j211-1.1995.pdf). My sensor is an ADXL377 accelerometer with analog output.

    My filter requirements (from J211) are
    fp = 1000Hz (Pass band frequency)
    fc = 1650Hz (Cutoff frequency)
    Rp = 0.5db (Pass band ripple)
    Rs = -40db (Stop band ripple)
    Fs = 10,000Hz (Sample rate)

    My goal is to come up with some filter design that I can then implement with an RC circuit.
    J211 specifies that it a 4th order butterworth could be used to meet the above requirements but when I try inputting the values on Matlab I obtain an unstable filter.

    Wp = 2*fp/Fs
    fs comes from 4th order filter with -24octave/db, and fc at -3db.
    fs = 3590Hz
    Ws = 2*fs/Fs

    [n,Wn] = buttord(Wp,Ws,Rp,Rs);
    [b,a] = butter(n,Wn);
    G = tf(b,a);
    isstable(G) —> outputs zero
    Also the poles are in the right side of the imaginary axis in the pzplot...

    Should I just use the “designfilt” function and take whatever it gives me?
    Could someone help me out?
  2. jcsd
  3. Nov 9, 2017 #2


    User Avatar
    Science Advisor

  4. Nov 10, 2017 #3


    User Avatar
    Gold Member

    how much do you know about control systems and stability?
  5. Nov 11, 2017 #4
    Realized I was looking at a digital filter and not an analog filter. It was in Z domain so the poles were contained within the unit circle.

    Did my best to replicate the digital filter response with the analog filter I made.
  6. Nov 12, 2017 #5


    User Avatar
    Gold Member


    did you manage to fix it. do you know how to convert from digital to analog?
  7. Nov 12, 2017 #6
    Yes I think I managed to fix it! I’m not quite sure how to convert from digital to analog, I was able to find a lot about how to convert from analog to digital though.

    Would I just apply a reverse bilinear transform to the Z space transfer function?
  8. Nov 12, 2017 #7


    User Avatar
    Gold Member

    Yup!. Its called the inverse bilinear transformation.

    A cheating way to do it (depending on your goals and requirements) is increase your sample time until it greatly exceeds the characteristics of your system.
    At infinite frequency, digital domain will equal analog. As you get closer to infinite, they'll converge. Eventually they'll get close enough.

    So if you are ever simulating a digital system, and want to see what would happen if you used an analog system, just crank up the sample frequency!
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted