uf_lp_curve.m

来自「信号实验常用的simulink模型和mfile,可直接在matlan下运行。」· M 代码 · 共 41 行

M
41
字号
function [omega,Array]=uf_lp_curve(ftype,Ap);

if nargin<2,
   Ap = 0;
end;

ftype=lower(ftype);

Slen=100;
Modr=10;

Array=zeros(Modr,Slen*3);
omega=[linspace(0.01,1,Slen) linspace(1.01,Modr,Slen*2)];

if strcmp(ftype(1:6),'butter'),     % 1 to Modr order Butterworth analog lowpass prototype
   for n=1:Modr,
      Array(n,:) = - 10 .* log10( 1 + omega.^(2*n) );
   end;
   

elseif strcmp(ftype(1:6),'cheby1'), % 1 to Modr order Chebyshev type I analog lowpass prototype
   epsilon = sqrt(10^(.1*Ap)-1);
   Tn=zeros(size(omega));
   n1=max(find(omega<=1));
   for n=1:Modr,
      Tn = [ cos(n.*acos(omega(1:n1))) cosh(n.*acosh(omega((n1+1):(Slen*3)))) ];
      Array(n,:) = - 10 .* log10( 1 + epsilon^2 .* Tn.^2 );
   end;
   
elseif strcmp(ftype(1:6),'cheby2'), % 1 to Modr order Chebyshev type II analog lowpass prototype
%  epsilon = sqrt(10^(.1*Ap)-1);
%   Tn=zeros(size(omega));
%   n1=max(find(omega<=1));
%   for n=1:Modr,
%      Tn = [ cos(n.*acos(omega(1:n1))) cosh(n.*acosh(omega((n1+1):Slen))) ];
%      Array(n,:) = - 10 .* log10( 1 + epsilon^2 .* Tn.^2 );
%   end;
   
end;

⌨️ 快捷键说明

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