import numpy as np import matplotlib.pyplot as plt import pywt

生成信号

t = np.linspace(0, 1, 1000) f1, f2 = 10, 50 s1 = np.sin(2np.pif1t) s2 = np.sin(2np.pif2t) signal = s1 + s2

定义Morlet小波基函数

wavelet = pywt.Wavelet('morl')

进行连续小波变换

cwtmatr, freqs = pywt.cwt(signal, wavelet, widths=np.arange(1, 31))

绘制时频谱图

plt.figure(figsize=(8, 4)) plt.imshow(np.abs(cwtmatr), extent=[-1, 1, freqs[-1], freqs[0]], cmap='jet', aspect='auto') plt.colorbar() plt.xlabel('Time (s)') plt.ylabel('Frequency (Hz)') plt.title('Time-Frequency Spectrogram') plt.show()

python基于Morlet小波基函数进行连续变换获得信号的时频谱图

原文地址: https://www.cveoy.top/t/topic/bzZG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录