Extreme gain for low pass filter
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
% 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?
0 Kommentare
Akzeptierte Antwort
Teja Muppirala
am 21 Nov. 2012
Bearbeitet: Teja Muppirala
am 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.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Analog Filters finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!