- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我搜索绘制具有离散时间信号的时频信号(采样步长 = 0.001 秒)。我使用 Python 和库 Scipy.signal。我使用函数 cwt(data, wavelet, widths),它返回一个矩阵,用复数 morlet 小波(或 gabor 小波)进行连续小波变换。不幸的是,没有很多关于这种用法的文档。我发现的最好的是: - this对于 Matlab(我试图找到相同的比例时间结果)但我自然无法访问相同的功能, - 和 this其中解释什么是连续小波变换,没有小波参数的细节。
第一步:获取尺度平移信号。有疑问,我直接将数组“宽度”与可能的不同比例的数组相关联。因为,如果不是缩放,我不明白参数宽度是什么。也许,你会告诉我“这是你当前小波的宽度”!但是,即使是现在,我也不确定链接宽度与比例的关系……在 Scipy 的 Morlet 文档中,链接似乎可能是:“s: Scaling factor, windowed from -s*2*pi to +s*2 *pi”,所以,我认为 width = 4*pi*scale (宽度=窗口的宽度)。但是当我绘制小波时,比例增加更多,小波的视觉宽度减少更多......
我的第二个问题是找到并画出频率的等价物。在文献中,我发现这个公式:Fa = Fc/(s*delta),其中 Fa 是最终频率,Fc 是小波的中心频率,以 Hz 为单位,s 是尺度,delta 是采样周期。因此,对于比例(如果我找到与宽度的链接)和增量(=0.001 秒)没问题,但小波的中心频率更复杂。在 scipy 文档中,我发现:“这个小波 [morlet wavelet] 的基频以 Hz 为单位,由 f = 2*s*w*r/M 给出,其中 r 是采样率 [s 在这里是比例因子,加窗从 -s*2*pi 到 +s*2*pi。默认为 1; w 宽度; M 是小波的长度]。我认为这是中心频率,是吗?
谢谢
这里是我为 cwt() 修改的代码:
def MyCWT(data, wavelet, scales):
output = zeros([len(scales), len(data)], dtype=complex)
for ind, scale in enumerate(scales):
window = scale*4*pi*10#Number of points to define correctly the wavelet
waveletLength = min(window, len(data))#Number of points of the wavelet
wavelet_data = wavelet(waveletLength, s=scale)#Need to precise w parameter???
#To see the wavelets:
plot(wavelet_data)
xlabel('time (10^-3 sec)')
ylabel('amplitude')
title('Morlet Wavelet for scale='+str(scale)+'\nwidth='+str(window))
show()
#Concolution to calculate the current line for the current scale:
z = convolve(data, wavelet_data, mode='same')
i = 0
for complexVal in z:
output[ind][i] = complex(complexVal.real, complexVal.imag)
i+=1
return output
最佳答案
widths
参数是一个宽度大小的数组,在将小波与数据进行卷积之前,小波被拉伸(stretch)到的宽度大小。
您应该选择一个范围,从略小于预期信号宽度的值开始,直至略大。您提供的值越多,计算越慢,但分辨率越高。
查看 documentation或引用论文 Bioinformatics (2006) 22 (17): 2059-2065. doi: 10.1093/bioinformatics/btl355获取更多信息。
关于python - 连续小波变换与 Scipy.signal (Python) : what is parameter “widths” in cwt() function? (time-frequency),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22813512/
我使用 lire, java对于图像检索项目,我想为输入图像的每个像素计算 gabor 小波的振幅 ref here . lire 库中的默认函数返回一个下采样的特征向量。我想要的是 gabor 小波
我目前有一个 Java 程序可以获取图像中每个像素的 rgb 值。我还有一种在二维值矩阵上计算 Haar 小波的方法。但是我不知道应该为计算 Haar 小波的方法赋予哪些值。我应该平均每个像素的 rg
我正在尝试对图像进行小波分析,我需要一些多尺度分解方法。我正在试验 PyWavelets 包。但是,dwt2 和 idwt2 方法仅提供单一比例。我可以重复这些方法,并将单尺度分解应用于图像的较小区域
我是 OpenCV 和 gabor 过滤器的新手,只想获得这样的 gabor 小波: 我在 Java 中使用这个 OpenCV 代码: double sigma_bar = 40; double th
我正在尝试从声音文件(.wav)中获取特征; 我尝试过 stft 来获取 2D 特征(x 是时间,y 是频率) 我尝试过 pywt,但得到的是一维数组。如果我输入一个 1D (1000,) wav 数
我是一名优秀的程序员,十分优秀!