问题标签 [wavelet]

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.

0 投票
1 回答
406 浏览

python - Python中的小波变换-> IndexError:列表分配索引超出范围

我正在尝试为学生项目运行此代码:

作者博客包含完整的 Python 代码

只有那个功能:

根据作者的说法,代码应该运行,但我收到此错误:

测试:Windows 7 / Mac OS 10.7.3
Python 2.7.3
PIL 1.1.7

任何帮助都会很棒!

干杯,托比

0 投票
2 回答
1838 浏览

image - 在调用 mdwt 期间未分配一个或多个输出参数 - 小波变换

我正在尝试使用小波变换过滤图像。我尝试使用此处的功能:http mdwt: //www.mathworks.com/matlabcentral/fileexchange/6391-wavelets-based-denoising/content/mdwt.m,以及此链接中的其他功能,如下所示:

问题是在最后一行我得到 : One or more output arguments not assigned during call to,Error in => y = mdwt(img,h,L);

哪里有问题?该函数mdwt仅包含声明,仅此而已,我可以看到这就是问题所在。谁能帮我解决这个问题?或者还有其他方法可以在不使用这些函数的情况下使用小波变换过滤图像吗?

提前致谢。

编辑 :

现在我尝试使用以下代码显示图像去噪使用小波变换:

但我得到了错误

其中去噪函数是这样的:http: //www.mathworks.com/matlabcentral/fileexchange/6391-wavelets-based-denoising/content/denoise.m

哪里有问题 ?

0 投票
2 回答
2096 浏览

r - 连续小波变换

这个问题相当模糊,但有没有人在 R 中使用过 biwavelet 包并成功了?我有以下代码:

它返回错误:

image.default(x$t, yvals, t(zvals), zlim = zlims, ylim = rev(range(yvals)), 中的错误:'x' 和 'y' 值必须是有限且非缺失的

我不理解这个错误,因为我的数据不包含任何缺失值,而且它们都是有限的。

尝试重现示例时:

它很烦人,因此我不知道为什么我的数据在这个包中失败。上面示例中的数据与我的数据属于同一类,即“矩阵”。任何帮助或建议将不胜感激。

更改:

0 投票
1 回答
345 浏览

genetic-algorithm - 小波包分解、特征选择和SVM

我想了解更多关于使用小波包分解、特征选择和 SVM 的故障检测模型。可以在这里阅读一些相关论文:

http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4547208

https://mospace.umsystem.edu/xmlui/bitstream/handle/10355/4845/research.pdf?sequence=3

我的问题是在“特征选择”步骤中,我们需要选择小波包节点(及其计算的 rms 值)作为最终 SVM 分类器的特征。在 SVM 中,我们还需要知道每个向量的标签 (+1, -1),但是我们如何在特征选择过程中获得这个标签。我真的不太了解使用 10 倍 SVM 的遗传算法(GA),如上述论文。任何人都可以向我解释这一点吗?

0 投票
2 回答
1287 浏览

r - 在 R 中使用 biwavelet 包

谁能建议为什么以下示例代码不起作用:

它会生成一个错误说明:

我将如何解决这个问题?

额外的:

作为对 Gavin Simpsons 的回答:如果我将数据保留为仅包含一个频率但更改时间向量,则代码可以正常工作。

0 投票
2 回答
12140 浏览

matlab - 计算 FFT 时的信号长度

我想问一些与我的最后一个问题有关的问题,所以我不想在另一个线程中发帖。我的问题包含一个代码,因此我不能将其作为评论发布。所以我必须将我的旧问题编辑成一个新问题。请看一下并提供帮助。谢谢你。

我是 FFT 和 DSP 的新手,我想问你一些关于在 Matlab 中计算 FFT 的问题。以下代码来自 Matlab 帮助,我只是去除了噪音。

  1. 我可以选择不同于 NFFT 的信号 L 的长度吗?

  2. 我不确定我是否正确使用了窗口。但是当我使用window(在下面的代码中)时,我无法获得幅度的确切值?

  3. 当 L 和 NFFT 取不同的值时,幅度的值也不同。如何获得输入信号幅度的确切值?(在下面的代码中,我使用了一个已知信号来检查代码是否正常工作。但如果我从传感器获得信号并且我不知道它的幅度,我该如何检查?)

非常感谢您,并期待收到您的来信:)

0 投票
1 回答
1343 浏览

matlab - fft 和小波

我可以使用 fft 来获取加载的 1 秒音频文件的频率、相位和幅度,并重新创建它。我现在要做的是找出每个频率在 1 秒音频文件中的开始位置和结束位置,并将数据放入数组中

示例:100hz 从 0.23 秒到 0.34 秒开始,104.34hz 从 0.35 秒开始,到 0.37 秒结束。

fft 可以做到这一点还是我需要改变我的整个程序以使用小波?还有八度音程中的小波示例可以显示如何做我想要完成的事情吗?

