In: Electrical Engineering
Create a 6th order Butterworth filter. Then change capacitor values and notice how the design specifications change. Create a plot where there is an ideal high performance filter (exact capacitor values) compared to a filter where low tolerance capacitors are used (the value of the capacitor drifts).
Hello,
Please find
the answer attached as under. Please give a thumbs up rating if you
find the answer useful! Have a rocking day ahead!
I have done the design and plot in Matlab. Note that a 6th order Butterworth filter is formed by a cascade of 3 2nd order filters given by:
***** Matlab Code ******
R1 =
1000;
% Resistance values in circuit
R2 = R1;
C1 =
20e-6;
% Capacitance values in circuit
C2 = C1;
C1_minus = 15e-6;
C2_minus = C1_minus;
C1_plus = 25e-6;
C2_plus = C1_plus;
h = tf([1],[R1*R2*C1*C2 C2*(R1+R2)
1]); % 2nd order
transfer function
h_filter =
h*h*h;
% 6th order transfer function
[mag,phase,wout] = bode(h_filter);
mag = squeeze(mag);
wout = squeeze(wout);
mag = 20*log10(mag);
semilogx(wout,mag)
grid;
hold;
h_minus = tf([1],[R1*R2*C1_minus*C2_minus C2_minus*(R1+R2)
1]); % filter with reduced capacitor
values
h_minus_filter = h_minus*h_minus*h_minus;
[mag,phase,wout] = bode(h_minus_filter);
mag = squeeze(mag);
wout = squeeze(wout);
mag = 20*log10(mag);
semilogx(wout,mag)
h_plus = tf([1],[R1*R2*C1_plus*C2_plus C2_plus*(R1+R2)
1]); % filter with
increased capacitor values
h_plus_filter = h_plus*h_plus*h_plus;
[mag,phase,wout] = bode(h_plus_filter);
mag = squeeze(mag);
wout = squeeze(wout);
mag = 20*log10(mag);
semilogx(wout,mag)
legend('Ideal response','Capacitor values increased','Capacitor
values decreased')
xlabel('Frequency(rad per sec)')
ylabel('Magnitude (dB)')
******* End of code ********
Output:
The differences in the filter plots can be clearly seen with changing capacitor values. However, note that the capacitor values have been changed by as much as 20% in the code, which may not happen practically. Thus, the change in the responses seen here is vast.