Combining and averaging multiple FFTs

68 ビュー (過去 30 日間)
Butterflyfish
Butterflyfish 2015 年 10 月 27 日
コメント済み: Star Strider 2015 年 10 月 28 日
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!

採用された回答

Star Strider
Star Strider 2015 年 10 月 27 日
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 件のコメント
Butterflyfish
Butterflyfish 2015 年 10 月 28 日
Thank you! Very helpful and so is the example!
Star Strider
Star Strider 2015 年 10 月 28 日
My pleasure!
It’s always fun to help another Biomedical Engineer!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSpectral Measurements についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by