我想对信号进行连续小波变换。我试着写一个脚本,但脚本输出的是非常低分辨率的比例图。所以我需要通过改变一些比例来获得高分辨率的输出。信号数据和脚本附在下面。
我试过脚本
from scipy import signal
import numpy as np
import matplotlib.pyplot as plt
import obspy
w=np.loadtxt('signal')
t = np.arange(0,len(w))
fmin = 1 # Hz
fmax = 50 # Hz
df = 1./(t[-1]-t[0])
print(df)
fmin_samples = int(fmin/df)
fmax_samples = int(fmax/df)
extent = np.arange(1,10)
scalogram = signal.cwt(w, signal.morlet,extent)
fig, ax = plt.subplots(2, 1, sharex=True)
ax[0].plot(t, w)
ax[0].set(ylabel='amplitude')
ax[1].imshow(np.abs(scalogram), origin='lower')
ax[1].axis('tight')
ax[1].set(xlabel='time (s)', ylabel='frequency (Hz)')
plt.show()
信号数据
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
-0.0000
-0.0000
-0.0000
-0.0000
-0.0000
-0.0000
-0.0000
-0.0000
-0.0000
-0.0000
-0.0000
-0.0000
-0.0000
-0.0000
-0.0001
-0.0001
-0.0001
-0.0001
-0.0001
-0.0001
-0.0001
-0.0001
-0.0001
-0.0001
-0.0001
-0.0001
-0.0001
-0.0001
-0.0001
-0.0001
-0.0002
-0.0002
-0.0002
-0.0002
-0.0002
-0.0002
-0.0002
-0.0002
-0.0002
-0.0003
-0.0003
-0.0003
-0.0003
-0.0003
-0.0004
-0.0004
-0.0004
-0.0004
-0.0005
-0.0005
-0.0006
-0.0006
-0.0007
-0.0007
-0.0008
-0.0009
-0.0009
-0.0010
-0.0011
-0.0013
-0.0014
-0.0015
-0.0017
-0.0019
-0.0022
-0.0025
-0.0028
-0.0032
-0.0037
-0.0043
-0.0051
-0.0060
-0.0072
-0.0087
-0.0108
-0.0136
-0.0178
-0.0241
-0.0338
-0.0493
-0.0724
-0.1014
-0.1231
-0.1059
-0.0038
0.2143
0.5147
0.7698
0.8049
0.5211
-0.0000
-0.5212
-0.8050
-0.7698
-0.5148
-0.2144
0.0038
0.1059
0.1231
0.1013
0.0725
0.0492
0.0340
0.0240
0.0174
0.0136
0.0106
0.0086
0.0070
0.0059
0.0049
0.0042
0.0036
0.0031
0.0026
0.0023
0.0020
0.0018
0.0015
0.0014
0.0012
0.0010
0.0009
0.0008
0.0007
0.0006
0.0005
0.0004
0.0003
0.0003
0.0002
0.0001
0.0000
-0.0000
-0.0001
-0.0002
-0.0003
-0.0004
-0.0005
-0.0006
-0.0007
-0.0008
-0.0010
-0.0011
-0.0013
-0.0015
-0.0018
-0.0020
-0.0024
-0.0028
-0.0034
-0.0040
-0.0049
-0.0060
-0.0074
-0.0094
-0.0123
-0.0167
-0.0235
-0.0344
-0.0506
-0.0709
-0.0861
-0.0740
-0.0026
0.1501
0.3604
0.5389
0.5635
0.3649
0.0001
-0.3648
-0.5634
-0.5388
-0.3603
-0.1500
0.0027
0.0742
0.0862
0.0710
0.0508
0.0345
0.0239
0.0169
0.0123
0.0096
0.0075
0.0062
0.0050
0.0042
0.0035
0.0030
0.0026
0.0023
0.0020
0.0017
0.0015
0.0014
0.0012
0.0011
0.0010
0.0009
0.0008
0.0007
0.0007
0.0006
0.0006
0.0005
0.0005
0.0004
0.0004
0.0004
0.0003
0.0003
0.0003
0.0003
0.0003
0.0002
0.0002
0.0002
0.0002
0.0002
0.0002
0.0002
0.0002
0.0001
0.0001
0.0001
0.0001
0.0001
0.0001
0.0001
0.0001
0.0001
0.0001
0.0001
0.0001
0.0001
0.0001
0.0001
0.0001
0.0001
0.0000
0.0000
0.0000
0.0000
0.0000
使用名为PyWavelets的库(此处为文档(,您可以以一种简单的方式完成
import pywt
import pylab
[phi, psi, x] = pywt.Wavelet('db2').wavefun(level=4)
pylab.plot(x, psi)
pylab.show()