[Eeglablist] ICA after PREP pipeline incl channel interpolation

James Jones-Rounds jj324 at cornell.edu
Wed Aug 17 09:43:39 PDT 2016


Hi Alexandra,

My understanding (I'm not an expert in ICA, specifically, but I've been
using it for years), is that all your channels will be fed into ICA, and
backprojecting components into channel space will do that projection onto
all the 128 channels. So even though you interpolated some bad channels
pre-ICA, all the channels get used. The rank reduction, in my crude
understanding, means that the ICA will take the 128 channels but will only
look for 115 unique components, because it's assuming that the interpolated
channels are not unique sources of data (since they're now based on
neighboring channels). So I wouldn't worry too much, but that's just my two
cents.

James


On Wed, Aug 17, 2016 at 12:34 PM, <eeglablist-request at sccn.ucsd.edu> wrote:

> Send eeglablist mailing list submissions to
>         eeglablist at sccn.ucsd.edu
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         https://sccn.ucsd.edu/mailman/listinfo/eeglablist
> or, via email, send a message with subject or body 'help' to
>         eeglablist-request at sccn.ucsd.edu
>
> You can reach the person managing the list at
>         eeglablist-owner at sccn.ucsd.edu
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of eeglablist digest..."
>
> Today's Topics:
>
>    1. ICA after PREP pipeline incl channel interpolation
>       (Alexandra Yvonne Vossen)
>    2. EEG neurofeedback for emotion (Amin Dehghani)
>    3. Fwd: Units in output of timefreq - wavelet normalization
>       (Norman Forschack)
>    4. Automation (Mike Urich)
>    5. Re: problem in BCILAB-1.1 version (brian baloch) (Alex Abe)
>
>
> ---------- Forwarded message ----------
> From: Alexandra Yvonne Vossen
> To: "eeglablist at sccn.ucsd.edu" <eeglablist at sccn.ucsd.edu>
> Cc:
> Date: Tue, 16 Aug 2016 17:18:01 +0100
> Subject: [Eeglablist] ICA after PREP pipeline incl channel interpolation
>
> Dear all,
>
> I realise this is a popular question but I am really uncertain what
> happens to my data in my preprocessing pipeline. I am quite new to ICA/PCA
> decomposition.
>
> First, the raw data are run through the PREP pipeline (in EEGLAB 13.5.4b),
> including the (spherical) interpolation of noisy channels.
>
> Then after rejection of very noisy epochs I run ICA (for identification of
> artefact components) with EEG = pop_runica(EEG,'extended',1) %this is
> somebody else's code that I am re-using.
> (Minor question: At this point I do not baseline correct each epoch, is
> this recommended?)
>
> I get the info: "Data rank (115) is smaller than the number of channels
> (128).  Input data size [115,525723] = 115 channels, 525723 frames/nAfter
> PCA dimension reduction,
> finding 115 ICA components using extended ICA."
>
> Here is where I am losing track. For this example, there are 116
> non-interpolated channels and the data set was re-referenced to common
> reference before ICA.
> So I guess this might be behind the rank reduction, although I am not sure
> how runica knows about this (where is such information retrieved?)
>
> What precisely is used as the input data now? Any first 115 channels or
> only the non-interpolated channels?
> What happens when the resulting (clean) components are projected back onto
> channel space if some of the channels are not actually included in the data
> set used to calculate the components?
>
> Many thanks in advance,
>
>
> Alexandra Vossen
> PhD student
> School of Psychology
> College of Science & Engineering
> University of Glasgow
>
>
> ---------- Forwarded message ----------
> From: Amin Dehghani <dehghani at ut.ac.ir>
> To: <eeglablist at sccn.ucsd.edu>
> Cc:
> Date: Tue, 16 Aug 2016 10:17:30 +0430
> Subject: [Eeglablist] EEG neurofeedback for emotion
>
> Dear all
>
>
>
> I want to do some process of EEG neurofeedback for emotion regulation, if
> you can help me and give me data, I will appreciate you.
> --
>
> Best Regard
>
> Amin Dehghani
>
> EE Dept./ University of Tehran
>
>
>
> ---------- Forwarded message ----------
> From: Norman Forschack <forschack at cbs.mpg.de>
> To: eeglablist <eeglablist at sccn.ucsd.edu>
> Cc:
> Date: Tue, 16 Aug 2016 15:14:32 +0200
> Subject: [Eeglablist] Fwd: Units in output of timefreq - wavelet
> normalization
> Dear all,
>
> below I forward a comment of Mike Cohen discussing wavelet normalization.
> He said, he will also upload a new lecturelet about the very topic on to
> his server probably by the end of the weekend.
>
> Best
> Norman
>
> ----- Forwarded Message -----
> From: "Mike X Cohen" <mikexcohen at gmail.com>
> To: forschack at cbs.mpg.de
> Sent: Montag, 15. August 2016 19:43:01
> Subject: Fwd: [Eeglablist] Units in output of timefreq - wavelet
> normalization
>
>
>
>
>
> Dear Norman,
>
>
> I'm not on the eeglab list, but someone just forwarded this message to me,
> so I thought I'd add a few more cents to the pot. Feel free to forward this
> message to the eeglab list.
>
>
> In general, wavelet normalization in the time domain is an extremely
> difficult problem. It depends on many factors, including the frequency, the
> width of the Gaussian, the number of time points, and even the sampling
> rate. It is quite remarkable that everyone has gotten it wrong (mea culpa
> -- I didn't work through this issue in my book, so it's wrong in there as
> well). That factor of "A" that people often use comes from a normalization
> of the integral and simply doesn't translate to our sampled digital
> analysis environment. I think it hasn't been a huge problem because most
> people apply a baseline normalization (dB or percent change), so then the
> original scale doesn't matter.
>
>
> Anyway, the solution is surprisingly simple: Normalize the wavelet energy
> in the frequency domain, not in the time domain. For wavelet convolution,
> it would work something like this:
>
>
> cmwX = fft(cmw,nConv); % nConvolution-point FFT, assume 'cmw' is a complex
> Morlet wavelet
>
> cmwX = cmwX./max(cmwX); % normalize to max-1 spectral energy
> dataX = fft(data,nConv); % nConvolution-point FFT
> convolution_result = ifft( dataX.*cmwX ); % convolution result
>
>
> The power and real part of the convolution result now has the same units
> as the original signal (e.g., microvolts). If you want to have the
> time-domain Morlet wavelet, you could take the ifft of cmwX (using nfft
> according to the wavelet, not according to N+M-1 for convolution).
>
>
> Hope that helps,
> Mike
>
>
>
>
> ---------- Forwarded message ----------
> From: Norman Forschack < forschack at cbs.mpg.de >
> Date: Mon, Aug 15, 2016 at 6:19 PM
> Subject: Re: [Eeglablist] Units in output of timefreq - wavelet
> normalization
> To: Andreas Widmann < widmann at uni-leipzig.de >
> Cc: eeglablist < eeglablist at sccn.ucsd.edu >
>
>
> Dear all,
>
> I'd like to contribute from the perspective of a discussion on Mike
> Cohen's Blog.
>
> The initial question was, how to obtain an amplitude envelope of a given
> signal which has in fact the same amplitude as the given signal, right?
> So coming from Nicos signal:
>
> clear all
> D = 4; % total signal duration in seconds.
> sigD = 1; % duration of the test oscillation within the signal.
> F = 10; % frequency of the test oscillationin Hz.
> P = .25; % Phase of the test oscillation. 2 pi radians = 360 degrees
> srate = 256; % sampling rate, i.e. N points per sec used to represent sine
> wave.
> T = 1/srate; % sampling period, i.e. for this e.g. points at 1 ms intervals
> time = T:T:D; % time vector.
>
> sigpoints = length(time)/2 - (sigD*srate)/2:(length(time)/2 +
> (sigD*srate)/2)-1;
> mysig = zeros(1,D*srate);
> mysig(sigpoints) = sin(2*F*time(sigpoints)*pi+ 2*pi*P);
>
> one way to obtain equal amplitudes is to normalize the wavelet by its
> maximal value within the frequency domain:
>
> % some preparations
> mysig = mysig';
> ss = size(mysig);
> cycles = 4;
> dt = 1/srate;
> sf = F/cycles;
> s = 1./(2*pi*sf);
> t = (-4*s:dt:4*s)';
> nM = length(t);
> halfMsiz = (nM-1)/2;
> hz = linspace(0,srate/2,floor(nM/2)+1);
> Ly = ss(1)*ss(2)+nM-1;
> Ly2=pow2(nextpow2(ss(1)*ss(2)+nM-1));
>
> % fft of signal
> X=fft(reshape(mysig,ss(1)*ss(2),1), Ly2);
>
> % building morlet wavelet (without a normalization factor)
> m = exp(-t.^2/(2*s^2)).*exp(1i*2*pi*F.*t);
> H = fft(m,Ly2); % fft of wavelet
>
> % normalize wavelet spectrum
> H = H./max(H);
>
> y = ifft(X.*H,Ly2);
> y = y(floor(halfMsiz+1):Ly-ceil(halfMsiz));
> y_amp = 2* abs(y);
>
> figure; plot(time,mysig,'b',time,y_amp,'r')
>
> This seems to work for any combination of srate and cycles (except when
> number of cycles become large) because the signal spectrum is convolved by
> spectral wavelet values being maximally one.
>
> I have not fully worked my way through Andreas' example. It normalizes the
> wavelet in time, not in frequency domain as here. So it is probably not
> comparable.
> But doing time domain normalization within the lines above by just
> replacing the kernel formula:
>
> m = exp(-t.^2/(2*s^2)).*exp(1i*2*pi*F.*t) ./ sqrt(srate); % unit energy
>
> and commenting out the max(H) normalization, however, yields an amplitude
> envelope which is 2.5 times larger than the original signal amplitude and
> increases when the number of wavelet cycles is increased. But as Andreas
> suggestion referred to the dftfilt3 output, the matter becomes more
> complicated as this function uses it's own normalization factor:
> A = 1./sqrt(s*sqrt(pi));
> and there are problably some more relevant differences (not even going
> into the timefreq function).
>
> In sum, this post may have fostered the general confusion (or at least
> mine) but for a more puristic approach to the matter of wavelet
> normalization, the lines above might be of some value (kudos to mike x
> cohen, of course).
>
> All the best
> Norman
>
>
>
>
> ----- On Aug 12, 2016, at 6:06 PM, Andreas Widmann widmann at uni-leipzig.de
> wrote:
>
> > Dear Niko,
> >
> > I’m puzzled by this difference since a long time too (and as you have
> written a
> > book chapter on WT actually I would have hoped you could help resolving
> this
> > issue ;).
> >
> > (Morlet) wavelet normalization always appeared somewhat arbitrary to me
> (as
> > signal amplitude will never be directly reflected across the whole TF
> plane for
> > peaky spectra/time courses). To my understanding the most common
> normalization
> > for wavelets is unit energy (and Gabor). The help text for timefreq
> states that
> > dftfilt3 is "exact Tallon Baudry“. TB (1998, JNeurosci) states that
> "Wavelets
> > were normalized so that their total energy was 1,…“.
> >
> > The wavelets produced by dftfilt3 appear to always have an energy of
> srate (thus
> > they are *not* unit energy normalized?!):
> > [wavelet,cycles,freqresol,timeresol] = dftfilt3(F, ncycles, srate);
> > E = sum( abs( wavelet{ 1 } ) .^ 2 )
> > Consequently, to my understanding the correct „normfactor“ should be
> sqrt( E )
> > or better sqrt( srate ).
> >
> > You might want to confirm by looking at the TF transform of the (real
> part of
> > the) wavelet itself
> > wavelet{ 1 } = wavelet{ 1 } / sqrt( srate ); % Unit energy normalize
> > mysig = zeros(1,D*srate);
> > delay = ceil( ( length( mysig ) - length( wavelet{ 1 } ) ) / 2 );
> > mysig( delay:delay + length( wavelet{ 1 } ) - 1 ) = real( wavelet{ 1 } )
> * 2;
> > % Discard imag part
> > normfactor = sqrt( srate );
> > which should now have a peak amplitude of 1 (independent of sampling
> rate and
> > signal duration).
> >
> > As the issue appears to be not only in EEGLAB but also other
> implementations, I
> > always assumed my reasoning to be incorrect. Is it? What am I missing?
> >
> > Best,
> > Andreas
> >
> >> Am 10.08.2016 um 11:58 schrieb Niko Busch < niko.busch at gmail.com >:
> >>
> >> Dear Makoto (and everyone who replied to me personally regarding this
> post),
> >>
> >> thank you for your reply! I see that the result of the wavelet
> transform inside
> >> the timefreq function is dependent on the length of the signal, which
> in turn
> >> is dependent on the number of cycles and sampling rate. However, simply
> >> dividing by the length of the wavelet does not seem to be the solution
> either.
> >> I modified the code below by including a "normalization factor", which
> >> currently is simply the length of the wavelet. Dividing the wavelet
> transformed
> >> amplitudes by this factor gives the right order of magnitude, but the
> results
> >> are still quite off. By increasing the sampling rate or number of
> cycles, the
> >> results are even more off. I believe we are on the right track, but
> something
> >> is still missing. Do you have any ideas?
> >>
> >> Cheers,
> >> Niko
> >>
> >> %% Create sine wave
> >> clear all
> >> D = 4; % total signal duration in seconds.
> >> sigD = 1; % duration of the test oscillation within the signal.
> >> F = 10; % frequency of the test oscillationin Hz.
> >> P = .25; % Phase of the test oscillation. 2 pi radians = 360 degrees
> >> srate = 256; % sampling rate, i.e. N points per sec used to represent
> sine wave.
> >> T = 1/srate; % sampling period, i.e. for this e.g. points at 1 ms
> intervals
> >> t = [T:T:D]; % time vector.
> >>
> >> sigpoints = length(t)/2 - (sigD*srate)/2:(length(t)/2 +
> (sigD*srate)/2)-1;
> >> mysig = zeros(1,D*srate);
> >> mysig(sigpoints) = sin(2*F*t(sigpoints)*pi+ 2*pi*P);
> >>
> >> %% TF computation
> >> ncycles = 4;
> >>
> >> [wavelet,cycles,freqresol,timeresol] = dftfilt3(F, ncycles, srate);
> >> normfactor = length(wavelet{1});
> >>
> >> [tf, outfreqs, outtimes] = timefreq(mysig', srate, ...
> >> 'cycles', ncycles, 'wletmethod', 'dftfilt3', 'freqscale', 'linear', ...
> >> 'freqs', F);
> >>
> >> %% Plot
> >> figure; hold all
> >> plot(t,mysig);
> >> plot(outtimes./1000,abs(tf)./normfactor)
> >> xlabel('Time (seconds)');
> >> ylabel('Amplitude');
> >> legend('input signal', 'wavelet result')
> >>
> >> _______________________________________________
> >> Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
> >> To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.
> ucsd.edu
> >> For digest mode, send an email with the subject "set digest mime" to
> >> eeglablist-request at sccn.ucsd.edu
> >
> > _______________________________________________
> > Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
> > To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.
> ucsd.edu
> > For digest mode, send an email with the subject "set digest mime" to
> > eeglablist-request at sccn.ucsd.edu
> _______________________________________________
> Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
> To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.
> ucsd.edu
> For digest mode, send an email with the subject "set digest mime" to
> eeglablist-request at sccn.ucsd.edu
>
>
>
> --
>
>
> -----------------------------------------------------------------
> Rasa Gulbinaite, PhD
> Centre de Recherche Cerveau & Cognition (CerCo)
> Toulouse (France)
>
> e: rasa.gulbinaite at gmail.com
> w: rasagulbinaite.com
>
>
>
> --
>
>
>
>
> Mike X Cohen, PhD
> mikexcohen.com
>
>
>
> ---------- Forwarded message ----------
> From: Mike Urich <michaelurich210 at gmail.com>
> To: <eeglablist at sccn.ucsd.edu>
> Cc:
> Date: Mon, 15 Aug 2016 17:12:31 -0400
> Subject: [Eeglablist] Automation
> Hi all,
>
> Is there an easy way to see what functions are being called as you click
> through eeglab? I have a workflow of importing data from a text file,
> filtering, removing the mean, and running ICA and then viewing a Component
> Scroll plot. I need to perform this sequence on many datasets and it’ll be
> the same process for each one, so it would be fantastic to be able to
> automate this. Does anyone have any suggestions?
>
> Thanks!
>
> Mike Urich
> michaelurich210 at gmail.com
>
>
>
>
>
>
> ---------- Forwarded message ----------
> From: Alex Abe <nabra005 at odu.edu>
> To: <eeglablist at sccn.ucsd.edu>
> Cc:
> Date: Tue, 16 Aug 2016 15:36:13 -0400
> Subject: Re: [Eeglablist] problem in BCILAB-1.1 version (brian baloch)
> Brian,
>
> I had the same problem using BCILab in 2015 Matlab version. The problem
> went away when I downgraded to Matlab 2014a.
>
> Alex
>
> On Mon, Aug 15, 2016 at 3:00 PM, <eeglablist-request at sccn.ucsd.edu> wrote:
>
>> Send eeglablist mailing list submissions to
>>         eeglablist at sccn.ucsd.edu
>>
>> To subscribe or unsubscribe via the World Wide Web, visit
>>         https://sccn.ucsd.edu/mailman/listinfo/eeglablist
>> or, via email, send a message with subject or body 'help' to
>>         eeglablist-request at sccn.ucsd.edu
>>
>> You can reach the person managing the list at
>>         eeglablist-owner at sccn.ucsd.edu
>>
>> When replying, please edit your Subject line so it is more specific
>> than "Re: Contents of eeglablist digest..."
>>
>> Today's Topics:
>>
>>    1. problem in BCILAB-1.1 version (brian baloch)
>>    2. Re: Units in output of timefreq - wavelet normalization
>>       (Norman Forschack)
>>    3. uimenu issue (Quitadamo, Lucia)
>>    4. BCI-Lab question (Alex Abe)
>>    5. Re: headplot.m and 2014b -- can't seem to plot a head (Nick Wan)
>>    6. Re: Trigger manipulation (Stephen Politzer-Ahles)
>>    7. Re: Trigger manipulation (Tarik S Bel-Bahar)
>>    8. Re: headplot.m and 2014b -- can't seem to plot a head
>>       (Tarik S Bel-Bahar)
>>    9. Re: Artifact rejection on continuous data (Tarik S Bel-Bahar)
>>   10. SIFT resampling surrogate distributions with 1 trial
>>       (Winslow Strong)
>>
>>
>> ---------- Forwarded message ----------
>> From: brian baloch <brian.baloch at gmail.com>
>> To: <eeglablist at sccn.ucsd.edu>
>> Cc:
>> Date: Sun, 14 Aug 2016 15:12:12 +0900
>> Subject: [Eeglablist] problem in BCILAB-1.1 version
>> Respected Sir,
>>
>>                       Hope you would be fine. Dear Sir, I am PhD student
>> in South Korea. I am working on BCILAB. Sir, I am experiencing one problem
>> in BCILAB software during online MATLAB visualization. I am
>> using MATLAB2015b. it gives an error of " referred  data is non-existent".
>>
>> chunk.smax = p.buffer.smax + size(chunk.data,2);
>>
>> I have been experiencing this error many days. Sir if you tell me
>> solution for this, I will be thankful to you.
>>
>>
>>
>> Thanks.
>>
>> Regards
>>
>>
>> ---------- Forwarded message ----------
>> From: Norman Forschack <forschack at cbs.mpg.de>
>> To: Andreas Widmann <widmann at uni-leipzig.de>
>> Cc: eeglablist <eeglablist at sccn.ucsd.edu>
>> Date: Mon, 15 Aug 2016 18:19:58 +0200
>> Subject: Re: [Eeglablist] Units in output of timefreq - wavelet
>> normalization
>> Dear all,
>>
>> I'd like to contribute from the perspective of a discussion on Mike
>> Cohen's Blog.
>>
>> The initial question was, how to obtain an amplitude envelope of a given
>> signal which has in fact the same amplitude as the given signal, right?
>> So coming from Nicos signal:
>>
>> clear all
>> D = 4;       % total signal duration in seconds.
>> sigD = 1;    % duration of the test oscillation within the signal.
>> F = 10;      % frequency of the test oscillationin Hz.
>> P = .25;     % Phase of the test oscillation. 2 pi radians = 360 degrees
>> srate = 256; % sampling rate, i.e. N points per sec used to represent
>> sine wave.
>> T = 1/srate; % sampling period, i.e. for this e.g. points at 1 ms
>> intervals
>> time = T:T:D; % time vector.
>>
>> sigpoints = length(time)/2 - (sigD*srate)/2:(length(time)/2 +
>> (sigD*srate)/2)-1;
>> mysig = zeros(1,D*srate);
>> mysig(sigpoints) = sin(2*F*time(sigpoints)*pi+ 2*pi*P);
>>
>> one way to obtain equal amplitudes is to normalize the wavelet by its
>> maximal value within the frequency domain:
>>
>> % some preparations
>> mysig = mysig';
>> ss = size(mysig);
>> cycles = 4;
>> dt = 1/srate;
>> sf = F/cycles;
>> s = 1./(2*pi*sf);
>> t = (-4*s:dt:4*s)';
>> nM = length(t);
>> halfMsiz = (nM-1)/2;
>> hz = linspace(0,srate/2,floor(nM/2)+1);
>> Ly = ss(1)*ss(2)+nM-1;
>> Ly2=pow2(nextpow2(ss(1)*ss(2)+nM-1));
>>
>> % fft of signal
>> X=fft(reshape(mysig,ss(1)*ss(2),1), Ly2);
>>
>> % building morlet wavelet (without a normalization factor)
>> m =   exp(-t.^2/(2*s^2)).*exp(1i*2*pi*F.*t);
>> H = fft(m,Ly2); % fft of wavelet
>>
>> % normalize wavelet spectrum
>> H = H./max(H);
>>
>> y =  ifft(X.*H,Ly2);
>> y = y(floor(halfMsiz+1):Ly-ceil(halfMsiz));
>> y_amp = 2* abs(y);
>>
>> figure; plot(time,mysig,'b',time,y_amp,'r')
>>
>> This seems to work for any combination of srate and cycles (except when
>> number of cycles become large) because the signal spectrum is convolved by
>> spectral wavelet values being maximally one.
>>
>> I have not fully worked my way through Andreas' example. It normalizes
>> the wavelet in time, not in frequency domain as here. So it is probably not
>> comparable.
>> But doing time domain normalization within the lines above by just
>> replacing the kernel formula:
>>
>> m =   exp(-t.^2/(2*s^2)).*exp(1i*2*pi*F.*t) ./ sqrt(srate); % unit energy
>>
>> and commenting out the max(H) normalization, however, yields an amplitude
>> envelope which is 2.5 times larger than the original signal amplitude and
>> increases when the number of wavelet cycles is increased. But as Andreas
>> suggestion referred to the dftfilt3 output, the matter becomes more
>> complicated as this function uses it's own normalization factor:
>> A = 1./sqrt(s*sqrt(pi));
>> and there are problably some more relevant differences (not even going
>> into the timefreq function).
>>
>> In sum, this post may have fostered the general confusion (or at least
>> mine) but for a more puristic approach to the matter of wavelet
>> normalization, the lines above might be of some value (kudos to mike x
>> cohen, of course).
>>
>> All the best
>> Norman
>>
>>
>> ----- On Aug 12, 2016, at 6:06 PM, Andreas Widmann widmann at uni-leipzig.de
>> wrote:
>>
>> > Dear Niko,
>> >
>> > I’m puzzled by this difference since a long time too (and as you have
>> written a
>> > book chapter on WT actually I would have hoped you could help resolving
>> this
>> > issue ;).
>> >
>> > (Morlet) wavelet normalization always appeared somewhat arbitrary to me
>> (as
>> > signal amplitude will never be directly reflected across the whole TF
>> plane for
>> > peaky spectra/time courses). To my understanding the most common
>> normalization
>> > for wavelets is unit energy (and Gabor). The help text for timefreq
>> states that
>> > dftfilt3 is "exact Tallon Baudry“. TB (1998, JNeurosci) states that
>> "Wavelets
>> > were normalized so that their total energy was 1,…“.
>> >
>> > The wavelets produced by dftfilt3 appear to always have an energy of
>> srate (thus
>> > they are *not* unit energy normalized?!):
>> > [wavelet,cycles,freqresol,timeresol] = dftfilt3(F, ncycles, srate);
>> > E = sum( abs( wavelet{ 1 } ) .^ 2 )
>> > Consequently, to my understanding the correct „normfactor“ should be
>> sqrt( E )
>> > or better sqrt( srate ).
>> >
>> > You might want to confirm by looking at the TF transform of the (real
>> part of
>> > the) wavelet itself
>> > wavelet{ 1 } = wavelet{ 1 } / sqrt( srate ); % Unit energy normalize
>> > mysig = zeros(1,D*srate);
>> > delay = ceil( ( length( mysig ) - length( wavelet{ 1 } ) ) / 2 );
>> > mysig( delay:delay + length(  wavelet{ 1 } ) - 1 )  = real( wavelet{ 1
>> } ) * 2;
>> > % Discard imag part
>> > normfactor = sqrt( srate );
>> > which should now have a peak amplitude of 1 (independent of sampling
>> rate and
>> > signal duration).
>> >
>> > As the issue appears to be not only in EEGLAB but also other
>> implementations, I
>> > always assumed my reasoning to be incorrect. Is it? What am I missing?
>> >
>> > Best,
>> > Andreas
>> >
>> >> Am 10.08.2016 um 11:58 schrieb Niko Busch <niko.busch at gmail.com>:
>> >>
>> >> Dear Makoto (and everyone who replied to me personally regarding this
>> post),
>> >>
>> >> thank you for your reply! I see that the result of the wavelet
>> transform inside
>> >> the timefreq function is dependent on the length of the signal, which
>> in turn
>> >> is dependent on the number of cycles and sampling rate. However, simply
>> >> dividing by the length of the wavelet does not seem to be the solution
>> either.
>> >> I modified the code below by including a "normalization factor", which
>> >> currently is simply the length of the wavelet. Dividing the wavelet
>> transformed
>> >> amplitudes by this factor gives the right order of magnitude, but the
>> results
>> >> are still quite off. By increasing the sampling rate or number of
>> cycles, the
>> >> results are even more off. I believe we are on the right track, but
>> something
>> >> is still missing. Do you have any ideas?
>> >>
>> >> Cheers,
>> >> Niko
>> >>
>> >> %% Create sine wave
>> >> clear all
>> >> D = 4;       % total signal duration in seconds.
>> >> sigD = 1;    % duration of the test oscillation within the signal.
>> >> F = 10;      % frequency of the test oscillationin Hz.
>> >> P = .25;     % Phase of the test oscillation. 2 pi radians = 360
>> degrees
>> >> srate = 256; % sampling rate, i.e. N points per sec used to represent
>> sine wave.
>> >> T = 1/srate; % sampling period, i.e. for this e.g. points at 1 ms
>> intervals
>> >> t = [T:T:D]; % time vector.
>> >>
>> >> sigpoints = length(t)/2 - (sigD*srate)/2:(length(t)/2 +
>> (sigD*srate)/2)-1;
>> >> mysig = zeros(1,D*srate);
>> >> mysig(sigpoints) = sin(2*F*t(sigpoints)*pi+ 2*pi*P);
>> >>
>> >> %% TF computation
>> >> ncycles = 4;
>> >>
>> >> [wavelet,cycles,freqresol,timeresol] = dftfilt3(F, ncycles, srate);
>> >> normfactor = length(wavelet{1});
>> >>
>> >> [tf, outfreqs, outtimes] = timefreq(mysig', srate, ...
>> >>     'cycles', ncycles, 'wletmethod', 'dftfilt3', 'freqscale',
>> 'linear', ...
>> >>     'freqs', F);
>> >>
>> >> %% Plot
>> >> figure; hold all
>> >> plot(t,mysig);
>> >> plot(outtimes./1000,abs(tf)./normfactor)
>> >> xlabel('Time (seconds)');
>> >> ylabel('Amplitude');
>> >> legend('input signal', 'wavelet result')
>> >>
>> >> _______________________________________________
>> >> Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
>> >> To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.uc
>> sd.edu
>> >> For digest mode, send an email with the subject "set digest mime" to
>> >> eeglablist-request at sccn.ucsd.edu
>> >
>> > _______________________________________________
>> > Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
>> > To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.uc
>> sd.edu
>> > For digest mode, send an email with the subject "set digest mime" to
>> > eeglablist-request at sccn.ucsd.edu
>>
>>
>>
>> ---------- Forwarded message ----------
>> From: "Quitadamo, Lucia" <l.quitadamo at aston.ac.uk>
>> To: "eeglablist at sccn.ucsd.edu" <eeglablist at sccn.ucsd.edu>
>> Cc:
>> Date: Sat, 13 Aug 2016 15:20:20 +0000
>> Subject: [Eeglablist] uimenu issue
>>
>> Hello everybody,
>>
>>
>>
>> I am creating an EEGLAB plugin for the analysis and detection of
>> high-frequency oscillations (HFOs). I have created a set of functions which
>> can be called by means of a list of uimenus which I already integrated in
>> the EEGLAB interface. I would like to enable some of the uimenus only if
>> some variables  (created by different functions) are present in the
>> workspace. Do you know how to do that? I have tried with “userdata”
>> property, but I have been able just to disable the uimenu at the startup.
>>
>>
>>
>> Thanks for your support.
>>
>>
>>
>> Best,
>>
>>
>>
>> Lucia
>>
>>
>> ---------- Forwarded message ----------
>> From: Alex Abe <nabra005 at odu.edu>
>> To: <eeglablist at sccn.ucsd.edu>
>> Cc:
>> Date: Fri, 12 Aug 2016 13:55:17 -0400
>> Subject: [Eeglablist] BCI-Lab question
>> Hi,
>>
>> I am running the search function in BCI_lab, and it is giving me an error
>> which I am not able to solve. Can any BCI_lab expert help me out ? If I do
>> not use search, the program compiles without an error and provides an
>> output.
>>
>> I am using Matlab 2014a version. I tried running on 2011a and it still
>> gives me the same error. Do let me know if you need any other info.
>>
>> My command line that calls the search function is as follows:
>>
>> myapproach = {'CSP' 'SignalProcessing',{'EpochExtr
>> action',[search(0:0.5:1.0),search(2.0:0.5:3.0)],'FIRFilter',[6 8 29
>> 30]}};
>>
>>
>> The error I receive is below:
>>
>>
>>
>> Attempt to reference field of non-structure array.
>>
>> Error in ParadigmBaseSimplified>@(x)length(x.streams)>1 (line 168)
>>                 if any(cellfun(@(x)length(x.streams) > 1,collection))
>>
>> Error in ParadigmBaseSimplified/calibrate (line 168)
>>                 if any(cellfun(@(x)length(x.streams) > 1,collection))
>>
>> Error in bci_train/@(varargin)instance.calibrate(varargin{:})
>>
>>
>>
>> Error in
>> bci_train>@(trainset,varargin)utl_complete_model(calibrate_f
>> unc('collection',{trainset},varargin{:}),predict_func)
>> (line 704)
>>         'trainer', @(trainset,varargin)
>>         utl_complete_model(calibrate_func('collection',{trainset},varargin{:}),predict_func),
>> ...
>>
>> Error in utl_evaluate_fold (line 29)
>>     model = opts.trainer(trainset,opts.args{:});
>>
>> Error in par_beginschedule (line 157)
>>             sched(t) = {{t,tasks{t}{1}(tasks{t}{2:end})}}; end
>>
>> Error in par_schedule (line 60)
>> id = par_beginschedule(tasks,opts);
>>
>> Error in utl_crossval (line 200)
>>     results = par_schedule(tasks, 'engine',opts.engine_cv,
>> 'pool',opts.pool, 'policy',opts.policy);
>>
>> Error in utl_searchmodel>@(varargin)utl_crossval(data,nestedcv_ctrl,'args',varargin)
>> (line 147)
>>     objective_function = @(varargin) utl_crossval(data,nestedcv_ctr
>> l,'args',varargin);
>>
>> Error in hlp_wrapresults (line 51)
>>         [a{1:len}] = f(varargin{:});
>>
>> Error in par_beginschedule (line 157)
>>             sched(t) = {{t,tasks{t}{1}(tasks{t}{2:end})}}; end
>>
>> Error in par_schedule (line 60)
>> id = par_beginschedule(tasks,opts);
>>
>> Error in utl_gridsearch (line 146)
>> outputs = par_schedule(tasks, 'engine',opts.engine_gs,'pool'
>> ,opts.pool,'policy',opts.policy);
>>
>> Error in utl_searchmodel (line 156)
>>     [stats.bestidx,stats.inputs,stats.outputs] =
>> utl_gridsearch(gridsearch_ctrl, opts.args{:});
>>
>> Error in utl_nested_crossval>@(P,varargin)utl_searchmodel(P,opts,'scheme',opts.opt_scheme)
>> (line 98)
>>     opts.trainer = @(P,varargin) utl_searchmodel(P,opts,'scheme
>> ',opts.opt_scheme);
>>
>> Error in utl_evaluate_fold (line 29)
>>     model = opts.trainer(trainset,opts.args{:});
>>
>> Error in par_beginschedule (line 157)
>>             sched(t) = {{t,tasks{t}{1}(tasks{t}{2:end})}}; end
>>
>> Error in par_schedule (line 60)
>> id = par_beginschedule(tasks,opts);
>>
>> Error in utl_crossval (line 200)
>>     results = par_schedule(tasks, 'engine',opts.engine_cv,
>> 'pool',opts.pool, 'policy',opts.policy);
>>
>> Error in utl_nested_crossval (line 102)
>> [measure,stats] = utl_crossval(data, opts, 'scheme',opts.eval_scheme);
>>
>> Error in bci_train>run_computation (line 759)
>>     [measure,stats] = utl_nested_crossval(opts.data, crossval_args{:});
>>
>> Error in hlp_scope>make_func/@(f,a,frame__f1)feval(f,a{:})
>>
>>
>>
>> Error in hlp_scope (line 51)
>> [varargout{1:nargout}] = func(f,varargin);
>>
>> Error in bci_train (line 730)
>> [measure,model,stats] =
>> hlp_scope({'fingerprint_check',0,'fingerprint_create',0}, at ru
>> n_computation,opts,crossval_args);
>>
>>
>>
>> Alex
>>
>>
>> ---------- Forwarded message ----------
>> From: Nick Wan <nickwan at aggiemail.usu.edu>
>> To: EEGLAB List <eeglablist at sccn.ucsd.edu>
>> Cc:
>> Date: Fri, 12 Aug 2016 20:48:36 -0600
>> Subject: Re: [Eeglablist] headplot.m and 2014b -- can't seem to plot a
>> head
>> Hi all, I figured it out. Wasn't converting my angles file right!
>>
>> On Fri, Aug 12, 2016 at 3:23 AM, Nick Wan <nickwan at aggiemail.usu.edu>
>> wrote:
>>
>>> Hi all,
>>>
>>> I tried to run
>>> >>headplot example
>>> It ran, but the plot came up blank. I can rotate the plot, but it's just
>>> an empty plot, no head model or anything. I'm running 13.4.3b on r2014b.
>>> EEGLAB is at the top of my path list, followed by MATLAB toolboxes.
>>>
>>> I tried loading in the sample dataset but that also didn't render the 3D
>>> plot.
>>>
>>> Any help would be much appreciated!
>>>
>>> --
>>> Nick Wan
>>> Graduate Student
>>>
>>> Utah State University Psychology Department
>>> 2810 Old Main Hill
>>> Logan, UT 84322
>>>
>>> Office: HSRC 004
>>> Phone: 435-554-8788
>>> Blog: truebra.in
>>>
>>
>>
>>
>> --
>> Nick Wan
>> Graduate Student
>>
>> Utah State University Psychology Department
>> 2810 Old Main Hill
>> Logan, UT 84322
>>
>> Office: HSRC 004
>> Phone: 435-554-8788
>> Blog: truebra.in
>>
>>
>> ---------- Forwarded message ----------
>> From: Stephen Politzer-Ahles <politzerahless at gmail.com>
>> To: "Haggarty, Connor" <C.J.Haggarty at 2014.ljmu.ac.uk>
>> Cc: "eeglablist at sccn.ucsd.edu" <eeglablist at sccn.ucsd.edu>
>> Date: Sat, 13 Aug 2016 06:08:07 +0800
>> Subject: Re: [Eeglablist] Trigger manipulation
>> EEGLAB doesn't have built-in function for this, but ERPLAB's binlister
>> can do it. Alternatively, you can just write a MATLAB loop that does it;
>> there should be an example or two in some of my previous messages on this
>> list.
>>
>> Best,
>> Steve
>>
>>
>> ---
>> Stephen Politzer-Ahles
>> University of Oxford
>> Language and Brain Lab
>> Faculty of Linguistics, Phonetics & Philology
>> http://users.ox.ac.uk/~cpgl0080/
>> <http://www.nyu.edu/projects/politzer-ahles/>
>>
>> On Sat, Aug 13, 2016 at 6:07 AM, Stephen Politzer-Ahles <
>> stephen.politzer-ahles at ling-phil.ox.ac.uk> wrote:
>>
>>> EEGLAB doesn't have built-in function for this, but ERPLAB's binlister
>>> can do it. Alternatively, you can just write a MATLAB loop that does it;
>>> there should be an example or two in some of my previous messages on this
>>> list.
>>>
>>> Best,
>>> Steve
>>>
>>>
>>>
>>> ---
>>> Stephen Politzer-Ahles
>>> University of Oxford
>>> Language and Brain Lab
>>> Faculty of Linguistics, Phonetics & Philology
>>> http://users.ox.ac.uk/~cpgl0080/
>>>
>>> On Fri, Aug 12, 2016 at 9:07 PM, Haggarty, Connor <
>>> C.J.Haggarty at 2014.ljmu.ac.uk> wrote:
>>>
>>>> Hi,
>>>>
>>>>
>>>>
>>>> I have a question about changing trigger codes for epochs.
>>>>
>>>> I am completing a study with somatosensory stimuli.
>>>>
>>>> One trigger is sent by E-Prime which codes the speed of stroking touch
>>>> (delivered by the experimenter), sometime after this a trigger is sent from
>>>> a laser showing the exact point at which the experimenter first touches the
>>>> participant.
>>>>
>>>> The laser is the precise onset of touch however, this code is the same
>>>> each time. In order to epoch and bin these data properly I need a way to
>>>> code the laser trigger so that it is an addition (or some calculation) of
>>>> the previous (stimulus type) trigger and the precise stimulus laser onset
>>>> trigger.
>>>>
>>>> Is there some function in EEGLab or some coding that will allow me to
>>>> do this?
>>>>
>>>>
>>>>
>>>> Thank you
>>>>
>>>>
>>>>
>>>> Connor
>>>>
>>>> ________________________________
>>>> Important Notice: the information in this email and any attachments is
>>>> for the sole use of the intended recipient(s). If you are not an intended
>>>> recipient, or a person responsible for delivering it to an intended
>>>> recipient, you should delete it from your system immediately without
>>>> disclosing its contents elsewhere and advise the sender by returning the
>>>> email or by telephoning a number contained in the body of the email. No
>>>> responsibility is accepted for loss or damage arising from viruses or
>>>> changes made to this message after it was sent. The views contained in this
>>>> email are those of the author and not necessarily those of Liverpool John
>>>> Moores University.
>>>> _______________________________________________
>>>> Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
>>>> To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.uc
>>>> sd.edu
>>>> For digest mode, send an email with the subject "set digest mime" to
>>>> eeglablist-request at sccn.ucsd.edu
>>>>
>>>
>>>
>>
>>
>> ---------- Forwarded message ----------
>> From: Tarik S Bel-Bahar <tarikbelbahar at gmail.com>
>> To: "Haggarty, Connor" <C.J.Haggarty at 2014.ljmu.ac.uk>
>> Cc: "eeglablist at sccn.ucsd.edu" <eeglablist at sccn.ucsd.edu>
>> Date: Sat, 13 Aug 2016 21:35:54 -0400
>> Subject: Re: [Eeglablist] Trigger manipulation
>> Hello Connor,some notes below, best wishes.
>>
>>
>> ************************************************************
>> *****************
>> If you haven't had a chance to, google eeglablist for the past
>> mentions and suggestions regarding changing events. "eeglablist + edit
>> events". There should  be some code examples there too. Here are some
>> recent ones. Check out the function eeg_addnewevents too.
>> https://sccn.ucsd.edu/pipermail/eeglablist/2015/009246.html
>> https://sccn.ucsd.edu/pipermail/eeglablist/2015/009265.html
>>
>> There's a range of ways to edit the events, including through the GUI,
>> by importing events, and via scripts that modify the EEG.event
>> structure. These should all be documented on the wiki and eeglablist.
>>
>> You can go to Edit > EEG events, modify or add an event, and after
>> closing the gui window for event editing, type eegh to see the Event
>> Editing command script that was run, which you can copy, modify.
>> You'll also want to check help documentation for the function that
>> gets run. For example one can create a loop in a small script that go
>> through each of the events, has a counter for each kind of event
>> you're looking for, and then modifies the label. You could do it event
>> by event in loop, or you could have variables to hold the times and
>> labels, and then use the eeg_addnewevents function to update the whole
>> event structure.
>>
>> Google the following eeglab wiki pages.
>> Chapter_03:_Event_Processing
>> A02: Importing Event Epoch Info - SCCN
>>
>> See also the IV.4.3.EEG.event portion of the eeglab tutorial mirror here:
>> cognitrn.psych.indiana.edu/busey/temp/eeglabtutorial4.301/
>> scripttut/script_tutorial.html#EEG.event:
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> On Fri, Aug 12, 2016 at 9:07 AM, Haggarty, Connor
>> <C.J.Haggarty at 2014.ljmu.ac.uk> wrote:
>> > Hi,
>> >
>> >
>> >
>> > I have a question about changing trigger codes for epochs.
>> >
>> > I am completing a study with somatosensory stimuli.
>> >
>> > One trigger is sent by E-Prime which codes the speed of stroking touch
>> (delivered by the experimenter), sometime after this a trigger is sent from
>> a laser showing the exact point at which the experimenter first touches the
>> participant.
>> >
>> > The laser is the precise onset of touch however, this code is the same
>> each time. In order to epoch and bin these data properly I need a way to
>> code the laser trigger so that it is an addition (or some calculation) of
>> the previous (stimulus type) trigger and the precise stimulus laser onset
>> trigger.
>> >
>> > Is there some function in EEGLab or some coding that will allow me to
>> do this?
>> >
>> >
>> >
>> > Thank you
>> >
>> >
>> >
>> > Connor
>> >
>> > ________________________________
>> > Important Notice: the information in this email and any attachments is
>> for the sole use of the intended recipient(s). If you are not an intended
>> recipient, or a person responsible for delivering it to an intended
>> recipient, you should delete it from your system immediately without
>> disclosing its contents elsewhere and advise the sender by returning the
>> email or by telephoning a number contained in the body of the email. No
>> responsibility is accepted for loss or damage arising from viruses or
>> changes made to this message after it was sent. The views contained in this
>> email are those of the author and not necessarily those of Liverpool John
>> Moores University.
>> > _______________________________________________
>> > Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
>> > To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.uc
>> sd.edu
>> > For digest mode, send an email with the subject "set digest mime" to
>> eeglablist-request at sccn.ucsd.edu
>>
>>
>>
>> ---------- Forwarded message ----------
>> From: Tarik S Bel-Bahar <tarikbelbahar at gmail.com>
>> To: Nick Wan <nickwan at aggiemail.usu.edu>
>> Cc: EEGLAB List <eeglablist at sccn.ucsd.edu>
>> Date: Sat, 13 Aug 2016 22:03:56 -0400
>> Subject: Re: [Eeglablist] headplot.m and 2014b -- can't seem to plot a
>> head
>> Hello Nick, there may be a problem with that example, feel free to report
>> it on eeglab bugzilla. The steps below take 5 minutes and give you a
>> headplot with sample data you can find in your full eeglab folder. As
>> usual, googling eeglablist and reviewing the eeglab tutorial for your
>> topics can be helpful.
>>
>>
>>
>> ************************************************************
>> ***************
>> The headplot requires co-registration of the correct channels with the
>> head, for the currently loaded file. The loaded data also needs to be
>> epoched data, I believe.
>>
>> If you haven't had chance to yet, review the following pages and similar
>> pages: https://sccn.ucsd.edu/wiki/Chapter_06:_Data_Averaging
>> This shows you how to make plots with tutorial data, an important step.
>>
>> To get 3d headplots now quickly and easily, do the following steps:
>>
>> Go to the "sample data" folder in your eeglab folder.
>> Load the file "eeglab_data_epochs_ica.set"
>> In case you haven't tried the full tutorial yet, this file is used in the
>> online eeglab tutorial pages.
>>
>> Then try either of the following from the GUI
>> Plot > Erp Map Series > 3D
>> Then go to Plot > Components > 3D
>>
>> You need to specify a specific time or a specific component in the
>> respective gui window. But leave everything else with defaults.
>> In both cases (ERPS or Components) you should see a Tailarach
>> transformation matrix already in the GUI window that pops up. You can click
>> Manual registration if you want to show yourself that the electrode
>> locations are properly co-registered with the head (they are).
>> This is the transformation matrix that should be in there:
>> -0.355789     -6.33688      12.3705    0.0533239    0.0187461
>> -1.55264      1.06367     0.987721     0.932694
>>
>> Then click OK, and a "example" figure should pop up! Yes ?
>>
>> *Remember to check google eeglablist and check the online tutorial for
>> your topics of interest.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> ---------- Forwarded message ----------
>> From: Tarik S Bel-Bahar <tarikbelbahar at gmail.com>
>> To: <colivero at sri.utoronto.ca>
>> Cc: eeglablist <eeglablist at sccn.ucsd.edu>
>> Date: Sat, 13 Aug 2016 22:07:00 -0400
>> Subject: Re: [Eeglablist] Artifact rejection on continuous data
>> Hello,
>> If you're using ERPLAB primarily, you'll want to check with the ERPLAB
>> user list.
>> See link below for info on basic artifact rejection in eeglab
>> https://sccn.ucsd.edu/wiki/Chapter_01:_Rejecting_Artifacts
>> There are also multiple options for data rejection available inside
>> eeglab, both traditional and ICA based.
>> Cheers!
>>
>>
>>
>> On Thu, Aug 11, 2016 at 3:14 PM,  <colivero at sri.utoronto.ca> wrote:
>> > Hello,
>> >
>> > I am doing artifact rejection on continuous data using ERPLAB. When I
>> run
>> > it, it shows me the scroll plot for me to go over and double check with
>> > the marked areas that exceeded the threshold I choose. Is there a way to
>> > deselect/unreject some of these marked for rejection areas? I know that
>> if
>> > you click on the area it deselects but when I press reject it still
>> > rejects the areas I deselected. Sometimes it marks areas around my event
>> > markers but I do not want these deleted.
>> >
>> > Any help is greatly appreciated.
>> >
>> > Thank you
>> >
>> > _______________________________________________
>> > Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
>> > To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.uc
>> sd.edu
>> > For digest mode, send an email with the subject "set digest mime" to
>> eeglablist-request at sccn.ucsd.edu
>>
>>
>>
>> ---------- Forwarded message ----------
>> From: Winslow Strong <winslow.strong at gmail.com>
>> To: <eeglablist at sccn.ucsd.edu>
>> Cc:
>> Date: Sat, 13 Aug 2016 16:57:26 -0700
>> Subject: [Eeglablist] SIFT resampling surrogate distributions with 1 trial
>> I'd like to use a resampling technique (e.g. bootstrap) to get p-values
>> and test stats for SIFT connectivity metrics for 1 subject across n
>> conditions.
>>
>> This is a steady-state condition study, hence there's only 1 trial per
>> condition.  I'm trying to analyze whether certain connectivity metrics
>> (i.e. their averages over a condition) are statistically significantly
>> different across the conditions.  I was under the impression I could use
>> SIFT's surrogate distribution generator to obtain the surrogate
>> distribution for these calculations, but when I run that from the GUI for
>> bootstrap, I get the error:
>>
>> "Unable to compute bootstrap distributions for a single trial"
>>
>> Is this surrogate function only designed to do boostrapping over trials?
>> Or is there a way to do it over windows within a condition?
>>
>> _______________________________________________
>> eeglablist mailing list eeglablist at sccn.ucsd.edu
>> Eeglablist page: http://www.sccn.ucsd.edu/eeglab/eeglabmail.html
>> To unsubscribe, send an empty email to eeglablist-unsub at sccn.ucsd.edu
>> To switch to non-digest mode, send an empty email to
>> eeglablist-nodigest at sccn.ucsd.edu
>>
>
>
> _______________________________________________
> eeglablist mailing list eeglablist at sccn.ucsd.edu
> Eeglablist page: http://www.sccn.ucsd.edu/eeglab/eeglabmail.html
> To unsubscribe, send an empty email to eeglablist-unsub at sccn.ucsd.edu
> To switch to non-digest mode, send an empty email to
> eeglablist-nodigest at sccn.ucsd.edu
>



-- 
James Jones-Rounds
Laboratory Manager
Human Development EEG and Psychophysiology (HEP) Laboratory,
Department of Human Development,
--------------------------------------------
Cornell University | Ithaca, NY
607-255-9883
eeg at cornell.edu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sccn.ucsd.edu/pipermail/eeglablist/attachments/20160817/39c90d68/attachment.html>


More information about the eeglablist mailing list