Extreme gain for low pass filter
1 view (last 30 days)
Show older comments
% 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 Comments
Accepted Answer
Teja Muppirala
on 21 Nov 2012
Edited: Teja Muppirala
on 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.
More Answers (0)
See Also
Categories
Find more on Analog Filters in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!