FOOOF and PSD: How can you determine the frequency band with the highest power peak?



I'm trying to determine the individual alpha frequency using both the PSD and FOOOF methods. In a nutshell, this means determining the frequency band that contains the highest power value in the spectrum. To control for the 1/f, I'm using the FOOOF approach. However, I can't find these results in the resulting MATLAB structure. How can I determine the frequency band with the highest power peak?


The parameters of the FOOOF (aka specparam) models are stored as explained here:

Also, the different parameters of the FOOOF models can be converted to standard PSD files. Depending on your goal, this may facilitate subsequent processes.

You can use the Matlab's max() function to find the index of the highest power peak, and use that index on the frequency axis to know the frequency with the highest peak.

Hi Raymundo. Thank you very much for the help. I've implemented some code that Francois uploaded (Fitting oscillations and one-over-F (FOOOF) enquiry - #4 by Francois), but unfortunately, it gives me the highest frequency band with a resolution of 1 Hz. In the papers, they report those values with a 0.125 Hz resolution (e.g., Do you know how can this be fixed in Brainstorm? I've tried both with the FFT and pwelch methods, and both gave me highest frequencies with 1 Hz precision.

The lower frequency resolution is that of the original power spectra. You need to recompute these power spectra using a longer time window over the data time series to increase the frequency resolution.

1 Like