Extreme gain for low pass filter

3 visualizzazioni (ultimi 30 giorni)
% Filter constants
Wp = 5e3*2*pi;
Ws = 9.5e3*2*pi;
Rp = 2;
Rs = 45;
% Butterworth lowest order
[n,Wn] = buttord(Wp,Ws,Rp,Rs,'s');
disp([10 'Butterworth order: ' num2str(n) ' @ ' num2str(Wn/(2*pi)) ' [Hz]']);
[z,p,k] = butter(n,Wn,'s');
disp(['Zeros: ' num2str(size(z,1)) 10 ...
'Poles: ' num2str(size(p,1)) 10 ...
'Gain: ' num2str(k)]);
> Butterworth order: 9 @ 5342.252 [Hz]
> Zeros: 0
> Poles: 9
> Gain: 54092634016296818598907515083157976121344
How is this gain possible? Is this a weird bug?

Risposta accettata

Teja Muppirala
Teja Muppirala il 21 Nov 2012
Modificato: Teja Muppirala il 21 Nov 2012
I don't think that is a weird bug. That large value looks correct to me.
The DC gain should = 1. In other words, if you plug in s = 0, you should get 1. Since there are no zeros, this implies that the product of the poles is the gain:
G(s) = K/[ (s-p(1)) * (s-p(2)) * (s-p(3)) * ... (s-p(9)) ]
G(0) = K/[ (-p(1)) * (-p(2)) * (-p(3)) * ... (-p(9)) ] = 1
--> Therefore K = prod(-p)
Actually plugging it in
prod(-p)
ans =
5.4093e+40
Which is precisely what K is.
  1 Commento
Sebastian Holmqvist
Sebastian Holmqvist il 21 Nov 2012
Excellent explanation! We are to implement this in a typical Sallen-Key circuit and were a bit thrown by the large numbers. But we see now that the gain K relates to the pole, not directly to any physical components in our amplifier.

Accedi per commentare.

Più risposte (0)

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by