问题标签 [wavelet-transform]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 Scipy.signal (Python) 进行连续小波变换:cwt() 函数中的参数“宽度”是什么?(时频)
我搜索以绘制具有离散时间信号的时频信号(采样步长 = 0.001 秒)。我使用 Python 和库 Scipy.signal。我使用函数 cwt(data, wavelet, widths),它返回一个矩阵,用复 morlet 小波(或 gabor 小波)进行连续小波变换。不幸的是,没有很多关于这种用法的文档。我发现的最好的是: -这适用于 Matlab(我试图找到相同的尺度时间结果),但我自然无法使用相同的函数, -这解释了什么是连续小波变换,没有小波参数的详细信息.
第一步:获取比例转换信号。毫无疑问,我直接将数组“宽度”与可能的不同比例的数组相关联。因为,如果不是比例,我不明白什么是参数宽度。也许,你会告诉我“这是你当前小波的宽度”!但是,即使是现在,我也不确定链接宽度与比例的关系......在 Scipy 的 Morlet 文档中,链接似乎可能是:“s: Scaling factor, windowed from -s*2*pi to +s*2 *pi",所以,我认为宽度 = 4*pi*scale(宽度=窗口的宽度)。但是当我绘制小波时,更多的比例增加,更多的小波的视觉宽度减小......
我的第二个问题是找到并绘制频率等价物。在文献中,我找到了这个公式:Fa = Fc / (s*delta),其中 Fa 是最终频率,Fc 是小波的中心频率,以 Hz 为单位,s 是尺度,delta 是采样周期。因此,对于比例(如果我找到与宽度的链接)和增量(= 0.001 秒)来说没问题,但是小波的中心频率更复杂。在 scipy 文档中,我发现:“这个小波 [morlet 小波] 的基频 (Hz) 由 f = 2*s*w*r / M 给出,其中 r 是采样率 [s 在这里是缩放因子,窗口化从 -s*2*pi 到 +s*2*pi。默认为 1;w 宽度;和 M 小波的长度]。我认为是中心频率,是吗?
谢谢
这是我为 cwt() 重新编写的代码:
signal-processing - 小波包分解与带通滤波器
如果我是对的,小波包分解 (WPT) 将信号分解为各种滤波器组。使用许多带通滤波器也可以完成同样的事情。
我的目标是在 1-200、200-400、400-600 等各种频带中找到具有大采样率((2000 赫兹)的信号的能量含量。
使用带通滤波器的 WPT 有哪些优点和缺点?
python - scipy.signal.cwt 在 correlate() 中出现值错误
尝试使用 scipy.signal.cwt 时出现一个奇怪的错误:
我有一些列表c
,我想像这样进行连续小波变换:
我得到一个奇怪的错误:
是什么导致了这个错误?
signal-processing - Octave中的小波信号分解
我想在 Octave 中使用小波变换进行信号分解。我不知道,我应该怎么做。
我一直在寻找 Octave 中的任何黑盒功能,但没有发现任何有用的东西。据我所知dwt
,信号包中有功能,但我不知道如何使用它。在文档中它说:
来自文档:
x信号向量。
wname小波名称。
但是当我尝试以这种方式使用它时,八度说
我应该去哪里LO_D
和HI_D
coeffs?文档说,这些是“低通/高通分解 FIR 滤波器的系数”。
而且,假设我将根据我的数据计算 dwt,接下来我应该做什么来执行分解?
或者,您能否向我提供一些信息,如何对信号进行任何分解?
java - java 等效于 [cA,cH,cV,cD] = dwt2(X,'wname') 在 matlab
我如何在 java 中做与 matlab 中的 [cA,cH,cV,cD] = dwt2(X,'wname') 相同的事情?
更具体地说,我需要图像或二维数值数组的“Daubechies 2”小波的小波变换系数。这可以很容易地在 matlab 中通过 [cA,cH,cV,cD] = dwt2(X,'db2') 在单行中完成。但我也需要在java中完成。
提前致谢!:)
arrays - matlab中的Wavedec返回总和大于信号原始长度的长度
我正在通过使用对信号“price1”进行多级小波分解
price1 的大小为:
得到的小波分解的大小即l的长度为:
我是初学者,我认为大小应该是:
我无法理解为什么大小不是信号大小的一半?这是内部发生的某种填充吗?我希望大小是 [30; 30; 60; 120; 240]。我能做些什么来实现它?
谢谢你的帮助 :)
matlab - 由于 MATLAB 中的重采样函数导致的高错误
我正在使用 MATLAB 中的神经网络训练信号的小波变换的输出。所以我决定使用3
层db4
滤波器进行小波变换。我使用了一个240
元素数组,经过小波变换,我得到了一个数组l
现在,由于我必须训练我的神经网络,我必须将长度的小波变换重新采样36, 36, 65, 123
为 240 个元素的数组。
所以我所做的是,我对信号进行了小波变换。我将每个小波变换重新采样为240
点,然后将小波36, 36, 65, 123
分别重新采样为点。我有一个错误20.2668
。可以做些什么来减少错误?
我使用以下命令使用 MATLAB 重新采样:
现在,错误 err 报告为
我能做些什么来减少这个错误?请帮忙 :)
重新采样和原始后的小波变换数据图为:
python - Python 的连续 Haar 小波
我正在寻找包含 Haar Wavelet 的 Python 连续小波变换的实现。
我想在此链接上重现 MathWorks 为 Matlab 提供的实验。
我尝试了 Pyscellania,但我得到了完全不同的系数。
除了 Pyscellania 之外,是否有 CWT 的 Python 实现包括 Haar Wavalet?
signal-processing - 为什么信号的时间是一个自变量
谁能清楚地解释为什么信号的时间是自变量而幅度是因变量?我参考了谷歌的一些结果,但我无法弄清楚。
matlab - 为什么我们需要时间采样来绘制平稳信号?
我是 matlab 和信号处理的新手。我写了下面发布的代码。我无法理解的是,time soecification
代码开头的部分。我不知道为什么在指定间隔或持续时间时需要采样,我认为指定如下内容就足够了:
为什么我需要像采样这样的东西来绘制静止信号。另一个问题是,这段代码给了我一个错误,告诉我paranthesis imbalance
如何解决它。
代码