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

📄 afdorder.m

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

% afdorder.m  AFD order range (nmin,nmax)
% 2:12  29/1/99
%
%   Authors: Dejan V. Tosic, Miroslav D. Lutovac, 1999.02.08
%                 tosic@telekom.etf.bg.ac.yu
%                 lutovac@galeb.etf.bg.ac.yu
%
%   Copyright (c) 1999 by Tosic & Lutovac
%   $Revision: 1.0 $  $Date: 1999/02/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);
 B = Fs2 - Fs1;
 Fr = sqrt(Fs1*Fs2);

 Fp = Fp1;
 Fs = Fp1*(Fp2-Fp1)/B;
 Kp = min([Kp1 Kp2]);
 Ks = Ksr;

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

end

k      = Fp/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 + -