dfdtran.m

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

M
151
字号
function twoaxis=dfdtran(num,den,speca,filnumb,moreaxis)

% dfdtran.m  DFD Plot attenuation in transition
% 0:32  8/3/99
%
%   Authors: Dejan V. Tosic, Miroslav D. Lutovac, 1999.03.08
%                 tosic@telekom.etf.bg.ac.yu
%                 lutovac@galeb.etf.bg.ac.yu
%
%   Copyright (c) 1999 by Tosic & Lutovac
%   $Revision: 1.0 $  $Date: 1999/03/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];

twoaxis = 0;
if moreaxis ~= 0
 delete(gca);
 set(gca, 'Position', initaxis);
end

if filnumb == 1

twoaxis = 0;
if moreaxis ~= 0
 delete(gca);
 set(gca, 'Position', initaxis);
end
f1 = speca(1); f2 = speca(2);
f = f1:(f2-f1)/100:f2;
p = 2*pi*f;
A = -20*log10(abs(freqz(num,den,p)));
plot(f, A, [speca(1) speca(2)], [speca(3) speca(4)], 'm:');
xlabel('frequency');
ylabel('attenuation (dB)');
title('Transition');
a = axis;
a(1) = f1;
a(2) = f2;
a(3) = 0;
a(4) = 1.5*speca(4);
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(1); f2 = speca(2);
f = f1:(f2-f1)/100:f2;
p = 2*pi*f;
A = -20*log10(abs(freqz(num,den,p)));
plot(f, A, [speca(1) speca(2)], [speca(4) speca(3)], 'm:');
xlabel('frequency');
ylabel('attenuation (dB)');
title('Transition');
a = axis;
a(1) = f1;
a(2) = f2;
a(3) = 0;
a(4) = 1.5*speca(4);
axis(a);
%set(gca,'Color',[0 0 0]);

elseif filnumb == 3

twoaxis=1;
subplot(211);
f1 = speca(1); f2 = speca(2);
f = f1:(f2-f1)/100:f2;
p = 2*pi*f;
A = -20*log10(abs(freqz(num,den,p)));
plot(f,A, ...
 [speca(1) speca(2)],[speca(5) speca(6)],'m:');
xlabel('frequency');
ylabel('attenuation (dB)');
title('Transition 1');
a = axis;
a(1) = f1;
a(2) = f2;
a(3) = 0;
a(4) = 1.5*max([speca(5) speca(7)]);
axis(a);
%set(gca,'Color',[0 0 0]);

subplot(212);
f1 = speca(3); f2 = speca(4);
f = f1:(f2-f1)/100:f2;
p = 2*pi*f;
A = -20*log10(abs(freqz(num,den,p)));
plot(f,A, ...
 [speca(3) speca(4)],[speca(6) speca(7)],'m:');
xlabel('frequency');
ylabel('attenuation (dB)');
title('Transition 2');
a = axis;
a(1) = f1;
a(2) = f2;
a(3) = 0;
a(4) = 1.5*max([speca(5) speca(7)]);
axis(a);
%set(gca,'Color',[0 0 0]);

elseif filnumb == 4

twoaxis=1;
subplot(211);
f1 = speca(1); f2 = speca(2);
f = f1:(f2-f1)/100:f2;
p = 2*pi*f;
A = -20*log10(abs(freqz(num,den,p)));
plot(f,A, ...
 [speca(1) speca(2)],[speca(5) speca(6)],'m:');
xlabel('frequency');
ylabel('attenuation (dB)');
title('Transition 1');
a = axis;
a(1) = f1;
a(2) = f2;
a(3) = 0;
a(4) = 1.5*speca(6);
axis(a);
%set(gca,'Color',[0 0 0]);

subplot(212);
f1 = speca(3); f2 = speca(4);
f = f1:(f2-f1)/100:f2;
p = 2*pi*f;
A = -20*log10(abs(freqz(num,den,p)));
plot(f,A, ...
 [speca(3) speca(4)],[speca(6) speca(7)],'m:');
xlabel('frequency');
ylabel('attenuation (dB)');
title('Transition 2');
a = axis;
a(1) = f1;
a(2) = f2;
a(3) = 0;
a(4) = 1.5*speca(6);
axis(a);
%set(gca,'Color',[0 0 0]);

end

⌨️ 快捷键说明

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