转换一维连续信号数据并为给定的带宽/比例生成一系列转换。现在如何自动选择给定范围内的最佳带宽或规模?
示例:图表中,深蓝色线为原始一维连续信号数据。每隔一条曲线是该数据在带宽范围内的转换 [10, 20, 30, 40, 50]。对于这个例子,如何自动选择最能捕捉曲线变化的带宽?
Python
注意:关于如何计算“最佳”带宽的答案可以是具体的或非常笼统的。
import numpy
import matplotlib.pyplot as plt
from scipy.signal import ricker, cwt
data #numpy.ndarray
# data = ([11, 8, 8, 2, 2, 4, 4, 4, 4, 3, 3, 5, 5, 9, 12, 17, 19, 19, 20, 19, 19, 14, 12, 11, 9, 6, 4, 3, 3, 2, 2, 6, 9, 12, 16, 17, 19, 20, 20, 19, 17, 15, 13, 9, 7, 6, 5, 3, 2, 4], dtype=int64)
bandwidths = np.arange(10, 60, 10)
cwt_data = cwt(data, ricker, bandwidths) #transforms the data
plt.plot(cwt_speed.T, label='Transformed data')
plt.plot(speed, label='original data', linewidth=2)
plt.legend()