[FieldTrip] Interpolation and ft_channelrepair

Grazia Di Pisa g.dipisa at gmail.com
Wed Oct 21 12:27:40 CEST 2015


Hi Jörn,

Thanks for the advice - I've just tried to add cfg.sens = sens but still the same error.

Any other suggestions?

thanks,
~ grazia


> On 21Oct, 2015, at 12:00, fieldtrip-request at science.ru.nl wrote:
> 
> Send fieldtrip mailing list submissions to
> 	fieldtrip at science.ru.nl
> 
> To subscribe or unsubscribe via the World Wide Web, visit
> 	http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
> or, via email, send a message with subject or body 'help' to
> 	fieldtrip-request at science.ru.nl
> 
> You can reach the person managing the list at
> 	fieldtrip-owner at science.ru.nl
> 
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of fieldtrip digest..."
> 
> 
> Today's Topics:
> 
>   1. Call for new post docs in the Obleser lab | Auditory
>      Cognition (Jonas Obleser)
>   2. Spectrum normalization (Wunderle, Thomas)
>   3. Interpolation and ft_channelrepair (Grazia Di Pisa)
>   4. Re: Interpolation and ft_channelrepair
>      (=?UTF-8?Q?J=C3=B6rn_M._Horschig?=)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Tue, 20 Oct 2015 06:07:51 -0500
> From: Jonas Obleser <jonas at obleser.de>
> To: fieldtrip at science.ru.nl, AUDITORY at LISTS.MCGILL.CA
> Subject: [FieldTrip] Call for new post docs in the Obleser lab |
> 	Auditory	Cognition
> Message-ID: <71625964-4C4D-41CA-BEDB-171CEFBC87F8 at obleser.de>
> Content-Type: text/plain; charset=utf-8
> 
> The research group ?Auditory Cognition? (headed by Jonas Obleser; auditorycognition.com), now at the University of L?beck, is seeking to hire two Postdoctoral researchers, initially for 3 years, with the option of extension.
> 
> These positions fall into the larger framework of an ERC Consolidator grant ?The listening challenge: How ageing brains adapt? (AUDADAPT) recently awarded to Jonas Obleser, and will allow the joint development of cognitive-neuroscience and psychological research projects targeting adaptive control in the auditory modality of middle-aged adults.
> 
> Please download the full job advert here: https://www.dropbox.com/s/sqc9c94ewl6bjjh/Ausschreibung_1031_15_Wiss%20MitarbeiterIn_Psychologie_EN.pdf?dl=1 
> 
> Note the application deadline of November 12 (postal receipt).
> 
> http://auditorycognition.com
> http://uni-luebeck.de
> 
> 
> 
> 
> ------------------------------
> 
> Message: 2
> Date: Tue, 20 Oct 2015 14:58:25 +0000
> From: "Wunderle, Thomas" <thomas.wunderle at esi-frankfurt.de>
> To: "fieldtrip at science.ru.nl" <fieldtrip at science.ru.nl>
> Subject: [FieldTrip] Spectrum normalization
> Message-ID:
> 	<27E5CAD9145EEC41BB9B34C01716A198880C3CD4 at UM-excdag-a02.um.gwdg.de>
> Content-Type: text/plain; charset="iso-8859-1"
> 
> Hi all,
> 
> I have a question about how FieldTrip normalizes the output of a spectral analyses using ft_freqanalysis.
> This is important for me, because I need the absolute value of the spectrum for a publication.
> 
> I was scanning through the code trying to find the normalization steps.
> In particular, I don't understand the following steps:
> 
> 
> 1.)    The tapers (e.g. hanning) are normalized prior to the multiplication with the data by the following code:
> tap = tap./norm(tap, 'fro');   (line 195 in the function fr_specest_mtmfft)
> What is the rationale of dividing through this special norm of the taper itself?
> 
> 
> 2.)    After calculating the fft, the specrum is scaled (i.e. in the function fr_specest_mtmfft) by:
> 
> dum = dum .* sqrt(2 ./ endnsample);  (line 251)
> 
> Later on, to get to the power spectrum, the abs of the spectrum is taken and squared
> 
> powdum = abs(spectrum(acttap,:,foiind(ifoi),acttboi)) .^2; (line 629 in ft_frequanalysis)
> 
> 
> 
> This puzzles me, because scanning through the literature, the power spectrum should be given by
> 
> (2*abs(X)^2) ./ (nfft^2)                -> unit: V^2        (X=signal, nfft = number of data points)
> 
> and the PSD by
> 
> (2*abs(X)^2) ./ (nfft*Fs)              -> unit: V^2/Hz (X=signal, nfft = number of data points, Fs=sampling rate)
> 
> 
> 
> Alternatively, one can get the amplitude spectrum from the power spectrum by taking the square root of the PSD:
> 
> sqrt(PSD)                             -> unit: V/sqrt(Hz)
> 
> which is still different from
> 
> (2*abs(X)) ./ (nfft*Fres)               -> unit: V/Hz ?   (Fres = frequency resolution = Fs/nfft)
> 
> 
> 
> The result of these equations are different from what comes out of the FieldTrip code.
> 
> So what is the unit of the spectrum in FieldTrip?
> 
> What is the rationale of scaling the complex spectrum by sqrt(2/nfft) ?
> 
> Furthermore, is the unit for the different spectral estimation methods the same? That is, using mtmfft, mtmconvol, wavelet,...?
> 
> It would help me a lot if someone could clarify these points.
> 
> Thanks in advance,
> Thomas
> 
> 
> -----
> Dr. Thomas Wunderle
> Ernst Str?ngmann Institute (ESI) for Neuroscience<http://www.ncbi.nlm.nih.gov/feed/rss.cgi?ChanKey=PubMedNews>
> in Cooperation with Max Planck Society <http://www.ncbi.nlm.nih.gov/feed/rss.cgi?ChanKey=PubMedNews>
> Deutschordenstrasse 46
> 60528 Frankfurt am Main, Germany
> www.esi-frankfurt.de<http://www.esi-frankfurt.de/>
> thomas.wunderle at esi-frankfurt.de<mailto:thomas.wunderle at esi-frankfurt.de>
> Tel:   +49 69 96769 516
> Fax:   +49 69 96769 555
> 
> Sitz der Gesellschaft: Frankfurt am Main
> Registergericht: Amtsgericht Frankfurt - HRB 84266
> Gesch?ftsf?hrer: Prof. Dr. Pascal Fries
> 
> 
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20151020/eebaf460/attachment-0001.html>
> 
> ------------------------------
> 
> Message: 3
> Date: Wed, 21 Oct 2015 10:30:07 +0200
> From: Grazia Di Pisa <g.dipisa at gmail.com>
> To: fieldtrip at science.ru.nl
> Subject: [FieldTrip] Interpolation and ft_channelrepair
> Message-ID: <A46541FB-BC67-44E7-A9CD-541FB39B7C54 at gmail.com>
> Content-Type: text/plain; charset=utf-8
> 
> Dear all,
> 
> I?m trying to do interpolation to repair some bad channels, but I?m getting the error below.
> I've read the ft_fetch_sens help but I don?t understand how I should specify the electrodes.
> 
> Is there a file I should upload or am I missing something in my code? 
> Any help or hint is very much appreciated!
> 
> thanks in advance,
> ~ grazia
> 
> 
> //
> Error using ft_fetch_sens (line 183)
> no electrodes or gradiometers specified.
> 
> Error in ft_channelrepair (line 115)
> sens = ft_fetch_sens(cfg, data);
> 
> Error in new_analyse_GDP (line 42)
> ft_channelrepair(cfg, data)
> //
> 
> This is my code:
> 
> 15 	cfg = [];
> 16 	cfg_neighb       	= [];
> 17	cfg_neighb.method	= 'triangulation'; 
> 18    cfg.senstype      	= 'EEG';
> 19    cfg_neighb.layout 	= 'biosemi64.lay';
> 20    neighbours        	= ft_prepare_neighbours(cfg_neighb);
> 21    
> 22    cfg.neighbours    	= neighbours;
> 23    cfg.channel       	= {'Fp1', 'Fp2', 'AF7', 'AF3','AF8','F7','F5','FT9',}; 
> 24    cfg.feedback     	 = 'yes';
> 25    cfg.layout 		= 'biosemi64.lay';
> 26    lay 				= ft_prepare_layout(cfg);
> 27    
> 28    sens 			= data;
> 29    sens.type 		= 'eeg';
> 30    sens.label		= lay.label;
> 31    sens.chanpos 		= lay.pos;
> 32    sens.chanpos(:,3) 	= 0;
> 33  
> 34   ft_neighbourplot(cfg, data)
> 35 
> 36    cfg 				= [];
> 37    cfg.method         	= 'nearest';
> 38    cfg.badchannel     	= {'Fp1', 'Fp2', 'AF7', 'AF3','AF8','F7','F5','FT9'};
> 39    cfg.neighbours    	 = neighbours;
> 40    cfg.trials        		 = 'all';
> 41     
> 42    ft_channelrepair(cfg, data)
> 
> 
> 
> 
> 
> 
> 
> ------------------------------
> 
> Message: 4
> Date: Wed, 21 Oct 2015 10:42:03 +0200
> From: "=?UTF-8?Q?J=C3=B6rn_M._Horschig?=" <jorn at artinis.com>
> To: "'FieldTrip discussion list'" <fieldtrip at science.ru.nl>
> Subject: Re: [FieldTrip] Interpolation and ft_channelrepair
> Message-ID: <002b01d10bdc$5d377040$17a650c0$@artinis.com>
> Content-Type: text/plain;	charset="UTF-8"
> 
> Dear Grazia,
> 
> try adding cfg.sens = sens; before line 42. That will set the sensor definition so that ft_channelrepair knows the location of your channels, which is otherwise not obvious.
> 
> Best,
> J?rn
> 
> --
> 
> J?rn M. Horschig, PhD, Software Engineer
> Artinis Medical Systems  |  +31 481 350 980 
> 
>> -----Original Message-----
>> From: fieldtrip-bounces at science.ru.nl [mailto:fieldtrip-
>> bounces at science.ru.nl] On Behalf Of Grazia Di Pisa
>> Sent: Wednesday, October 21, 2015 10:30 AM
>> To: fieldtrip at science.ru.nl
>> Subject: [FieldTrip] Interpolation and ft_channelrepair
>> 
>> Dear all,
>> 
>> I?m trying to do interpolation to repair some bad channels, but I?m getting
>> the error below.
>> I've read the ft_fetch_sens help but I don?t understand how I should specify
>> the electrodes.
>> 
>> Is there a file I should upload or am I missing something in my code?
>> Any help or hint is very much appreciated!
>> 
>> thanks in advance,
>> ~ grazia
>> 
>> 
>> //
>> Error using ft_fetch_sens (line 183)
>> no electrodes or gradiometers specified.
>> 
>> Error in ft_channelrepair (line 115)
>> sens = ft_fetch_sens(cfg, data);
>> 
>> Error in new_analyse_GDP (line 42)
>> ft_channelrepair(cfg, data)
>> //
>> 
>> This is my code:
>> 
>> 15 	cfg = [];
>> 16 	cfg_neighb       	= [];
>> 17	cfg_neighb.method	= 'triangulation';
>> 18    cfg.senstype      	= 'EEG';
>> 19    cfg_neighb.layout 	= 'biosemi64.lay';
>> 20    neighbours        	= ft_prepare_neighbours(cfg_neighb);
>> 21
>> 22    cfg.neighbours    	= neighbours;
>> 23    cfg.channel       	= {'Fp1', 'Fp2', 'AF7', 'AF3','AF8','F7','F5','FT9',};
>> 24    cfg.feedback     	 = 'yes';
>> 25    cfg.layout 		= 'biosemi64.lay';
>> 26    lay 				= ft_prepare_layout(cfg);
>> 27
>> 28    sens 			= data;
>> 29    sens.type 		= 'eeg';
>> 30    sens.label		= lay.label;
>> 31    sens.chanpos 		= lay.pos;
>> 32    sens.chanpos(:,3) 	= 0;
>> 33
>> 34   ft_neighbourplot(cfg, data)
>> 35
>> 36    cfg 				= [];
>> 37    cfg.method         	= 'nearest';
>> 38    cfg.badchannel     	= {'Fp1', 'Fp2', 'AF7', 'AF3','AF8','F7','F5','FT9'};
>> 39    cfg.neighbours    	 = neighbours;
>> 40    cfg.trials        		 = 'all';
>> 41
>> 42    ft_channelrepair(cfg, data)
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> fieldtrip mailing list
>> fieldtrip at donders.ru.nl
>> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
> 
> 
> 
> 
> ------------------------------
> 
> _______________________________________________
> fieldtrip mailing list
> fieldtrip at donders.ru.nl
> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
> 
> End of fieldtrip Digest, Vol 59, Issue 17
> *****************************************

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20151021/43fd9e60/attachment-0002.html>


More information about the fieldtrip mailing list