www.gusucode.com > signal 工具箱matlab源码程序 > signal/+fdesign/@abstractmeas/tostring.m
function str = tostring(this) %TOSTRING % Copyright 2005-2010 The MathWorks, Inc. % Get all of the field names f = fieldnames(this); % Remove 'NormalizedFrequency and Fs because these are special cased above. f(end-1:end) = []; param = cell(length(f)+1, 1); value = param; param{1} = getString(message('signal:dfilt:info:SamplingFrequency')); if this.NormalizedFrequency value{1} = getString(message('signal:dfilt:info:NAnormalizedFrequency')); fpost = ''; m = 1; else [fs m prefix] = engunits(this.Fs); fpost = sprintf(' %sHz', prefix); value{1} = [num2str(fs) fpost]; end for indx = 1:length(f) num = str2num(f{indx}(end)); %#ok<ST2NM> if isempty(num), d = ''; else switch num case 1 d = [getString(message('signal:dfilt:info:First')) ' ']; case 2 d = [getString(message('signal:dfilt:info:Second')) ' ']; case 3 d = [getString(message('signal:dfilt:info:Third')) ' ']; case 4 d = [getString(message('signal:dfilt:info:Fourth')) ' ']; end end switch lower(f{indx}) case {'transitionwidth', 'transitionwidth1', 'transitionwidth2'}; d = [d getString(message('signal:dfilt:info:TransitionWidth'))]; %#ok<*AGROW> post = fpost; %#ok<*NASGU> case {'lowtransitionwidth'}; d = [d getString(message('signal:dfilt:info:LowTransitionWidth'))]; post = fpost; case {'hightransitionwidth'}; d = [d getString(message('signal:dfilt:info:HighTransitionWidth'))]; post = fpost; case {'apass', 'apass1', 'apass2'} d = [d getString(message('signal:dfilt:info:PassbandRipple'))]; case {'astop', 'astop1', 'astop2'} d = [d getString(message('signal:dfilt:info:StopbandAtten'))]; case {'fpass', 'fpass1', 'fpass2'} d = [d getString(message('signal:dfilt:info:PassbandEdge'))]; case {'fstop', 'fstop1', 'fstop2'} d = [d getString(message('signal:dfilt:info:StopbandEdge'))]; case {'f3db', 'f6db', 'f3db1', 'f6db1', 'f3db2', 'f6db2'} d = [d f{indx}(2) getString(message('signal:dfilt:info:dBPoint'))]; case {'nomgrpdelay'} d = getString(message('signal:dfilt:info:NominalGroupDelay')); case {'fracdelayerror'} d = getString(message('signal:dfilt:info:FractionalDelayError')); case {'f0'}, d = getString(message('signal:dfilt:info:CenterFrequency')); case {'bw'}, d = getString(message('signal:dfilt:info:Bandwidth')); case {'g0'}, d = getString(message('signal:dfilt:info:CenterFrequencyGain')); case {'gref'}, d = getString(message('signal:dfilt:info:ReferenceGain')); case {'gbw'}, d = getString(message('signal:dfilt:info:BandwidthGain')); case {'gpass'}, d = getString(message('signal:dfilt:info:PassbandGain')); case {'gstop'}, d = getString(message('signal:dfilt:info:StopbandGain')); case {'bwpass'}, d = getString(message('signal:dfilt:info:PassbandBandwidth')); case {'bwstop'}, d = getString(message('signal:dfilt:info:StopbandBandwidth')); case {'notchfrequencies'}, d = getString(message('signal:dfilt:info:NotchFrequencies')); case {'peakfrequencies'}, d = getString(message('signal:dfilt:info:PeakFrequencies')); case {'gnotch'}, d = getString(message('signal:dfilt:info:NotchGains')); case {'gpeak'}, d = getString(message('signal:dfilt:info:PeakGains')); case {'qa'}, d = getString(message('signal:dfilt:info:QualityFactoraudio')); case {'totalgroupdelay'} d = getString(message('signal:dfilt:info:TotalGroupDelay')); case {'freqresponse'} d = getString(message('signal:dfilt:info:FrequencyResponse')); otherwise d = getTranslatedString('signal:dfilt:info',f{indx}); end if isempty(this.(f{indx})) if strcmpi(f{indx},'qa') value{indx+1} = getString(message('signal:dfilt:info:NotMeasurableForN2')); else value{indx+1} = getString(message('signal:dfilt:info:Unknown')); end else if strcmpi(f{indx}, 'magnitudes') || strncmpi(f{indx}, 'g', 1) || (strncmpi(f{indx}, 'a', 1) && ~strcmpi(f{indx}, 'amplitudes')) post = ' dB'; value{indx+1} = num2str(this.(f{indx})); elseif any(strfind(lower(f{indx}), 'delay')) delay = this.(f{indx}); post = sprintf(' %s', getString(message('signal:dfilt:info:samples'))); value{indx+1} = num2str(delay); if exist('fs') %#ok<EXIST> [~, m prefix] = engunits(delay,'time'); post = sprintf(' %s', prefix); end value{indx+1} = num2str(delay*m); elseif any(strfind(lower(f{indx}), 'amplitudes')) || any(strfind(lower(f{indx}), 'freqresponse')) || strcmpi(f{indx},'q') || strcmpi(f{indx},'qa') value{indx+1} = num2str(this.(f{indx})); post = ''; else if this.NormalizedFrequency value{indx+1} = num2str(this.(f{indx})); post = ''; else [val , ~, valprefix] = engunits(this.(f{indx})); post = sprintf(' %sHz', valprefix); value{indx+1} = num2str(val); end end value{indx+1} = sprintf('%s%s', value{indx+1}, post); end param{indx+1} = d; end str = [char(param) repmat(' : ', length(param), 1) char(value)]; % [EOF]