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

📄 dfdnminq.m

📁 AFD - Advanced Filter Design using MATLABMiroslav D. Lutovac, Dejan V. Tosicversion 1.00 released 15
💻 M
字号:
function n = dfdnminq(Fp, Fs, Kp, Ks)

% dfdnminq.m  DFD Minimum order of erf for minQ design
%
%   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

%% calls:
%% dfdnell.m, dfdxmin.m, dfdxna.m

n = dfdnell(Fp, Fs, Kp, Ks);
a = dfdxmin(n, 1, Ks^2);

X = dfdxna(n,a);
x = a * tan(pi*Fp)/tan(pi*Fs);
r = 1; R = ones(size(x));
if abs(n-2*fix(n/2)) == 0
  for i=1:n/2
    r = r * ((1 - X(i)^2))/((1 - a^2/X(i)^2));
    R = R * ((x^2 - X(i)^2))/((x^2 - a^2/X(i)^2));
  end
else
  for i=1:(n-1)/2
    r = r * ((1 - X(i)^2))/((1 - a^2/X(i)^2));
    R = R * ((x^2 - X(i)^2))/((x^2 - a^2/X(i)^2));
  end
    R = x * R;
end
Ke = (R/r)/Ks - Kp;

while Ke >0
 n = n+1;
 a = dfdxmin(n, 1, Ks^2);
 X = dfdxna(n,a);
 x = a * tan(pi*Fp)/tan(pi*Fs);
 r = 1; R = ones(size(x));
 if abs(n-2*fix(n/2)) == 0
   for i=1:n/2
     r = r * ((1 - X(i)^2))/((1 - a^2/X(i)^2));
     R = R * ((x^2 - X(i)^2))/((x^2 - a^2/X(i)^2));
   end
 else
   for i=1:(n-1)/2
     r = r * ((1 - X(i)^2))/((1 - a^2/X(i)^2));
     R = R * ((x^2 - X(i)^2))/((x^2 - a^2/X(i)^2));
   end
     R = x * R;
 end
 Ke = (R/r)/Ks - Kp;
end

⌨️ 快捷键说明

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