dfdrx.m

来自「AFD - Advanced Filter Design using MATLA」· M 代码 · 共 56 行

M
56
字号
function Rx = dfdrx(c)

% dfdrx.m  ADFD auxiliary function Rx(c)
%
% 2:34  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:
%% dfdxna.m

% n = 8;
% x = 3.225/3;
% Ks = 99.99499987499376;
% Kp = 0.21709110541637;
global DFD_n_x_Ks_Kp;
nxkskp = DFD_n_x_Ks_Kp;
n  = nxkskp(1);
x  = nxkskp(2);
Ks = nxkskp(3);
Kp = nxkskp(4);

a=1+c^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 = dfdxna(n,a);

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
Rx = (R/r - Ks/Kp)^2;

⌨️ 快捷键说明

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