X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Fsignal-1.1.3%2Ftfestimate.m;fp=octave_packages%2Fsignal-1.1.3%2Ftfestimate.m;h=35b1216f640b7c2c39cacb51ad775c7eab29cb17;hp=0000000000000000000000000000000000000000;hb=c880e8788dfc484bf23ce13fa2787f2c6bca4863;hpb=1705066eceaaea976f010f669ce8e972f3734b05 diff --git a/octave_packages/signal-1.1.3/tfestimate.m b/octave_packages/signal-1.1.3/tfestimate.m new file mode 100644 index 0000000..35b1216 --- /dev/null +++ b/octave_packages/signal-1.1.3/tfestimate.m @@ -0,0 +1,51 @@ +%% Copyright (C) 2006 Peter V. Lanspeary +%% +%% This program is free software; you can redistribute it and/or modify it under +%% the terms of the GNU General Public License as published by the Free Software +%% Foundation; either version 3 of the License, or (at your option) any later +%% version. +%% +%% This program is distributed in the hope that it will be useful, but WITHOUT +%% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +%% details. +%% +%% You should have received a copy of the GNU General Public License along with +%% this program; if not, see . + +%% Usage: +%% [Pxx,freq]=tfestimate(x,y,Nfft,Fs,window,overlap,range,plot_type,detrend) +%% +%% Estimate transfer function of system with input "x" and output "y". +%% Use the Welch (1967) periodogram/FFT method. +%% See "help pwelch" for description of arguments, hints and references. + +function [varargout] = tfestimate(varargin) + %% + %% Check fixed argument + if ( nargin<2 ) + error( 'tfestimate: Need at least 2 args. Use help tfestimate' ); + end + nvarargin = length(varargin); + %% remove any pwelch RESULT args and add 'cross' + for iarg=1:nvarargin + arg = varargin{iarg}; + if ( ~isempty(arg) && ischar(arg) && ( strcmp(arg,'power') || ... + strcmp(arg,'cross') || strcmp(arg,'trans') || ... + strcmp(arg,'coher') || strcmp(arg,'ypower') )) + varargin{iarg} = []; + end + end + varargin{nvarargin+1} = 'trans'; + %% + if ( nargout==0 ) + pwelch(varargin{:}); + elseif ( nargout==1 ) + Pxx = pwelch(varargin{:}); + varargout{1} = Pxx; + elseif ( nargout>=2 ) + [Pxx,f] = pwelch(varargin{:}); + varargout{1} = Pxx; + varargout{2} = f; + end +end