⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ftprpplt.m

📁 很多matlab的源代码
💻 M
📖 第 1 页 / 共 3 页
字号:
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 + -