Instantaneous frequency calculation over frequency band

Dear Mike,

I would like to calculate instantaneous frequency over a frequency range (beta band 15-30 Hz) using your code (“freqslide.m” here: However, this only convolves the signal with one wavelet of one freq point, so I was wondering how would you suggest running this analysis for a specified freq range.

Would it be best to get the complex fourier signal over the whole frequency band, and then do ifft and unwrap those phase angles?

Thank you very much for all your immense help,

Ioanna Zioga

Hi Ioanna. You could use an FIR filter with a plateau shape instead of wavelets; that would give equal energy across that spectral range. However, 15-30 Hz is a fairly broad range for instantaneous frequency fluctuations. Is it possible to select a narrower range?

Hi Mike,

Thanks for your suggestion!
Good point about the range of the frequency band to calculate instantaneous frequency for. In my data, individual peaks are usually on the lower beta end, around 16 Hz. So maybe I could run it separately for lower (15-22 Hz) and higher beta (22-30 Hz). If you have any suggestion about how to go around this, I’d be grateful to hear!


Alternatively - I could get the individual peak frequency from the spectrum (local maximum) +/- 1 Hz, and see how instantaneous frequency is modulated between conditions and through time.

Getting individual frequencies is a good idea, although -/+ 1 Hz might be a small window.

Yeah, I’ll give it a think! maybe a wider range around the individual peaks… Thank you very much for all your help, really appreciated!