<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><font size="2" face="Courier New">Hi,</font><div><font size="2" face="Courier New"><br></font></div><div><font size="2" face="Courier New">I'm trying to get started with dsp and running into some difficulty grasping the proper use of ft_spiketriggeredspectrum and ft_spiketriggeredspectrum_stat.  </font></div><div><font size="2" face="Courier New"><br></font></div><div><font size="2" face="Courier New">The sample code at the bottom uses LFP data that has already been bandpassed filtered (theta); I am trying to examine spike-lfp statistics in theta, and would greatly appreciate help figuring out how to analyze spike phases.  </font></div><div><font size="2" face="Courier New"><br></font></div><div><font size="2" face="Courier New">The issues I am having relate to the use of the cfg.method (mtmfft vs convol), foo and timwin/t_ftimwin and foi.  As well as perhaps the use of ft_spiketriggeredspectrum_stat generally.</font></div><div><font size="2" face="Courier New"><br></font></div><div style="text-align: justify;"><font size="2" face="Courier New"><br></font></div><div style="text-align: justify;"><font size="2" face="Courier New">1)  Should .foi be specified if the data is already filtered?  I changed the code below<span style="background-color: rgb(247, 249, 250); line-height: 18px; white-space: pre-wrap; "> to restrict </span><span style="line-height: 18px; white-space: pre-wrap; ">foi to a plv (8Hz) I would be able to simplify and understand, but I am guessing I should use theta ranges?  I've tried code that replicates (and also values that further limit) the frequency of the bp filter, but am not sure how .foi is intended to be used here.</span></font></div><div style="text-align: justify;"><font size="2" face="Courier New"><br></font></div><div style="text-align: justify;"><font size="2" face="Courier New"><br></font></div><div style="text-align: justify;"><font size="2" face="Courier New">2)  Ive gone through the tutorials, and according to code snippet in the timefrequencyanalysis tutorial tfrhann.freq = <i>"</i><span style="background-color: rgb(247, 249, 250); line-height: 18px; text-align: justify; white-space: pre-wrap; "><i>% Array of frequencies of interest (the elements of freq may be different from your cfg.foi input depending on your trial length) ".</i>   I'm not quite sure what that means?  </span></font></div><div style="text-align: justify;"><font size="2" face="Courier New"><span style="background-color: rgb(247, 249, 250); line-height: 18px; text-align: justify; white-space: pre-wrap; "><br></span></font></div><div style="text-align: justify;"><font size="2" face="Courier New"><span style="background-color: rgb(247, 249, 250); line-height: 18px; text-align: justify; white-space: pre-wrap; ">When I use the single frequency of 8Hz and </span>cfg.timwin = [-0.5 0.5]; <i>%1 second window </i></font></div><div style="text-align: justify;"><span style="font-family: 'Courier New'; font-size: 10pt; "><br></span></div><div style="text-align: justify;"><span style="font-family: 'Courier New'; font-size: 10pt; ">I receive (for data with 82 trials, single spike channel, 11 </span><span style="font-family: 'Courier New'; font-size: 10pt; ">lap channels</span><span style="font-family: 'Courier New'; font-size: 10pt; ">) a 1x151 double array of values as the tfrSample.ang value in the code below (using mtmfft as the cfg.method).  The 151 array columns (frequencies) appear to converge on two separate values (in odd and even columns respectively).  I'm not understanding what these represent?</span></div><div style="text-align: justify;"><font size="2" face="Courier New"><br></font></div><div style="text-align: justify;"><font size="2" face="Courier New">3) When I change the timwin to [-0.25 0.25] I receive fewer values (1x7 ), again with what appears to be two converging sets of values, but they are not terribly similar to the 1 second values I am receiving.</font></div><div style="text-align: justify;"><font size="2" face="Courier New"><br></font></div><div style="text-align: justify;"><font size="2" face="Courier New">4) cfg.method = convol results in a single tfrSample.ang value, but while cfg.t_ftimwin = 4./cfg.foi and cfg.t_ftimwin = 4./cfg.foi yield a somewhat similar answer, cfg.t_ftimwin = 16 ./cfg.foi is completely different.</font></div><div style="text-align: justify;"><font size="2" face="Courier New"><br></font></div><div style="text-align: justify;"><font size="2" face="Courier New">5) Am I correct that the input for ft_spiketriggeredspectrum_stat should be the decomposed spike data as in the code below (vs spike)? </font></div><div style="text-align: justify;"><font size="2" face="Courier New"><br></font></div><div style="text-align: justify;"><font face="Courier New" size="2">6) In contrast to the ang method in ft_spiketriggeredspectrum_stat, using angle(stsFFT.fourierspctrm{1}) in Example1 yields an array that I believe represents spikes * lfp channels * the same 151 frequency values.  I'm not sure I understand the difference between angle and the ft _stat ang method? </font></div><div style="text-align: justify;"><font size="2" face="Courier New"><br></font></div><div style="text-align: justify;"><font size="2" face="Courier New">7) is mtmfft just a faster version of fft?</font></div><div style="text-align: justify;"><font size="2" face="Courier New"><br></font></div><div style="text-align: justify;"><font size="2" face="Courier New"><br></font></div><div style="text-align: justify;"><font size="2" face="Courier New">Sample Code (multiple examples):</font></div><div style="text-align: justify;"><font size="2" face="Courier New"><br></font></div><div style="text-align: justify;"><font size="2" face="Courier New">if Example1 </font><BR>
<font size="2" face="Courier New"> cfg              = [];</font><BR>
<font size="2" face="Courier New"> cfg.method       = 'fft';</font><BR>
<font size="2" face="Courier New"> cfg.timwin       = [-0.5 0.5]; </font><BR>
<font size="2" face="Courier New"> cfg.foi          = 8;       </font><BR>
<font size="2" face="Courier New"> cfg.taper        = 'hanning';</font><BR>
<font size="2" face="Courier New"> cfg.spikechannel = FFTSpikeChannel;</font><BR>
<font size="2" face="Courier New"> cfg.channel      = data_lfp.label;</font><BR>
<font size="2" face="Courier New"> stsFFT  = ft_spiketriggeredspectrum(cfg, data_all);</font><BR>
<font size="2" face="Courier New"> ang = angle(stsFFT.fourierspctrm{1});   </font><BR>
<p style="min-height: 12px; "><font size="2" face="Courier New"> </font></p>
<font size="2" face="Courier New"> cfgTfr1 = [];</font><BR>
<font size="2" face="Courier New"> cfgTfr1.method = 'ang';</font><BR>
<font size="2" face="Courier New"> tfr1 = ft_spiketriggeredspectrum_stat(cfgTfr1,stsFFT);</font><BR>
<font size="2" face="Courier New">end</font><BR>
<p style="min-height: 12px; "><font size="2" face="Courier New"> </font></p>
<p style="min-height: 12px; "><font size="2" face="Courier New"> </font></p>
<font size="2" face="Courier New"> if Example2 </font><BR>
<font size="2" face="Courier New">  cfg.timwin       = [-0.25 0.25]; % time window of 500 msec</font><BR>
<font size="2" face="Courier New"> end</font><BR>
<p style="min-height: 12px; "><font size="2" face="Courier New"> </font></p>
<p style="min-height: 12px; "><font size="2" face="Courier New"> </font></p>
<font size="2" face="Courier New">if Example3</font><BR>
<font size="2" face="Courier New"> cfg.method       = 'mtmfft';</font><BR>
<font size="2" face="Courier New"> cfg.foi       = 8;</font><BR>
<font size="2" face="Courier New"> cfg.t_ftimwin = 8 ./ cfg.foi; % 8 cycles per frequency</font><BR>
<font size="2" face="Courier New">end</font><BR>
<p style="min-height: 12px; "><font size="2" face="Courier New"> </font></p>
<p style="min-height: 12px; "><font size="2" face="Courier New"> </font></p>
<font size="2" face="Courier New">if Example4</font><BR>
<font size="2" face="Courier New">ConvolSpikeChannel = spike.label{1};   </font><BR>
<font size="2" face="Courier New">cfg.spikechannel = ConvolSpikeChannel;</font><BR>
<font size="2" face="Courier New">cfg.method    = 'convol';</font><BR>
<font size="2" face="Courier New">cfg.foi       = 8;</font><BR>
<font size="2" face="Courier New">cfg.t_ftimwin = 4./cfg.foi; % 4 cycles per frequency</font><BR>
<font size="2" face="Courier New">stsConvol = ft_spiketriggeredspectrum(cfg, data_all);</font><BR>
<font size="2" face="Courier New"> tfr4 = ft_spiketriggeredspectrum_stat(cfgTfr,stsConvol);</font><BR>
<font size="2" face="Courier New">end</font><span style="font-family: 'Courier New'; font-size: 10pt; "> </span><BR>
<p style="min-height: 12px; "><font size="2" face="Courier New"> </font></p><p style="min-height: 12px; "><span style="font-family: 'Courier New'; font-size: 10pt; ">if</span><span style="font-family: 'Courier New'; font-size: 10pt; "> Example5</span></p>
<font size="2" face="Courier New"> cfg.t_ftimwin = 8./cfg.foi; % 8 cycles per frequency, also try 16 cycles</font><BR>
<font size="2" face="Courier New">end</font><BR>
<p style="min-height: 12px; "><font size="2" face="Courier New"> </font></p>
<p style="min-height: 12px; "><font size="2" face="Courier New"> </font></p></div><div style="text-align: justify;"><font size="2" face="Courier New"><br></font></div><div style="text-align: justify;"><font size="2" face="Courier New">I apologize in advance as I am very new to dsp and suspect my problems may be related to my own ignorance and lack of understanding of the principles and not just fieldtrip usage, so if anyone can make sense out of this much too lengthy post I would greatly appreciate any guidance!  Thanks.</font></div><div style="text-align: justify;"><font size="2" face="Courier New"><br></font></div><div style="text-align: justify;"><font size="2" face="Courier New">Aaron</font></div><div style="text-align: justify;"><font size="2" face="Courier New"><br></font></div><div style="text-align: justify;"><font size="2" face="Courier New"><br></font></div><div><font size="2" face="Courier New"><br></font></div><div style="text-align: justify;"><span style="font-style: italic; background-color: rgb(247, 249, 250); line-height: 18px; text-align: justify; white-space: pre-wrap; "><font size="2" face="Courier New">  </font></span></div><div><font size="2" face="Courier New"><br></font></div><div style="font-family: Calibri, sans-serif; font-size: 12pt; "><span style="font-family: Courier; font-size: 10px; "><br></span></div>                                       </div></body>
</html>