mkfilter 2nd order Bessel bug?

1 view (last 30 days)
m on 2 Oct 2013
Answered: Zack Peters on 25 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:
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?

Answers (1)

Zack Peters
Zack Peters on 25 Oct 2013
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.


Find more on Physics in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!