Combining and averaging multiple FFTs
60 views (last 30 days)
Show older comments
Butterflyfish
on 27 Oct 2015
Commented: Star Strider
on 28 Oct 2015
I have multiple, real, audio signals which I am taking the FFTs. Although they don't come from the same recording, those signals represent the same thing (biologically). I was told that I could combine those ffts and average them together to get a good representation of the averaged signal. I am thinking of using the matlab function 'pwelch' for this purpose but I have lots of questions and I could not find answers by googling.
I have already averaged the ffts themselves with the matlab function 'pwelch' to decrease the noise. When combining them together, should I just use the output of a normal FFT rather than the output of pwelch (P)?
My signals are not exactly of the same length, which will make them not usable to combine in a matrix. Should I cut them all to the same length before averaging? Or is there a way round that?
How do I actually combine them? I was thinking something like this:
avg = (abs(P1) + abs(P2) + abs(P3)) / 3;
and then use the function pwelch like this:
[Pavg, Favg] = welch(avg,ones(SegmentLength,1),0,NFFTavg,fs,'power');
Any insights or help would be really appreciated. Thank you!
0 Comments
Accepted Answer
Star Strider
on 27 Oct 2015
Truncating the time-domain recordings to be the lengths of the shortest recording is preferable if they all have the same sampling frequency. If they have different sampling frequencies, you will have to resample them to the same sampling frequency, because otherwise the fft will have different frequency resolutions.
Using the ensemble average of the fft of biological signals is a common technique in biomedical engineering. See for example Demonstration of Fourier Transforms: Signal Avergaing. I would simply use the regular fft. Designing a digital filter to filter baseline drift and high-frequency noise before you do the fft is certainly an option, providing you use the same filter on all signals.
2 Comments
More Answers (0)
See Also
Categories
Find more on Spectral Measurements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!