在Python中,頻譜動態圖通常可以使用matplotlib和numpy庫來繪制。其中,numpy庫可以用于計算頻率譜,而matplotlib庫可以用于繪圖。
import numpy as np import matplotlib.pyplot as plt # 設置采樣頻率和采樣點數 fs = 1000 n = 1000 # 生成正弦信號 t = np.arange(n) / fs f = 20 x = np.sin(2 * np.pi * f * t) # 計算頻率譜 X = np.fft.fft(x) X_mag = np.abs(X) # 設置繪圖參數 fig, ax = plt.subplots() ax.set_xlabel('Frequency (Hz)') ax.set_ylabel('Magnitude') # 繪制頻率譜動態圖 for i in range(0, n, 10): ax.plot(np.arange(n/2) * fs/n, X_mag[:n//2]) ax.set_xlim([0, fs/2]) ax.set_ylim([0, 600]) plt.pause(0.001) ax.cla() plt.show()
上面的代碼中,首先設置了采樣頻率和采樣點數,然后生成一個20Hz的正弦信號,并使用fft函數計算出頻率譜。接著,使用matplotlib庫繪制頻率譜動態圖。循環遍歷信號,每次繪制頻率譜,并使用pause函數暫停一定時間,然后清除圖形,以便下一次繪圖。最后,使用show函數顯示頻譜動態圖。