|See Also||fnbut , fncheb1 , fncheb2|
Norder = SCALAR. Requested order of transfer function. Coerced to
INTEGER before local processing. Norder >= 2.
b = VECTOR, COLUMN, for return (type disregarded on input).
Numerator polynomial coefficients. Type DOUBLE.
a = VECTOR, COLUMN, for return (type disregarded on input).
Denominator polynomial coefficients. Type DOUBLE.
RETURN: novalue. Filter functions are returned in 'b' and 'a'.
This function creates a normalized Bessel s-domain lowpass transfer function. The 3-dB cutoff frequency is set to 1 radian/sec. The requested filter order 'Norder' must be >= 2. The numerator polynomial of the transfer function is returned through argument 'b', and is a column vector where the elements form a polynomial as follows:
b => b(1) + b(2)*s + b(3)*s^2 + ...
Denominator polynomial is returned in argument 'a', and is of the same form.
Bessel filters approximate a maximally flat group delay characteristic. The filter's selectivity is relatively poor since it has a slow magnitude cutoff rate. But these filters have very low overshoot in their transient responses.
A plot of the normalized BESSEL filter appears as:
# Design BESSEL lowpass prototype filter, fc = 1 [radian/sec]
Norder = 5; # Filter Order
b = novalue; # Declare numerator
a = novalue; # Declare denominator
fnbes(Norder, b, a); # Make the prototype
# Evaluate this filter around its cutoff.
fmin = 1d-2; # Plotting Limits
fmax = 1d0;
ymax = 10d0;
ymin = -60d0;
N = 201; # Plotting information
n = seq(N)'-1d0;
f = logspace(log10(fmin),log10(fmax),N)';
H = gains(b,a,f);
HdB = db20(H);
fc = 1d0/2/PI; # 3dB down at this cutoff