gpt4 book ai didi

python - 连续小波变换与 Scipy.signal (Python) : what is parameter “widths” in cwt() function? (time-frequency)

转载 作者:行者123 更新时间:2023-11-28 16:38:33 28 4
gpt4 key购买 nike

我搜索绘制具有离散时间信号的时频信号(采样步长 = 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com