Extreme gain for low pass filter

2 ビュー (過去 30 日間)
Sebastian Holmqvist
Sebastian Holmqvist 2012 年 11 月 21 日
% 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?

採用された回答

Teja Muppirala
Teja Muppirala 2012 年 11 月 21 日
編集済み: Teja Muppirala 2012 年 11 月 21 日
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 件のコメント
Sebastian Holmqvist
Sebastian Holmqvist 2012 年 11 月 21 日
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.

サインインしてコメントする。

その他の回答 (0 件)

製品

Community Treasure Hunt

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

Start Hunting!

Translated by