X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Fsignal-1.1.3%2Fmscohere.m;fp=octave_packages%2Fsignal-1.1.3%2Fmscohere.m;h=2cd7674aebb73f36670bec10dcc48afb55bb5b5a;hp=0000000000000000000000000000000000000000;hb=f5f7a74bd8a4900f0b797da6783be80e11a68d86;hpb=1705066eceaaea976f010f669ce8e972f3734b05 diff --git a/octave_packages/signal-1.1.3/mscohere.m b/octave_packages/signal-1.1.3/mscohere.m new file mode 100644 index 0000000..2cd7674 --- /dev/null +++ b/octave_packages/signal-1.1.3/mscohere.m @@ -0,0 +1,52 @@ +%% 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]=mscohere(x,y,Nfft,Fs,window,overlap,range,plot_type,detrend) +%% +%% Estimate (mean square) coherence of signals "x" and "y". +%% Use the Welch (1967) periodogram/FFT method. +%% See "help pwelch" for description of arguments, hints and references + + +function [varargout] = mscohere(varargin) + %% + %% Check fixed argument + if ( nargin<2 ) + error( 'mscohere: Need at least 2 args. Use help mscohere' ); + 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} = 'coher'; + %% + 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