23 lines
700 B
Matlab
23 lines
700 B
Matlab
function G=ousta_fod(gam,N,wb,wh)
|
|
% ousta_fod - design of an Oustaloup filter
|
|
%
|
|
% G=ousta_fod(r,N,wb,wh)
|
|
%
|
|
% r - the fractional order
|
|
% wb, wh, N - the interested frequency interval (wb,wh) and the order
|
|
% G - the designed Oustaloup filter, as a TF object
|
|
|
|
% Copyright (c) Dingyu Xue, Northeastern University, China
|
|
% Last modified 28 March, 2017
|
|
% Last modified 18 May, 2022
|
|
arguments
|
|
gam(1,1) double, N(1,1){mustBePositiveInteger}=9
|
|
wb(1,1) double=1e-4; wh(1,1){mustBeGreaterThan(wh,wb)}=1e4;
|
|
end
|
|
if round(gam)==gam, G=tf('s')^gam;
|
|
else
|
|
k=1:N; wu=sqrt(wh/wb);
|
|
wkp=wb*wu.^((2*k-1-gam)/N); wk=wu^(2*gam/N)*wkp;
|
|
G=zpk(-wkp,-wk,wh^gam);
|
|
end, end
|