簡體   English   中英

SciPy:將特征轉換為頻域

[英]SciPy: convert feature to frequency domain

問題陳述

給定 :由時間/幅度值組成的時間序列

所需輸出 :將給定信號轉換為由時間/頻率值組成的頻域

更多信息

我希望輸入中的時間戳與輸出中的頻率水平具有相同的映射。

為此,我使用了SciPysignal.spectrogram函數。 顯然,輸入和輸出之間存在對應關系。

問題 :將輸出轉換為時間/頻率值的首選方法是什么? 取最大值是一種好習慣嗎?

fs = 1.0
f, t, Sxx = signal.spectrogram(x, fs)
plt.pcolormesh(t, f, Sxx)
plt.ylabel('Frequency [Hz]')
plt.xlabel('Time [sec]')
plt.axis([t.min(), t.max(), f.min(), .02])
plt.show()

輸入 譜圖

問題:將輸出轉換為時間/頻率值的首選方法是什么? 取最大值是一種好習慣嗎?

通常,如果您計算頻譜圖,則希望在每個時間點周圍的窗口中查看組成信號的頻率是多少。 這就是為什么您得到顯示的熱圖的原因。 現在,這已經是信號在頻域中隨時間變化的表示。 如果僅取最大值,則將剪切相關信息,並且所獲得的將是不同信號的表示。 這不是您想要的,因為從信號處理的角度來看這沒有意義。 您將僅基於每個時間窗口中最強的頻率來表示偽像信號。

如果頻譜圖未顯示您要查找的信息,您可能想探索將頻率特征表示為時間函數的其他方式。 例如,嘗試探索Wavelet變換,(請參見此處應用到時間序列的連續Wavelet變換(cwt)的示例),您可以使用PyWavelets包輕松獲得它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM