📄 ftprpplt.m
字号:
function ftprpplt
%FTPRPPLT: Plotting control for FTPRPGUI
% ADSP Toolbox: Version 2.0
% For use with "Analog and Digital Signal Processing", 2nd Ed.
% Published by PWS Publishing Co.
%
% Ashok Ambardar, EE Dept. MTU, Houghton, MI 49931, USA
% http://www.ee.mtu/faculty/akambard.html
% e-mail: akambard@mtu.edu
% Copyright (c) 1998
f = gcf;
ui = get(f,'userdata');
sig_edt = ui(3);
prop_edt = ui(6);
disp_edt = ui(9);
autoplot = ui(12);
plt_btn = ui(13);
axs1 = ui(20);
axs2 = ui(23);
lin1 = ui(21);
lin2 = ui(22);
lin3 = ui(24);
lin4 = ui(25);
curs_btn = ui(18);
curs_dsp = ui(14:17);
disp = get(disp_edt,'value');
sig = get(sig_edt,'value');
prop = get(prop_edt,'value');
%%%%%%%%%%%
if sig == 1
if prop == 1 %SCALING
if disp == 1 %mag
t=-2:0.01:2;
sig=urect(t);
f_axs=-3:0.02:3;
spec = sinc(f_axs);
set(axs1,'xlim',[-2,2],'ylim',[0,2]);
set(axs2,'xlim',[-3,3],'ylim',[-1,3.5]);
for k=1:0.05:3
sig = urect(t/k);mag = k*sinc(k*f_axs);
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
set(lin3,'xdata',f_axs,'ydata',mag,...
'linestyle','-','erasemode','back','color','c');
drawnow
end
pause(1)
for k=3:-0.05:1
sig = urect(t/k);mag = k*sinc(k*f_axs);
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
set(lin3,'xdata',f_axs,'ydata',mag,...
'linestyle','-','erasemode','back','color','c');
drawnow
end
elseif disp == 2 %phase
t=-2:0.01:2;
sig=urect(t);
f_axs=-3:0.02:3;
spec = sinc(f_axs);
set(axs1,'xlim',[-2,2],'ylim',[0,2]);
set(axs2,'xlim',[-3,3],'ylim',[-3.5,3.5]);
for k=1:0.05:3
sig = urect(t/k);mag = k*sinc(k*f_axs);
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
drawnow
end
pause(1)
for k=3:-0.05:1
sig = urect(t/k);mag = k*sinc(k*f_axs);
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
drawnow
end
end
elseif prop == 2 %DELAY
if disp == 1
t=-2:0.01:2;
sig=urect(t);
f_axs=-3:0.02:3;
spec = sinc(f_axs);
set(axs1,'xlim',[-2,2],'ylim',[0,2]);
set(axs2,'xlim',[-3,3],'ylim',[-0.5,1.5]);
for k=0:-0.05:-1
sig = urect(t-k);mag = sinc(k*f_axs);
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
drawnow
end
pause(1)
for k=-1:0.05:1
sig = urect(t-k);mag = sinc(k*f_axs);
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
drawnow
end
pause(1)
for k=1:-0.05:0
sig = urect(t-k);mag = sinc(k*f_axs);
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
drawnow
end
elseif disp == 2
t=-2:0.01:2;
sig=urect(t);
f_axs=-3:0.02:3;
spec = sinc(f_axs);
set(axs1,'xlim',[-2,2],'ylim',[0,2]);
set(axs2,'xlim',[-3,3],'ylim',[-3.5,3.5]);
for k=0:-0.05:-1
sig = urect(t-k);mag = sinc(k*f_axs);
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
set(lin3,'xdata',f_axs,'ydata',-2*pi*f_axs*k,...
'linestyle','-','erasemode','back','color','c');
drawnow
end
pause(1)
for k=-1:0.05:1
sig = urect(t-k);mag = sinc(k*f_axs);
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
set(lin3,'xdata',f_axs,'ydata',-2*pi*f_axs*k,...
'linestyle','-','erasemode','back','color','c');
drawnow
end
pause(1)
for k=1:-0.05:0
sig = urect(t-k);mag = sinc(k*f_axs);
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
set(lin3,'xdata',f_axs,'ydata',-2*pi*f_axs*k,...
'linestyle','-','erasemode','back','color','c');
drawnow
end
end
elseif prop == 3 %MODULATION
if disp == 1 %Mag
t=-2:0.01:2;
sig=urect(t);
f_axs=-10:0.1:10;
spec = sinc(f_axs);
set(axs1,'xlim',[-2,2],'ylim',[-1.2,1.5]);
set(axs2,'xlim',[-10,10],'ylim',[-0.3,1.2]);
for k=0:0.1:8
sig = urect(t).*cos(2*pi*k*t);
mag = 0.5*(sinc(f_axs-k)+sinc(f_axs+k));
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
set(lin3,'xdata',f_axs,'ydata',mag,...
'linestyle','-','erasemode','back','color','c');
drawnow
end
pause(1)
for k=8:-0.1:0
sig = urect(t).*cos(2*pi*k*t);
mag = 0.5*(sinc(f_axs-k)+sinc(f_axs+k));
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
set(lin3,'xdata',f_axs,'ydata',mag,...
'linestyle','-','erasemode','back','color','c');
drawnow
end
elseif disp == 2 %phase
t=-2:0.01:2;
sig=urect(t);
f_axs=-3:0.1:3;
spec = sinc(f_axs);
set(axs1,'xlim',[-2,2],'ylim',[-1.2,1.5]);
set(axs2,'xlim',[-3,3],'ylim',[-3.5,3.5]);
for k=0:0.1:8
sig = urect(t).*cos(2*pi*k*t);
set(lin1,'xdata',t,'ydata',urect(t).*cos(2*pi*k*t),...
'linestyle','-','erasemode','back','color','y');
drawnow
end
pause(1)
for k=8:-0.1:0
sig = urect(t).*cos(2*pi*k*t);
set(lin1,'xdata',t,'ydata',urect(t).*cos(2*pi*k*t),...
'linestyle','-','erasemode','back','color','y');
drawnow
end
end
end
elseif sig == 2
if prop == 1 %SCALING
if disp == 1 %mag
t=-2:0.01:2;
sig=urect(t);
f_axs=-3:0.02:3;
spec = sinc(f_axs);spec = spec.*spec;
set(axs1,'xlim',[-2,2],'ylim',[0,2]);
set(axs2,'xlim',[-3,3],'ylim',[-1,3.5]);
for k=1:0.05:3
sig = tri(t/k);mag = sinc(k*f_axs);mag = k*mag.*mag;
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
set(lin3,'xdata',f_axs,'ydata',mag,...
'linestyle','-','erasemode','back','color','c');
drawnow
end
pause(1)
for k=3:-0.05:1
sig = tri(t/k);mag = sinc(k*f_axs);mag = k*mag.*mag;
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
set(lin3,'xdata',f_axs,'ydata',mag,...
'linestyle','-','erasemode','back','color','c');
drawnow
end
elseif disp == 2 %phase
t=-2:0.01:2;
sig=urect(t);
f_axs=-3:0.02:3;
spec = sinc(f_axs);
set(axs1,'xlim',[-2,2],'ylim',[0,2]);
set(axs2,'xlim',[-3,3],'ylim',[-3.5,3.5]);
for k=1:0.05:3
sig = tri(t/k);mag = sinc(k*f_axs);mag = k*mag.*mag;
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
% set(lin3,'xdata',f_axs,'ydata',mag,...
% 'linestyle','-','erasemode','back','color','c');
drawnow
end
pause(1)
for k=3:-0.05:1
sig = tri(t/k);mag = sinc(k*f_axs);mag = k*mag.*mag;
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
% set(lin3,'xdata',f_axs,'ydata',mag,...
% 'linestyle','-','erasemode','back','color','c');
drawnow
end
end
elseif prop == 2 %DELAY
if disp == 1
t=-5:0.01:5;
sig=tri(t);
f_axs=-3:0.02:3;
spec = sinc(f_axs);
set(axs1,'xlim',[-5,5],'ylim',[0,1.5]);
set(axs2,'xlim',[-3,3],'ylim',[-0.5,1.5]);
for k=0:-0.05:-1
sig = tri(t-k);mag = sinc(k*f_axs);mag = mag.*mag;
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
% set(lin3,'xdata',f_axs,'ydata',k*sinc(k*f_axs),...
% 'linestyle','-','erasemode','back','color','c');
drawnow
end
pause(1)
for k=-1:0.05:1
sig = tri(t-k);mag = sinc(k*f_axs);mag = mag.*mag;
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
% set(lin3,'xdata',f_axs,'ydata',k*sinc(k*f_axs),...
% 'linestyle','-','erasemode','back','color','c');
drawnow
end
pause(1)
for k=1:-0.05:0
sig = tri(t-k);mag = sinc(k*f_axs);mag = mag.*mag;
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
% set(lin3,'xdata',f_axs,'ydata',k*sinc(k*f_axs),...
% 'linestyle','-','erasemode','back','color','c');
drawnow
end
elseif disp == 2
t=-5:0.01:5;
sig=tri(t);
f_axs=-3:0.02:3;
spec = sinc(f_axs);
set(axs1,'xlim',[-5,5],'ylim',[0,1.5]);
set(axs2,'xlim',[-3,3],'ylim',[-3.5,3.5]);
for k=0:-0.05:-1
sig = tri(t-k);mag = sinc(k*f_axs);mag = mag.*mag;
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
set(lin3,'xdata',f_axs,'ydata',-2*pi*f_axs*k,...
'linestyle','-','erasemode','back','color','c');
drawnow
end
pause(1)
for k=-1:0.05:1
sig = tri(t-k);mag = sinc(k*f_axs);mag = mag.*mag;
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
set(lin3,'xdata',f_axs,'ydata',-2*pi*f_axs*k,...
'linestyle','-','erasemode','back','color','c');
drawnow
end
pause(1)
for k=1:-0.05:0
sig = tri(t-k);mag = sinc(k*f_axs);mag = mag.*mag;
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
set(lin3,'xdata',f_axs,'ydata',-2*pi*f_axs*k,...
'linestyle','-','erasemode','back','color','c');
drawnow
end
end
elseif prop == 3 %MODULATION
if disp == 1 %Mag
t=-2:0.01:2;
sig=tri(t);
f_axs=-10:0.1:10;
spec = sinc(f_axs);
set(axs1,'xlim',[-2,2],'ylim',[-1.2,1.2]);
set(axs2,'xlim',[-10,10],'ylim',[-0.3,1.2]);
for k=0:0.1:8
sig = tri(t).*cos(2*pi*k*t);mag1=sinc(f_axs-k);mag2=sinc(f_axs+k);
mag = 0.5*(mag1.*mag1+mag2.*mag2);
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
set(lin3,'xdata',f_axs,'ydata',mag,...
'linestyle','-','erasemode','back','color','c');
drawnow
end
pause(1)
for k=8:-0.1:0
sig = tri(t).*cos(2*pi*k*t);mag1=sinc(f_axs-k);mag2=sinc(f_axs+k);
mag = 0.5*(mag1.*mag1+mag2.*mag2);
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
set(lin3,'xdata',f_axs,'ydata',mag,...
'linestyle','-','erasemode','back','color','c');
drawnow
end
elseif disp == 2 %phase
t=-2:0.01:2;
sig=tri(t);
f_axs=-3:0.1:3;
spec = sinc(f_axs);
set(axs1,'xlim',[-2,2],'ylim',[-1.2,1.2]);
set(axs2,'xlim',[-3,3],'ylim',[-3.5,3.5]);
for k=0:0.1:8
sig = tri(t).*cos(2*pi*k*t);
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
% set(lin3,'xdata',f_axs,'ydata',0.5*(sinc(f_axs-k)+sinc(f_axs+k)),...
% 'linestyle','-','erasemode','back','color','c');
drawnow
end
pause(1)
for k=8:-0.1:0
sig = tri(t).*cos(2*pi*k*t);
set(lin1,'xdata',t,'ydata',sig,...
'linestyle','-','erasemode','back','color','y');
% set(lin3,'xdata',f_axs,'ydata',0.5*(sinc(f_axs-k)+sinc(f_axs+k)),...
% 'linestyle','-','erasemode','back','color','c');
drawnow
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -