Say you have EEG data that has a baseline period and a post-intervention period. The FFT is computed for this data, and the amplitude is extracted. Power is computed by squaring the amplitude values. Is there a big difference in using the amplitude values versus the power values when computing dB normalization? Or in the end, since dB normalization is a change from baseline, squaring the values doesn’t matter much?

Hi Olefch. Power is amplitude squared, so that does affect the results. Generally, the difference is that power highlights the more prominent features at the expense of the more subtle features (because larger numbers get much larger when squared), whereas amplitude highlights the more subtle effects but also risks increasing the influence of low-amplitude noise.

Convention in neuroscience is to use power. That doesn’t mean it’s better, or that everyone needs to follow convention, but it’s what you’ll mostly see in papers.

Good point, I think this is definitely applicable when looking at the “raw” power values. As you know, dB normalization to baseline is 10 log 10 (signal / baseline). Log properties state that log (x^2) = 2 log (x). Thus, the element-wise difference of dB normalized power values equals the element-wise difference of dB normalized amplitude values multiplied by 2.

So if you are comparing mean values between experimental conditions, dB normalized power vs dB normalized amplitude shouldn’t matter much since the element-wise difference between the values is just multiplied by a scalar. Does that make sense?

Oh yeah, sorry, you’re right; I was just thinking about raw spectra. I think I have a video on this question, possibly in my YT videos about static spectral analysis.

Ok, I’ll check that out.

Furthermore, the standard deviation of dB normalized power values is equal to the standard deviation of dB normalized amplitude values multiplied by 2. If I understand correctly, using either dB normalized power or dB normalized amplitude shouldn’t impact statistical group comparisons, as long as the analysis in the entire data set is consistent.

Yes indeed: 2*std(data) is the same thing as std(2*data).

And yes, perhaps the most important rule in data analysis is to apply the same parameters to all conditions (/channels/subjects/etc); that way, any biases introduced by the parameters affect all conditions equally.