Python 是當前數據分析和機器學習中最常用的編程語言之一,它非常適用于數據可視化。時頻圖是一種常見的數據分析和展示方法,可以將信號的時域和頻域特征以圖形化的方式展現出來。Python 提供了許多用于繪制時頻圖像的工具和庫,如 matplotlib 和 scipy。
# 導入必要的庫和模塊 import numpy as np from scipy import signal import matplotlib.pyplot as plt # 生成信號 fs = 1000 # 采樣頻率 t = np.linspace(0, 10, 10*fs, endpoint=False) # 時間序列 f1 = 20 # 信號頻率 f2 = 50 signal1 = np.sin(2*np.pi*f1*t) signal2 = 0.5*np.sin(2*np.pi*f2*t) signal3 = signal1 + signal2 + np.random.randn(len(t)) # 繪制時域圖像 plt.subplot(2, 1, 1) plt.plot(t, signal3) plt.xlabel('Time (s)') plt.ylabel('Amplitude') plt.title('Time Domain') # 繪制頻域圖像 f, t, Sxx = signal.spectrogram(signal3, fs=fs, nperseg=1024) plt.subplot(2, 1, 2) plt.pcolormesh(t, f, np.log10(Sxx), cmap='jet') plt.xlabel('Time (s)') plt.ylabel('Frequency (Hz)') plt.title('Frequency Domain') plt.colorbar() plt.show()
以上代碼可以生成一個含有兩個正弦波和一些噪聲的信號,并將其繪制成時域圖像。接著,用 scipy 庫中的 `spectrogram` 函數計算這個信號的時頻特征,生成一個時頻圖像。最后將兩個圖像繪制在同一個畫布中并輸出。
下一篇vue css引入