我试图使用连续小波变换,但我不断地得到ValueError: Only dim == 1 supported.,我的数据是熊猫的数据。
我曾尝试使用以下方法:
df2 = py.cwt(df, scales=1, wavelet='gaus1')
我的结果是
ValueError: only dim == 1
Traceback (most recent call last):
File "<ipython-input-1-4c0398b4c4f3>", line 1, in <module>
runfile('/h
由于python模块,我在实践中发现了小波。
我已经浏览过,但是我无法理解关键的步骤:我不知道如何用matplotlib显示小波分析的多维输出。
这就是我尝试过的(给定一个pyplot ax):
import pywt
data_1_dimension_series = [0,0.1,0.2,0.4,-0.1,-0.1,-0.3,-0.4,1.0,1.0,1.0,0]
# indeed my data_1_dimension_series is much longer
cA, cD = pywt.dwt(data_1_dimension_series, 'haar')
我采取一维小波变换的数据.我怎样才能让这个更快?我有140万个样本和32个特征。
def apply_wavelet_transform(data):
ca,cd=pywt.dwt(data[0,:],'haar')
for i in range(1,data.shape[0]):
ca_i,__=pywt.dwt(data[i,:],'haar')
ca=np.vstack((ca,ca_i))
return ca
考虑到我不像关心执行的速度那样关心内存的使用。
我正在尝试使用db4小波和5级分解来分解给定的波。下面是相同的代码:
coeffs = pywt.wavedec(yourResultA,'db4',level = 5)
然而,编辑器给了我以下错误:
Level value of 5 is too high. Maximum allowed is 0.
我不理解这个错误的含义,因为0级没有任何意义。我甚至尝试使用以下代码来查找db4小波的最大可能级别:
w = pywt.Wavelet('db4')
x = pywt.dwt_max_level(len(yourResultA), w)
这里x的值是15,所以
我是比较FFT与CWT之间的特定信号。
我不清楚如何从相应的CWT标度图中读取相应的频率和振幅。此外,我觉得CWT是相当不准确的?
谱图似乎很好地预测了精确的频率,但是对于CWT,我尝试了许多不同的小波,结果是一样的。
我有监督什么吗?这难道不是解决这个问题的适当工具吗?
下面,您可以找到我的源代码示例和相应的绘图。
import matplotlib.pyplot as plt
import numpy as np
from numpy import pi as π
from scipy.signal import spectrogram
import pywt
f_s = 200
我指的是,第二页右栏第二段,其中描述了如何生成四重密度小波系数:
如果不对小波系数进行下采样,则生成双密度小波,其中n级小波每1/2×2^n中心,生成四重密度字典,用不下采样的方法计算双密度尺度系数。下一步是分别计算两组标度系数(偶数和奇数)上的双密度小波系数。
我很困惑如何得到two sets of scaling coefficients - even and odd。even and odd是什么意思?
. those =‘those 1’>把原始图像矩阵分解成只有偶数指数(0,0) (0,2)的两个矩阵.奇数指数(0,1),(0,3).?优点是什么?
谢谢
我想从控制台将小波系数放到.csv行中。
下面的代码只能将一个数字放到.csv文件中
def waveletdbbiorone(self): #function for Wavelets computation
for filename in glob.iglob ('*.tif'):
imgwbior = mahotas.imread (filename) #read the image
arraywbior = numpy.array([imgwbior])#make an array for pywt module
c