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

📄 yhzviewini.m

📁 信号实验常用的simulink模型和mfile,可直接在matlan下运行。
💻 M
📖 第 1 页 / 共 2 页
字号:
    %   cb1_pos(3) = label_ext(3)+checkbox_width;
    %   set(ud.ht.cb(1),'position', cb1_pos);
    %end
    
    cb2_pos = [phf(1)+sz.fus phf(2)+sz.uh+sz.fus sz.bw sz.uh];
    ud.ht.cb(2) = uicontrol(cb_props{:},...
        'string','相位',...
        'tag','phasecheck',...
        'value',ud.prefs.plots(2),...
	'callback','yhzfdview(''cb'',2)',...
	'position',cb2_pos);
    %if ~isunix
    %   label_ext = get(ud.ht.cb(2),'extent');
    %   cb2_pos(3) = label_ext(3)+checkbox_width;
    %   set(ud.ht.cb(2),'position', cb2_pos);
    %end    

    ud.ht.cb(3) = uicontrol(cb_props{:},...
       'string','群时延',...
       'tag','groupdelay',...
       'value',ud.prefs.plots(3),...
       'callback','yhzfdview(''cb'',3)',...
       'position',[pf(1)+2*sz.fus pf(2)+4*sz.fus+3*sz.uh sz.bw sz.uh]);
    ud.ht.cb(4) = uicontrol(cb_props{:},...
       'string','零极点图',...
       'tag','polezero',...
       'value',ud.prefs.plots(4),...
       'callback','yhzfdview(''cb'',4)',...
       'position',[pf(1)+2*sz.fus pf(2)+3*sz.fus+2*sz.uh sz.bw sz.uh]);
    ud.ht.cb(5) = uicontrol(cb_props{:},...
       'string','脉冲响应',...
       'tag','impresp',...
       'value',ud.prefs.plots(5),...
       'callback','yhzfdview(''cb'',5)',...
       'position',[pf(1)+2*sz.fus pf(2)+2*sz.fus+sz.uh sz.bw sz.uh]);
    ud.ht.cb(6) = uicontrol(cb_props{:},...
       'string','阶跃响应',...
       'tag','stepresp',...
       'value',ud.prefs.plots(6),...
       'callback','yhzfdview(''cb'',6)',...
       'position',[pf(1)+2*sz.fus pf(2)+sz.fus sz.bw sz.uh]);

    % ====================================================================
    % Popups
    pop_props = {'units','pixels',...
              'style','popup','horizontalalignment','left'};

    % Tweak position & size of popups: [horz_pos ver_pos width height]
    %switch computer
    %case 'MAC2'
    %   popTweak = [0 -2 0 0];
    %case 'PCWIN'
    popTweak = [0  0 0 0];
    %otherwise  % UNIX
    %   popTweak = [0 -2 0 0];
    %end
  
    switch ud.prefs.magmode
    case 'linear'
       magpopvalue = 1;
    case 'log'
       magpopvalue = 2;
    case 'decibels'
       magpopvalue = 3;
    end
    
    ud.ht.magpop = uicontrol(pop_props{:},...
       'string',{'linear'; 'log'; 'decibels'},...
       'tag','maglist',...
       'callback','yhzfdview(''magpop'')',...
       'value',magpopvalue,...
       'position',[mf(1:2)+sz.fus+[indentPop 0] sz.bw-indentPop sz.uh]+popTweak);

    switch ud.prefs.phasemode
    case 'degrees'
       phasepopvalue = 1;
    case 'radians'
       phasepopvalue = 2;
    end

    ud.ht.phasepop = uicontrol(pop_props{:},...
       'string',{'degrees'; 'radians'},...
       'tag','phaselist',...
       'callback','yhzfdview(''phasepop'')',...
       'value',phasepopvalue,...
       'position',[phf(1:2)+sz.fus+[indentPop 0] sz.bw-indentPop sz.uh]+popTweak);
 
    switch ud.prefs.freqscale
    case 'linear'
        fscalevalue = 1;
    case 'log'
        fscalevalue = 2;
    end
    ud.ht.fscalepop = uicontrol(pop_props{:},...
       'string',{'linear'; 'log'},...
       'tag','freqscale',...
       'callback','yhzfdview(''fscalepop'')',...
       'value',fscalevalue,...
       'position',[fsf(1:2)+sz.fus+[indentPop 0] sz.bw-indentPop sz.uh]+popTweak);

    ud.ht.frangepop = uicontrol(pop_props{:},...
       'string',{'[0..Fs/2]'; '[0..Fs]'; '[-Fs/2..Fs/2]'},...
       'tag','freqrange',...
       'callback','yhzfdview(''frangepop'')',...
       'value',ud.prefs.freqrange,...
       'position',[frf(1:2)+sz.fus+[indentPop 0] sz.bw-indentPop sz.uh]+popTweak);

    % ====================================================================
    % Create axes:

    ax_props = {
         'units','pixels',...
         'box','on',...
         'parent',fig};

    % create axes:
    for i=1:6
        ud.ht.a(i) = axes(ax_props{:});
    end

    ud.titles = {   'Magnitude' 
                    { 'Phase (degrees)' 'Phase (radians)' } 
                    'Group Delay' 
                    'Zeros & Poles' 
                    'Impulse Response'
                    'Step Response'};

    ud.tags =    { 'magaxes'
                   'phaseaxes'
                   'delayaxes'
                   'pzaxes'
                   'impaxes'
                   'stepaxes' };

    ud.xlabels = {  'Frequency'
                    'Frequency'
                    'Frequency'
                    'Real'
                    'Time'
                    'Time' };
  
    ud.ylabels = {  ''
                    ''
                    ''
                    'Imaginary'
                    ''
                    ''};

    th = get(ud.ht.a,'title');
    set([th{[1 3:6]}],{'string'},ud.titles([1 3:6]))
    switch ud.prefs.phasemode
    case 'degrees'
        set(th{2},'string',ud.titles{2}(1))
    case 'radians'
        set(th{2},'string',ud.titles{2}(2))
    end
    if fscalevalue == 2
        set(ud.ht.a([1 2 3]),'xscale','log')
    end
    if magpopvalue == 2
        set(ud.ht.a(1),'yscale','log')
    end

    set([th{:}],{'tag'},ud.tags)
    set(ud.ht.a,{'tag'},ud.tags)
    xh = get(ud.ht.a,'xlabel');
    set([xh{:}],{'string'},ud.xlabels,{'tag'},ud.tags)
    yh = get(ud.ht.a,'ylabel');
    set([yh{:}],{'string'},ud.ylabels,{'tag'},ud.tags)

    % ====================================================================
    % initialize lines
    ud.lines.mag = [];   
    ud.lines.phase = [];   
    ud.lines.grpdelay = [];   
    ud.lines.z = [];   
    ud.lines.p = [];   
    ud.lines.zgrid = [];
    ud.lines.imp = [];   
    ud.lines.impstem = [];   
    ud.lines.impc = [];   
    ud.lines.impstemc = [];   
    ud.lines.step = [];   
    ud.lines.stepstem = [];   
    ud.lines.stepc = [];   
    ud.lines.stepstemc = [];   
    
    % ====================================================================
    % Save userdata structure
    set(fig,'userdata',ud)
    
    fignum=fig;
    
    % ====================================================================
    % now add toolbar for filter viewer
    btnlist = { 'mousezoom'  'zoomout'  'help'}';
    tb_callbackstr = {
       'sbswitch(''yhzfvzoom'',''mousezoom'')'
       'sbswitch(''yhzfvzoom'',''zoomout'')'
       'sbswitch(''yhzfdview'',''help'')' };
    yhzzoombar('fig',fig,'btnlist',btnlist,'callbacks',tb_callbackstr,...
            'left_width',ud.resize.leftwidth); 
    set(fig,'resizefcn',...
            yhzappstr(get(fig,'resizefcn'),'sbswitch(''fvresize'')'))
    %set(fig,'windowbuttonmotionfcn',...
    %      ['sbswitch(''fvmotion'',' num2str(ud.toolnum) ')'])
    set(fig,'HandleVisibility','callback')
        
    yhzfvresize(1,fig)   % position axes

    % Do the plots
    yhzfdview('plots',ud.prefs.plots)

    set(fig,'visible','on')
    set(0,'showhiddenhandles',save_shh)

    function fl = Localframelab(framehand,labelstr,lfs,lh,varargin)
    % FRAMELAB Create UIControl of style static text for frame label.
    %   Assumes all positions and units are in pixels.
    %   Inputs:
    %     framehand - handle of frame
    %     labelstr - string 
    %     lfs - spacing between label text and left edge of frame 
    %     lh - label height 
    %     varargin{:} - param/value pairs for uicontrol creation
    %   Outputs:
    %     fl - frame label handle
 
    %   Copyright (c) 1988-97 by The MathWorks, Inc.
    % $Revision: 1.6 $

    pos = get(framehand,'position');

    lpos = [pos(1)+lfs pos(2)+pos(4)-lh/2 100 lh];
    
    l = uicontrol('style','text',...
          'units','pixels',...
          'string',[labelstr ' '],...
          'position',lpos,varargin{:});

    ex = get(l,'extent');

    set(l,'position',[lpos(1:2) ex(3) lpos(4)])
    set(l,'horizontalalignment','center')

    if nargout > 0
        fl = l;
     end
     



   
    % WORK NEEDS TO BE DONE:
    %      % ADD FILTER INFORMATION: ud.filt.{label, Fs,.......}
    %      % Adjust the uicontrols
    %      % All button's callbackStr
    %       Do the Plots Origianlly Line469
    %      % Line 462, 462
    %       Tool Bar Call Back String
    %       464,465

⌨️ 快捷键说明

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