簡體   English   中英

Python - 獲取 STFT Output 作為 2D NumPy 矩陣

[英]Python - Get STFT Output as 2D NumPy matrix

我正在使用下面的代碼來獲取 STFT 產生的頻率、時間和功率參數。

 f,t,Z = signal.stft(x, fr, nperseg=40)

並通過以下方式獲取網格 plot:

plt.pcolormesh(t, f, np.abs(Z), shading='gouraud')
plt.title('STFT Magnitude')
plt.ylabel('Frequency [Hz]')
plt.xlabel('Time [sec]')
plt.show()

在此處輸入圖像描述

我正在尋找一種方法來將該圖像導出為灰度 2D NumPy 矩陣而不實際繪制它。 另一種方法是保存 plot 並將其加載為 NumPy 數組,然后將其轉換為灰度圖像,但這會花費大量計算時間。 我正在尋找一種簡潔有效的方法來導出該二維矩陣。

不需要其他變量,但 Z 是一個二維 NumPy 矩陣,包含構造 plot 所需的所有信息。 但是,需要取其絕對值,因為它包含虛值。

Z = np.abs(signal.stft(x,fr, nperseg=200)[2])
plt.imshow(Z)
plt.show()

在此處輸入圖像描述

暫無
暫無

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

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