www.gusucode.com > signal 工具箱matlab源码程序 > signal/+fdesign/@fracdelaymeas/fracdelaymeas.m
classdef (CaseInsensitiveProperties=true, TruncatedProperties=true) fracdelaymeas < fdesign.abstractmeas %FRACDELAYMEAS Construct a FRACDELAYMEAS object. % Copyright 2004-2015 The MathWorks, Inc. %fdesign.fracdelaymeas class % fdesign.fracdelaymeas extends fdesign.abstractmeas. % % fdesign.fracdelaymeas properties: % NormalizedFrequency - Property is of type 'bool' (read only) % Fs - Property is of type 'mxArray' (read only) % Fpass1 - Property is of type 'mxArray' (read only) % Fpass2 - Property is of type 'mxArray' (read only) % Apass - Property is of type 'mxArray' (read only) % NomGrpDelay - Property is of type 'mxArray' (read only) % FracDelayError - Property is of type 'mxArray' (read only) % % fdesign.fracdelaymeas methods: % getprops2norm - Get the props2norm. % isspecmet - True if the object is specmet. % measureripple - Return the ripple in the passband. % setprops2norm - Set the props2norm. % thisfindfpass - If both Fpass and fderr are empty we cannot find an Fpass. properties (SetAccess=protected, AbortSet, SetObservable, GetObservable) %FPASS1 Property is of type 'mxArray' (read only) Fpass1 = []; %FPASS2 Property is of type 'mxArray' (read only) Fpass2 = []; %APASS Property is of type 'mxArray' (read only) Apass = []; %NOMGRPDELAY Property is of type 'mxArray' (read only) NomGrpDelay = []; %FRACDELAYERROR Property is of type 'mxArray' (read only) FracDelayError = []; end methods % constructor block function this = fracdelaymeas(hfilter, hfdesign, varargin) %FRACDELAYMEAS Construct a FRACDELAYMEAS object. narginchk(1,inf); % this = fdesign.fracdelaymeas; % Parse the inputs to get the specification and the measurements list. minfo = parseconstructorinputs(this, hfilter, hfdesign, varargin{:}); if this.NormalizedFrequency, Fs = 2; else, Fs = this.Fs; end [gpd w]= grpdelay(hfilter,1024,Fs); % Measure the fractional delay filter. if isempty(minfo.Apass), this.Fpass1 = findfpass(this, hfilter, minfo.Fpass1, minfo.Apass, 'up',... [],{gpd w minfo.FracDelayError 'up' Fs}); this.Fpass2 = findfpass(this, hfilter, minfo.Fpass2, minfo.Apass, 'down',... [],{gpd w minfo.FracDelayError 'down' Fs}); else this.Fpass1 = findfpass(this, hfilter, minfo.Fpass1, minfo.Apass, 'up'); this.Fpass2 = findfpass(this, hfilter, minfo.Fpass2, minfo.Apass, 'down'); end % Measure Apass always after Fpass1 and Fpass2 this.Apass = measureripple(this, hfilter, minfo.Fpass1, minfo.Fpass2, minfo.Apass); if this.NormalizedFrequency, this.NomGrpDelay = gpd(1)-hfilter.FracDelay; else this.NomGrpDelay = (gpd(1)-hfilter.FracDelay)/Fs; end this.FracDelayError = measurefracdelayerr(this, hfilter, minfo.Fpass1, minfo.Fpass2, ... minfo.Apass, minfo.FracDelayError); end % fracdelaymeas end % constructor block methods function set.Fpass1(obj,value) obj.Fpass1 = value; end %------------------------------------------------------------------------ function set.Fpass2(obj,value) obj.Fpass2 = value; end %------------------------------------------------------------------------ function set.Apass(obj,value) obj.Apass = value; end %------------------------------------------------------------------------ function set.NomGrpDelay(obj,value) obj.NomGrpDelay = value; end %------------------------------------------------------------------------ function set.FracDelayError(obj,value) obj.FracDelayError = value; end end % set and get functions methods % public methods props2norm = getprops2norm(this) b = isspecmet(this,hfdesign) rip = measureripple(this,hfilter,Fstart,Fend,Apass) setprops2norm(this,props2norm) F = thisfindfpass(this,hfilter,cellarray) end % public methods methods (Hidden) % possibly private or hidden fderr = measurefracdelayerr(this,hfilter,Fstart,Fend,Apass,FracDelayError) end % possibly private or hidden end % classdef