Code behind PAC computation

Dear all,

I am interested in phase-amplitude coupling (both on simulated and physiological data) and I would like to have your advice and experience in this topic.

My first question relies on the script bst_chirplet.m that generate chirplet functions. I would like to know on which basis has been fixed the values "fbw" (which I guess stand for frequency bandwidth) and "std_multiple". Those two parameters are respectively fixed to 0.15 and 6, and it appears that slightly changing these values have a great impact on PAC computation. Furthermore, I would like to know if there is any paper on the computation of chirplet functions in the frequency domain (as performed in bst_chirplet.m) (the one of Mann et al., 1995 gives the chirplet in the time domain).

My second question relies on simulated data (using the Brainstorm function process_pac_simulate.m). I simulated a signal with a coupling between 12Hz (for the phase) and 90 (for the amplitude). Looking at the comodulogram, it appears that the maximum peak at this frequency pair, but display a broad pattern extending from 10 Hz to 15 Hz. Do you have any idea why this pattern is not more "focal"?

My last question is about physiological data. I would like to apply PAC to task-based MEG data. Is the code suitable to be applied on task-based data (e.g. on trials with a window of 1.5s)? The only restriction is to have at least 10 cycles of the lowest frequency (in our case ~ 6 Hz), is that right?

Thank you for your help !


@Samiee @Sylvain?

Hi Nicolas,

The chirplet function is coming from Canolty's PAC implementation source code and just got adopted to brainstorm.
All parameters are set by them.

In simulation, you can add noise and also make the low frequency signal asymmetric, this make the produced coupling closer to real world cases. If you want to get pure focal PAC you should make it symmetric (0.5 duty cycle) and increase the SNR (to minimize the noise value).

Yes, that is right. If you need to use it on short intervals of data, we recommend trying tPAC (time-resolved PAC) as well. You can read more about it here: