Designing Butterworth LPF to Meet J211 Specs with ADXL377 Sensor

  • Thread starter Thread starter ConnorM
  • Start date Start date
  • Tags Tags
    Designing Sensor
AI Thread Summary
A student is designing a Butterworth low-pass filter (LPF) to meet SAE J211 specifications using an ADXL377 accelerometer, aiming for a pass band frequency of 1000Hz and a cutoff frequency of 1650Hz. They encountered instability in their filter design while using MATLAB, with poles appearing on the right side of the imaginary axis. The discussion highlights the importance of distinguishing between digital and analog filter designs, with suggestions to use the inverse bilinear transformation for conversion. A potential workaround mentioned is to increase the sample rate to align digital and analog responses. The student ultimately found a solution but is still exploring the conversion process from digital to analog filters.
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 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
Views
2K
Back
Top