⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dfdorder.m

📁 AFD - Advanced Filter Design using MATLABMiroslav D. Lutovac, Dejan V. Tosicversion 1.00 released 15
💻 M
字号:
function [nmin,nmax,nincmin,nincmax] = dfdorder(speck,filnumb)

% dfdorder.m  DFD order range (nmin,nmax)
% 0:25  8/3/99
%
%   Authors: Dejan V. Tosic, Miroslav D. Lutovac, 1999.03.08
%                 tosic@telekom.etf.bg.ac.yu
%                 lutovac@galeb.etf.bg.ac.yu
%
%   Copyright (c) 1999 by Tosic & Lutovac
%   $Revision: 1.0 $  $Date: 1999/03/08 03:07:42 $
%
%   References:
%        Miroslav D. Lutovac, Dejan V. Tosic, Brian L. Evans
%           Advanced Filter Design for Signal Processing
%                   Using MATLAB and Mathematica

if filnumb==1 | filnumb==2

 Fp = speck(1);
 Fs = speck(2);
 Kp = speck(3);
 Ks = speck(4);

elseif filnumb==3
 Fs1 = speck(1);
 Fp1 = speck(2);
 Fp2 = speck(3);
 Fs2 = speck(4);
 Ks1 = speck(5);
 Kpb = speck(6);
 Ks2 = speck(7);
 B = Fp2 - Fp1;
 Fr = sqrt(Fp1*Fp2);

 Fp = Fs1;
 Fs = Fp*(Fs2-Fs1)/B;
 Kp = Kpb;
 Ks = max([Ks1 Ks2]);

elseif filnumb==4
 Fp1 = speck(1);
 Fs1 = speck(2);
 Fs2 = speck(3);
 Fp2 = speck(4);
 Kp1 = speck(5);
 Ksr = speck(6);
 Kp2 = speck(7);

errorFrequency = tan(pi*Fp1) * tan(pi*Fp2)- tan(pi*Fs1) * tan(pi*Fs2);
 Fp1p = atan(tan(pi*Fs1) * tan(pi*Fs2) / tan(pi*Fp2) )/pi;
 Fp2p = atan(tan(pi*Fs1) * tan(pi*Fs2) / tan(pi*Fp1) )/pi;
 if abs(errorFrequency) > 1/10^9
  if Fp1p > Fp1
   Fp1 = Fp1p;
  else
   Fp2 = Fp2p;
  end
 end

% B = Fs2 - Fs1;
% Fr = sqrt(Fs1*Fs2);
 Fp = Fp1;
 Fs = atan(tan(pi*Fp1) * (tan(pi*Fp2)-tan(pi*Fp1)) / ...
                        (tan(pi*Fs2)-tan(pi*Fs1)) )/pi;
 Kp = min([Kp1 Kp2]);
 Ks = Ksr;

else
 error('DFD ERROR: Unsupported filter type.');

end

k      = tan(pi*Fp)/tan(pi*Fs);
L      = Ks/Kp;
num    = ellipke(1-1/L^2)/ellipke(1/L^2);
den    = ellipke(1 - k^2)/ellipke(k^2);
nellip = ceil(num/den);


ncheb = ceil(acosh(L)/acosh(1/k));

nmin = nellip;
nmax = min([2*nmin,ncheb-1]);

if nmax < nmin
 nmax = nmin;
end

nincmin = 0;
nincmax = nmax - nmin;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -