[FieldTrip] Simulate data to compare methods
tjordanov at besa.de
tjordanov at besa.de
Fri Jan 30 11:10:15 CET 2015
Hi Eelke,
I found your answer very interesting. If I understand you correctly, the advantage of the multitaper method is that it smoothes in the frequency domain independently of the smoothing in the time domain. Then it should be equivalent (or similar) with the following procedure:
1) Calculate single trial single taper decomposition of the signal.
2) Choose an appropriate 1D Gauss function (note that it is important to be 1D else it would smooth in both - time and frequency)
3) Apply the selected Gauss function on the decomposed signal only in the frequency direction (not in time in order to avoid temporal smearing). Do this for all trials and all time points.
4) Calculate the average over the trials.
In this procedure the choice of the Gaussian would determine the amount of smearing in the frequency domain.
Is this so, or I misunderstood something?
Best,
Todor
-----Original Message-----
From: fieldtrip-bounces at science.ru.nl [mailto:fieldtrip-bounces at science.ru.nl] On Behalf Of Eelke Spaak
Sent: Mittwoch, 28. Januar 2015 12:24
To: FieldTrip discussion list
Subject: Re: [FieldTrip] Simulate data to compare methods
Hi Nico,
As for question (2), you probably first need to think about what constitutes a "better" result. Using more tapers with dpss will always result in more frequency smoothing. If your source signal is primarily composed of pure sinusoids, and you interpret a spectrum as "better"
if it shows clearer peaks, then you will always get the "best" result for the single-taper case.
Multitapering allows optimal control over the amount of smoothing you obtain in the frequency domain, which is more or less independent of the amount of smoothing you obtain in the time domain (as opposed to e.g. wavelets, where these are fundamentally linked). When dealing with brain signals, you will often find that a certain stimulus might induce e.g. a gamma response at 40-50 Hz in one subject and one trial, while in another subject or another trial the same stimulus might induce a 50-60 Hz response or so. Of course, in the average over trials (and subjects), this heterogeneity (i.e., noise) will wash out, but it will severely damage your statistical sensitivity. Therefore, using multitapers to add smoothing can produce a much more consistent result and therefore be "better" in the sense of actually understanding the brain.
As for your simulation, perhaps using filtered noise would be better than sinusoids. Also, since multitapering benefits you most strongly when taking variation over observations into account, you could consider simulating different observations, each consisting of noise filtered in a slightly different randomly chosen bandwidth, and inspecting the resulting variation over observations in the spectra.
Best,
Eelke
On 27 January 2015 at 18:36, Max Cantor <mcantor at umich.edu> wrote:
> Hi Nico,
>
> I'm not sure about the second question, but as for the first question,
> you can manually set the scales for ft_singleplotTFR using cfg.zlim.
>
> Hope that helps,
>
> Max
>
> On Tue, Jan 27, 2015 at 11:50 AM, Nico Weeger
> <nico.weeger at googlemail.com>
> wrote:
>>
>> Hello FieldTrip community,
>>
>>
>>
>> I am new to FieldTrip and I try to simulate data to compare the
>> ft_frequanalysis methods Hanning, Multitaper and Wavelet.
>>
>> Therefore I simulate Data manually using different latency, amplitude
>> and frequency combinations using the following equation:
>>
>> sig1 = exp(-(t-lat1).^2/(2*sigma1))*amp1.*sin(2*pi*f1*t);
>>
>> sig2 = exp(-(t-lat2).^2/(2*sigma2))*amp2.*sin(2*pi*f2*t);
>>
>> sig3 = exp(-(t-lat1).^2/(2*sigma1))*amp1.*sin(2*pi*f2*t);
>>
>> sig4 = exp(-(t-lat2).^2/(2*sigma2))*amp2.*sin(2*pi*f1*t);
>>
>> sig = sig1+sig2+sig3+sig4;
>>
>> where amp1=20; amp2 = 5; lat1= 1.7; lat2 = 2.3; f1 = 12; f2 = 60;
>>
>>
>> After using ft_frequanalysis (see the following cfgs)
>>
>>
>> Cfg Wavelet:
>>
>> cfg = [];
>>
>> cfg.output = 'pow';
>>
>> cfg.channel = labels;
>>
>> cfg.method = 'wavelet';
>>
>> cfg.width = 7;
>>
>> cfg.gwidth = 3;
>>
>> cfg.foilim = [1 70];
>>
>> cfg.toi = 0:0.05:2;
>>
>> TFRwave = ft_freqanalysis(cfg, data_preproc);
>>
>>
>>
>> Cfg Hanning / Multitaper:
>>
>> cfg = [];
>>
>> cfg.output = 'pow';
>>
>> cfg.channel = labels;
>>
>> cfg.method = 'mtmconvol'
>>
>> cfg.foi = 1:1:70
>>
>> cfg.tapsmofrq = 0.2*cfg.foi;
>>
>> cfg.taper = 'dpss' / ‘hanning’;
>>
>> cfg.t_ftimwin = 4./cfg.foi;
>>
>> cfg.toi = 0:0.05:2;
>>
>> TFRmult1 = ft_freqanalysis(cfg, data_preproc);
>>
>>
>>
>>
>> the data is plotted with ft_singleplotTFR (see cfg below)
>>
>>
>> cfg singleplot:
>>
>> cfg = [];
>>
>> cfg.maskstyle = 'saturation';
>>
>> cfg.colorbar = 'yes';
>>
>> cfg.layout = 'AC_Osc.lay';
>>
>> ft_singleplotTFR(cfg, TFRwave);
>>
>>
>> Two problems occur. First, the power scale of wavelet and
>> Multitaper/Hanning differs extremely (Multi 0-~100 and Wavelet 0-~15*10^4).
>>
>> 1. How can I get the scale of all methods equal, or do I have to
>> change the Wavelet settings to get the right scale of the values?
>>
>> Second, the best result of Multitaper analysis is performed using
>> only one Taper. The goal was to get a result, where the advantages
>> and disadvantages of Multitaper analysis compared to the other methods can be seen.
>>
>> 2. How can I change the simulation so that more tapers show better
>> results than a single taper does?
>>
>>
>> Thank you for your time and help.
>>
>>
>> Regards,
>>
>>
>>
>> Nicolas Weeger
>>
>> Student of Master-Program Appied Research,
>>
>> University Ansbach,
>>
>> Germany
>>
>>
>> _______________________________________________
>> fieldtrip mailing list
>> fieldtrip at donders.ru.nl
>> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
>
>
>
>
> --
> Max Cantor
> Lab Manager
> Computational Neurolinguistics Lab
> University of Michigan
_______________________________________________
fieldtrip mailing list
fieldtrip at donders.ru.nl
http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
More information about the fieldtrip
mailing list