📄 afdqx.m
字号:
function Rx = afdqx(c)
% afdqx.m AFD auxiliary function qx(c)
%
% 2:33 16/2/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
% calls:
%% afdxna.m, afdl.m
global AFD_n_x_Ks_Kp;
nxkskp = AFD_n_x_Ks_Kp;
n = nxkskp(1);
xs = nxkskp(2);
Ks = nxkskp(3);
Kp = nxkskp(4);
a=xs+c(1)^2;
y=1+c(2)^2;
X = zeros(1,n);
for i =1:n
X(i) = ellipj( ((2*i-1)/n + 1)*ellipke(1/a^2), 1/a^2);
end
X = afdxna(n,a);
L = afdl(n,a);
e = 1/sqrt(L);
x = y;
r = 1; R = 1;
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
R1 = R/r;
x = y*xs;
r = 1; R = 1;
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
R2 = R/r;
Rx = (e*R1/Kp - 1)^2 + (e*R2/Ks - 1)^2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -