How to get the FFT peaks from a non stationary signal

8 ビュー (過去 30 日間)
John Navarro
John Navarro 2021 年 3 月 15 日
コメント済み: Bjorn Gustavsson 2021 年 3 月 23 日
Hello
I have a signal of 15 seconds with a sampling rate of 20KHz. I need a table with the location of the 3 highest peaks of the FFT, every 0.2 seconds.
I was planning to use the retime along iwht the findpeaks and fft command but retime only gives me one output and no multiple outputs.
I know this is basically what a short time fast fourier transform does but I am looking for other alternatives that allow me to see and extract changes in the FFT over time, as a table and not as a image.
If any one have a solution, suggestion or an alternative please let me know.

採用された回答

Bjorn Gustavsson
Bjorn Gustavsson 2021 年 3 月 15 日
What you seem to attempt is nothing but extracting peaks out of ffts from sequences of shorter time-span. That ought to be exactly the same as calculating the sft (with spectrogram or the like) and then extract the desired peaks from each time-window. You could have a go at instantaneous frequency, Hilbert-Huang-transform - but that doesn't sound like what you're interested in.
HTH
  2 件のコメント
John Navarro
John Navarro 2021 年 3 月 23 日
Thanks. Could you explain me a bit more about that of "instantaneous frequency" what would it represent?
Bjorn Gustavsson
Bjorn Gustavsson 2021 年 3 月 23 日
You find a decent enough introduction here: Wikipedia: Instantaneous_frequency. It might be useful to you but my first answer seems more like what you are out after. Instantaneous frequency is most of the time tricky to use due to measurement noise since it is an outcome of a differential operation. In some instances I've managed to get something out of it after sufficient noise-reducing filtering.

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

その他の回答 (0 件)

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by