afdpass.m

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

M
125
字号
function twoaxis=afdpass(num,den,speca,filnumb,moreaxis)

% afdpass.m  AFD Plot attenuation in passband
% 1:08  11/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

initaxis = [0.13 0.11 0.775 0.815];

if filnumb == 1

twoaxis = 0;
if moreaxis ~= 0
 delete(gca);
 set(gca, 'Position', initaxis);
end
f1 = 0; f2 = speca(1);
f = f1:(f2-f1)/100:f2;
s = j*2*pi*f;
H = polyval(num,s)./polyval(den,s);
A = -20*log10(abs(H));
plot(f, A, [0 speca(1)], [speca(3) speca(3)], 'r:');
xlabel('frequency (Hz)');
ylabel('attenuation (dB)');
title('Passband');
a = axis;
a(1) = f1;
a(2) = f2;
axis(a);
%set(gca,'Color',[0 0 0]);

elseif filnumb == 2

twoaxis = 0;
if moreaxis ~= 0
 delete(gca);
 set(gca, 'Position', initaxis);
end
f1 = speca(2); f2 = 5*speca(2);
f = f1:(f2-f1)/100:f2;
s = j*2*pi*f;
H = polyval(num,s)./polyval(den,s);
A = -20*log10(abs(H));
plot(f, A, [speca(2) 5*speca(2)], [speca(3) speca(3)], 'r:');
xlabel('frequency (Hz)');
ylabel('attenuation (dB)');
title('Passband');
a = axis;
a(1) = f1;
a(2) = f2;
axis(a);
%set(gca,'Color',[0 0 0]);

elseif filnumb == 3

twoaxis = 0;
if moreaxis ~= 0
 delete(gca);
 set(gca, 'Position', initaxis);
end
f1 = speca(2); f2 = speca(3);
f = f1:(f2-f1)/100:f2;
s = j*2*pi*f;
H = polyval(num,s)./polyval(den,s);
A = -20*log10(abs(H));
plot(f,A, ...
 [speca(2) speca(3)],[speca(6) speca(6)],'r:')
xlabel('frequency (Hz)');
ylabel('attenuation (dB)');
title('Passband');
a = axis;
a(1) = f1;
a(2) = f2;
axis(a);
%set(gca,'Color',[0 0 0]);

elseif filnumb == 4

twoaxis=1;
subplot(211);
f1 = 0; f2 = speca(1);
f = f1:(f2-f1)/100:f2;
s = j*2*pi*f;
H = polyval(num,s)./polyval(den,s);
A = -20*log10(abs(H));
plot(f,A, ...
 [0 speca(1)],[speca(5) speca(5)],'r:');
xlabel('frequency (Hz)');
ylabel('attenuation (dB)');
title('Passband 1');
a = axis;
a(1) = f1;
a(2) = f2;
axis(a);
%set(gca,'Color',[0 0 0]);

subplot(212);
f1 = speca(4); f2 = 5*speca(4);
f = f1:(f2-f1)/100:f2;
s = j*2*pi*f;
H = polyval(num,s)./polyval(den,s);
A = -20*log10(abs(H));
plot(f,A, ...
 [speca(4) 5*speca(4)],[speca(7) speca(7)],'r:');
xlabel('frequency (Hz)');
ylabel('attenuation (dB)');
title('Passband 2');
a = axis;
a(1) = f1;
a(2) = f2;
axis(a);
%set(gca,'Color',[0 0 0]);

end

⌨️ 快捷键说明

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