📄 dfdnminq.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 + -