在信号上使用 PyWavelets 和 Matplotbib.Specgram 可以用 pywt.dwt 然后 pywt.cwt 给出更详细的图。如何以类似的方式获得 pywt.cwt 规格图?
使用载重吨:
import pywt
import pywt.data
import matplotlib.pyplot as plot
from scipy import signal
from scipy.io import wavfile
bA, bD = pywt.dwt(datamean, 'db2')
powerSpectrum, freqenciesFound, time, imageAxis = plot.specgram(bA, NFFT = 387, Fs=100)
plot.xlabel('Time')
plot.ylabel('Frequency')
plot.show()
使用此频谱图:
使用 cwt:
widths = np.arange(1,5)
coef, freqs = pywt.cwt(datamean, widths,'morl')
powerSpectrum, freqenciesFound, time, imageAxis = plot.specgram(coef, NFFT = 129, Fs=100)
plot.xlabel('Time')
plot.ylabel('Frequency')
plot.show()
使用此频谱图:
为了获得更好的结果:
sig = datamean
widths = np.arange(1, 31)
cwtmatr = signal.cwt(sig, signal.ricker, widths)
plt.imshow(cwtmatr, extent=[-1, 1, 1, 5], cmap='PRGn', aspect='auto',
vmax=abs(cwtmatr).max(), vmin=-abs(cwtmatr).max())
plt.show()
使用此频谱图:
如何为 cwt(频谱图 2 和 3)获得与第一个类似的频谱图和样式?与第三个相比,第一个频谱图似乎有更多的细节。