我正在使用来自 repo 的 Ubuntu Linux 12.04 和 Octave 3.2.4

谢谢瑞克

0 投票
0 回答
360 浏览

r - 小波分析的数据频率

在以下示例中:

如果我正在查看给定时间序列的昼夜周期,可以使用的最低分辨率是多少?此示例当前使用以 1 小时为间隔测量的数据,因此我一天有 24 个数据点。如果我使用 2,3 甚至 4 小时的时间步长,这是否同样重要?

还有一种方法可以计算在降低数据分辨率时结果的重要性是否会发生变化

0 投票
0 回答
4224 浏览

matlab - Matlab中的多分辨率离散小波3D图

我正在尝试使用带有多分辨率分析 (MRA) 的小波分析对 1-D 信号执行 DWT 并制作 3D 图。

简而言之,MRA 将采用离散的采样数据集并对其进行小波分析。

每次通过产生前一次运行的 1/2 样本。我最终得到一个 X x Y 矩阵,每个值中都存储了一个幅度。X 是样本数(或时间),Y 是“细节”小波结果。数据矩阵可能如下所示:

这 '。' 将是 NaN 或 0 或其他可能的东西(我假设我做错了什么)。

我想制作这样的情节:

在此处输入图像描述

Matlab 似乎无法在图中插入那么多数据。我尝试过 meshgrid、surf、ribbon、plot3 等——但它要求所有向量的长度相同。输入 NaN 或 0 会导致结果不可靠。

到目前为止,我所做的最好的事情是使用功能区将数据表示为条带 - 但这也存在它所表示的数据的问题。

我已尽力阅读 Matlab 中的帮助页面,但没有取得太大进展。有人可以将我推向正确的方向吗?

2012 年 11 月的另一个更新 高密度冲浪图由于网格边缘颜色将显示为完全黑色。要禁用它,请使用以下函数: surf(zi, 'EdgeColor', 'none');

调整更新 我仍然不相信这是最终的解决方案,但这是我在产生像 3D 随机数据图这样的热浪方面的最大努力。这是否会帮助我意识到我的信号数据是另一回事。

使用线性化的随机离散 3D 图

0 投票
2 回答
10766 浏览

image - 如何使用 FFT 对具有根据局部方向和密度调整的不同 Gabor 滤波器的图像进行卷积?

我目前正在开发一个库来使用SFinGe方法(由 Maltoni、Maio 和 Cappelli 编写)链接生成合成指纹:http ://biolab.csr.unibo.it/research.asp?organize=Activities&select=&selObj=12&pathSubj= 111%7C%7C12&

其中一个步骤要求我对图像应用不同的 gabor 滤波器,图像中的每个像素都有一个相关的方向和频率,因此卷积不是在整个图像上使用一个内核完成的,但滤波器必须在此过程中根据情况进行更改在像素的这些属性上,图像上的每个像素都以不同的方式改变。

如果您以这种方式应用过滤器,并对图像进行多次卷积(您还必须在每次卷积后对图像进行二值化),您将获得:

在此处输入图像描述

一个主指纹,生成这张图像大约需要 20 秒(这太慢了,这就是我想用 FFT 做的原因),因为我必须执行 5 次卷积才能完成它(你从几个随机黑点)。

我的滤镜是 30x30,图像是 275x400。共有 36000 个过滤器,每个度数和密度一个(密度从 0 到 100)。我计划将过滤器的数量从 36000 减少到 9000,因为我可以用这些覆盖所有角度。此外,所有过滤器都经过预先计算并存储在过滤器库中。

这是 gabor 卷积实现的 C# 源代码:

这两种方法执行卷积:

这两种方法为滤波器组生成不同的 gabor 滤波器:

我的目标是将这段时间减少到 1 秒以下(有几个程序在这段时间内做同样的事情)。因此,由于直接卷积方法对我不起作用,我决定实现快速傅里叶变换卷积,但问题是 FFT 一次将相同的内核应用于整个图像,我需要更改每个像素的内核,因为每个像素都必须根据其属性(密度和方向)进行更改。在这篇文章中如何将 Gabor 小波应用于图像? reve-etrange解释了如何对图像应用不同的 gabor 过滤器,但问题是他这样做的方式是将不同的过滤器应用到整个图像,然后对响应求和,而我需要的是来自不同像素的响应到不同的过滤器。

当我将一个过滤器与图像卷积(使用 FFT)时,会发生这种情况:

在此处输入图像描述

这是使用的过滤器:

在此处输入图像描述

这是它与之卷积的图像:

在此处输入图像描述

这是 FFT 实现的 C# 算法:

所以我要问的是,你如何通过 FFT 获得不同像素对不同内核的响应?如果这是不可能的,有没有办法改进我的直接卷积,使其至少快 20 倍?

是否可以使用所有过滤器制作一个内核,以便我可以将它们应用于整个图像?