mkfilter 2nd order Bessel bug?

1 vue (au cours des 30 derniers jours)
m
m le 2 Oct 2013
Hello, in the mkfilter() function of the Robust Control Toolbox, I am unable to create a 2nd order Bessel filter, I receive
>> bess = mkfilter(1,2,'bessel');
Undefined function 'ssdata' for input arguments of type 'double'.
.
3rd order works though:
>> bess = tf(mkfilter(1,3,'bessel'))
Transfer function:
1240
-------------------------------
s^3 + 37.7 s^2 + 592.2 s + 1240
Is this a bug in mkfilter? Or is there some theoretical impossibility of a 2nd order Bessel filter?

Réponses (1)

Zack Peters
Zack Peters le 25 Oct 2013
Hi,
This does look to be a possible bug in MKFILTER. Fortunately, the code for MKFILTER is accessible. If you got to lines 60 and 62 of mkfilter.m and change them from:
sys = nd2sys(1,b1);
sys = nd2sys(1,b2);
respectively to:
sys = tf(1,b1);
sys = tf(1,b2);
Then you may be able to get the desired output that you are looking for.
~Zack

Catégories

En savoir plus sur Bessel functions dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by