Home > chronux_code > exploratory > correlations > pointbinned > cohgrampb.m

cohgrampb

PURPOSE ^

Multi-taper time-frequency coherence,cross-spectrum and individual spectra - two binned point processes

SYNOPSIS ^

function [C,phi,S12,S1,S2,t,f,zerosp,confC,phierr,Cerr]=cohgrampb(data1,data2,movingwin,tapers,pad,Fs,fpass,err,trialave,fscorr)

DESCRIPTION ^

 Multi-taper time-frequency coherence,cross-spectrum and individual spectra - two binned point processes
 process 

 Usage:

 [C,phi,S12,S1,S2,t,f,confC,phierr,Cerr]=cohgrampb(data1,data2,movingwin,tapers,nfft,Fs,fpass,err,trialave)
 Input: 
 Note units have to be consistent. Thus, if movingwin is in seconds, Fs
 has to be in Hz. see chronux.m for more information.

       data1 (binned point process data in form samples x trials) -- required
       data2 (binned point process data in form samples x trials) -- required
       movingwin (in the form [window winstep] -- required
       tapers (precalculated tapers from dpss, or in the form [NW K] e.g [3 5]) -- optional. If not 
                                                 specified, use [NW K]=[3 5]
        pad            (padding factor for the FFT) - optional. Defaults to 0.  
                       e.g. For N = 500, if PAD = 0, we pad the FFT 
                       to 512 points; if PAD = 2, we pad the FFT
                       to 2048 points, etc.
       Fs   (sampling frequency) - optional. Default 1.
       fpass    (frequency band to be used in the calculation in the form
                                   [fmin fmax])- optional. 
                                   Default all frequencies between 0 and Fs/2
       err  (error calculation [1 p] - Theoretical error bars; [2 p] - Jackknife error bars
                                   [0 p] or 0 - no error bars) - optional. Default 0.
       trialave (average over trials when 1, don't average when 0) - optional. Default 0
       fscorr   (finite size corrections, 0 (don't use finite size corrections) or 1 (use finite size corrections) - optional
                (available only for spikes). Defaults 0.
 Output:
       C (abs of coherency frequency index x trials if no trial averaging)
       phi (phase of coherency frequency x trials if no trial averaging)
       S12 (cross spectrum - time x frequencies x trials for no trial averaging)
       S1 (spectrum 1- time x frequencies x trials for no trial averaging)
       S2 (spectrum 2- time x frequencies x trials for no trial averaging)
       t (time)
       f (frequencies)
       zerosp (1 for windows where spikes in either channel were absent,zero otherwise)
       confC (confidence level for c at 1-p %)
       phierr (error bars for phi)
       Cerr  (Jackknife error bars for C - use only for Jackknife)

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [C,phi,S12,S1,S2,t,f,zerosp,confC,phierr,Cerr]=cohgrampb(data1,data2,movingwin,tapers,pad,Fs,fpass,err,trialave,fscorr)
0002 % Multi-taper time-frequency coherence,cross-spectrum and individual spectra - two binned point processes
0003 % process
0004 %
0005 % Usage:
0006 %
0007 % [C,phi,S12,S1,S2,t,f,confC,phierr,Cerr]=cohgrampb(data1,data2,movingwin,tapers,nfft,Fs,fpass,err,trialave)
0008 % Input:
0009 % Note units have to be consistent. Thus, if movingwin is in seconds, Fs
0010 % has to be in Hz. see chronux.m for more information.
0011 %
0012 %       data1 (binned point process data in form samples x trials) -- required
0013 %       data2 (binned point process data in form samples x trials) -- required
0014 %       movingwin (in the form [window winstep] -- required
0015 %       tapers (precalculated tapers from dpss, or in the form [NW K] e.g [3 5]) -- optional. If not
0016 %                                                 specified, use [NW K]=[3 5]
0017 %        pad            (padding factor for the FFT) - optional. Defaults to 0.
0018 %                       e.g. For N = 500, if PAD = 0, we pad the FFT
0019 %                       to 512 points; if PAD = 2, we pad the FFT
0020 %                       to 2048 points, etc.
0021 %       Fs   (sampling frequency) - optional. Default 1.
0022 %       fpass    (frequency band to be used in the calculation in the form
0023 %                                   [fmin fmax])- optional.
0024 %                                   Default all frequencies between 0 and Fs/2
0025 %       err  (error calculation [1 p] - Theoretical error bars; [2 p] - Jackknife error bars
0026 %                                   [0 p] or 0 - no error bars) - optional. Default 0.
0027 %       trialave (average over trials when 1, don't average when 0) - optional. Default 0
0028 %       fscorr   (finite size corrections, 0 (don't use finite size corrections) or 1 (use finite size corrections) - optional
0029 %                (available only for spikes). Defaults 0.
0030 % Output:
0031 %       C (abs of coherency frequency index x trials if no trial averaging)
0032 %       phi (phase of coherency frequency x trials if no trial averaging)
0033 %       S12 (cross spectrum - time x frequencies x trials for no trial averaging)
0034 %       S1 (spectrum 1- time x frequencies x trials for no trial averaging)
0035 %       S2 (spectrum 2- time x frequencies x trials for no trial averaging)
0036 %       t (time)
0037 %       f (frequencies)
0038 %       zerosp (1 for windows where spikes in either channel were absent,zero otherwise)
0039 %       confC (confidence level for c at 1-p %)
0040 %       phierr (error bars for phi)
0041 %       Cerr  (Jackknife error bars for C - use only for Jackknife)
0042 
0043 if nargin < 3; error('Need data1 and data2 and window parameters'); end;
0044 if nargin < 4; tapers=[3 5]; end;
0045 if nargin < 5;pad=0;end;
0046 if nargin < 6; Fs=1; end;
0047 if nargin < 7; fpass=[0 Fs/2]; end;
0048 if nargin < 8; err=0; end;
0049 if nargin < 9; trialave=0;end;
0050 if nargin < 10; fscorr=0;end;
0051 
0052 if isempty(tapers); tapers=[3 5]; end;
0053 if isempty(pad);pad=0;end;
0054 if isempty(Fs); Fs=1; end;
0055 if isempty(fpass); fpass=[0 Fs/2]; end;
0056 if isempty(err); err=0; end;
0057 if isempty(trialave); trialave=0;end;
0058 if isempty(fscorr);fscorr=0;end;
0059 
0060 if nargout > 10 & err(1)~=2; 
0061     error('Cerr computed only for Jackknife. Correct inputs and run again');
0062 end;
0063 [N1,C1,N2,C2]=check_consistency(data1,data2);
0064 N=N1;
0065 
0066 Nwin=round(Fs*movingwin(1)); % number of samples in window
0067 Nstep=round(movingwin(2)*Fs); % number of samples to step through
0068 nfft=2^(nextpow2(Nwin)+pad);
0069 [f,findx]=getfgrid(Fs,nfft,fpass); 
0070 tapers=dpsschk(tapers,Nwin,Fs); % check tapers
0071 
0072 winstart=1:Nstep:N1-Nwin+1;
0073 nw=length(winstart);
0074 for n=1:nw;
0075    indx=winstart(n):winstart(n)+Nwin-1;
0076    datawin1=data1(indx,:);datawin2=data2(indx,:);
0077    if nargout==11;
0078      [c,ph,s12,s1,s2,f,zsp,confc,phie,cerr]=coherencypb(datawin1,datawin2,tapers,pad,Fs,fpass,err,trialave,fscorr);
0079      confC=confc;
0080      phierr(1,n,:,:)=squeeze(phie(1,:,:));
0081      phierr(2,n,:,:)=squeeze(phie(2,:,:));
0082      Cerr(1,n,:,:)=squeeze(cerr(1,:,:));
0083      Cerr(2,n,:,:)=squeeze(cerr(2,:,:));
0084    elseif nargout==10;
0085      [c,ph,s12,s1,s2,f,zsp,confc,phie]=coherencypb(datawin1,datawin2,tapers,pad,Fs,fpass,err,trialave,fscorr);
0086      confC=confc;
0087      phierr(1,n,:,:)=squeeze(phie(1,:,:));
0088      phierr(2,n,:,:)=squeeze(phie(2,:,:));
0089    else
0090      [c,ph,s12,s1,s2,f,zsp]=coherencycpb(datawin1,datawin2,tapers,pad,Fs,fpass,err,trialave,fscorr);
0091    end;
0092    C(n,:,:)=c;
0093    phi(n,:,:)=ph;
0094    S12(n,:,:)=s12;
0095    S1(n,:,:)=s1;
0096    S2(n,:,:)=s2;
0097    zerosp(n,:)=zsp;
0098 end;
0099 C=squeeze(C); phi=squeeze(phi);S12=squeeze(S12); S1=squeeze(S1); S2=squeeze(S2);zerosp=squeeze(zerosp);
0100 if nargout==11;Cerr=squeeze(Cerr);end;
0101 if nargout==10; phierr=squeeze(phierr);end
0102 winmid=winstart+round(Nwin/2);
0103 t=winmid/Fs;

Generated on Tue 07-Jun-2005 12:20:32 by m2html © 2003