In the “Fourier-, Hilbert- and wavelet-based signal analysis: are they really different approaches?” paper they demonstrate how to somewhat arbitrarily scale filter-hilbert and stfft power values to demonstrate that they are equivalent. I’m trying to do something similar, but in my case I want to compare narrowband inst. power from the analytic signal with surrounding broadband power from the frequency domain. Since I’m not directly comparing apples to apples, what is a good way to scale them so they are comparable?
For example, I’ve notice that the filter kernel from fir1() isn’t normalized. Does it need to be in my case?
The kernel returned by fir1 (and firls, firprm, etc) is normalized to have unit spectral gain. You can see that by plotting its amplitude spectrum.
Normalizing narrowband and broadband time series to be comparable is tricky, because the narrowband signal by definition has less energy than broadband. Perhaps it’s best to normalize them, e.g., z-score or min-max scaling (smallest value of 0 and largest value of 1).
Thanks, is it correct that when scaling the FFT by dividing by the number of points in the signal (prior to zero padding) it’s not necessary to scale the analytic signal after doing the IFFT?
Also I’m curious, if I wanted to scale the analytic signal but hadn’t scaled the result of the FFT, would I divide by the size of original signal or by the size with zero padding?
Correct: If you do FFT->IFFT, you don’t need the scaling factors.
Whether to normalize by the time series length or padding length is another issue, probably scaling by the time series length is what you want. Normalization is always tricky Honestly, if your goal is simply to compare different methods/parameters, then I would just z-score everything and not worry about normalizations.