Designing Butterworth LPF to Meet J211 Specs with ADXL377 Sensor

  • Thread starter Thread starter ConnorM
  • Start date Start date
  • Tags Tags
    Designing Sensor
Click For Summary
SUMMARY

The discussion focuses on designing a Butterworth Low Pass Filter (LPF) to meet SAE J211 specifications using the ADXL377 accelerometer. The specified filter requirements include a pass band frequency (fp) of 1000Hz, a cutoff frequency (fc) of 1650Hz, a pass band ripple (Rp) of 0.5dB, and a stop band ripple (Rs) of -40dB, with a sample rate (Fs) of 10,000Hz. The user encountered instability in the filter design while using MATLAB functions such as buttord and butter, leading to poles located on the right side of the imaginary axis. The discussion also covers the conversion from digital to analog filters using the inverse bilinear transformation.

PREREQUISITES
  • Understanding of Butterworth filter design principles
  • Familiarity with MATLAB functions such as buttord and butter
  • Knowledge of digital and analog filter characteristics
  • Basic concepts of control systems and stability analysis
NEXT STEPS
  • Research the use of the designfilt function in MATLAB for filter design
  • Study the inverse bilinear transformation for converting digital filters to analog
  • Explore stability criteria for digital filters and how to analyze pole locations
  • Investigate methods for simulating analog filter responses from digital designs
USEFUL FOR

Students, engineers, and researchers involved in filter design, particularly those working with accelerometers and digital signal processing. This discussion is beneficial for anyone looking to understand the intricacies of Butterworth filter design and stability in MATLAB.

ConnorM
Messages
77
Reaction score
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?
 
Physics news on Phys.org
ConnorM said:
Ws = 2*fs/Fs

ConnorM said:
Wp = 2*fp/Fs

ConnorM said:
I obtain an unstable filter.

ConnorM said:
Also the poles are in the right side of the imaginary axis in the pzplot

how much do you know about control systems and stability?
 
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.
 
:)

did you manage to fix it. do you know how to convert from digital to analog?
 
donpacino said:
:)

did you manage to fix it. do you know how to convert from digital to analog?

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?
 
  • Like
Likes   Reactions: donpacino
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!
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
3K