标签: wavelet

如何访问R中S4对象的插槽

我正在使用程序上的小波,我使用该程序包wavelets使用该函数创建时间序列的DWT dwt.该函数返回类的对象dwt,这与许多时隙的S4对象:W,V,levels,filter,等.

如何W作为向量访问?

r wavelet slots s4

25
推荐指数
1
解决办法
2万
查看次数

寻找一个好的C/C++小波库进行信号处理

有谁知道一个好的C/C++小波库用于信号处理?

信号是浮点值或双值,而不是int值.

c c++ signal-processing wavelet

21
推荐指数
2
解决办法
2万
查看次数

如何使用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#中的源代码:

这两种方法执行卷积:

    /// <summary>
    /// Convolve the image with the different filters depending on the orientation and density of the pixel.
    /// </summary>
    /// <param name="image">The image to be filtered.</param>
    /// <param name="directionalMap">The directional map.</param>
    /// <param name="densityMap">The density map.</param>
    /// <returns></returns>
    public double[,] Filter(double[,] image, double[,] directionalMap, double[,] densityMap)
    {
        int       midX                          = FILTER_SIZE / 2;
        int       midY                          = FILTER_SIZE / 2;
        double[,] filteredImage                 = new double[image.GetLength(0), …
Run Code Online (Sandbox Code Playgroud)

image fft filter fingerprint wavelet

14
推荐指数
1
解决办法
9959
查看次数

在Python中是否有一种可靠的小波分析方法?

所有.所以,我有一些时间序列数据,我想通过小波变换来处理这样的数据.我对小波的概念比较陌生.我注意到scipy.signal有一些对象,但看起来很薄.是否有图书馆或其他东西可以帮助这个?任何您知道的文档或教程将不胜感激.

python wavelet

14
推荐指数
1
解决办法
2万
查看次数

理解小波理论的先决条件

我有计算机科学学位,我参加了以下数学课程.

  • 微积分I.
  • 微积分II
  • 离散数学与数论
  • 线性代数
  • 可能性
  • 逻辑
  • 自动机理论

我应该采取哪些其他课程来准备研究小波,重点是实施小波变换?

编辑:

看起来这是因为没有"编程相关"而关闭.那是错的!

小波变换是一种非常常见的图像处理技术,它用于H.264和JPEG2000.图像处理是否超出了StackOverflow的范围?

math artificial-intelligence image-processing wavelet

9
推荐指数
1
解决办法
1418
查看次数

如何扩展pyWavelets以使用N维数据?

这可能是针对不同论坛的问题,如果是这样,请告诉我.我注意到只有14个人关注小波标签.

我在这里将pywt(pyWavelets包)中的小波分解扩展到多个维度.如果安装pywt,这应该是开箱即用的.测试1显示了3D阵列的分解和重组.所有,我们要做的就是增加尺寸数量,代码将用于分解/重新组合4,6或甚至18维数据.

我在这里替换了pywt.wavedec和pywt.waverec函数.另外,在fn_dec中,我展示了新的wavedec函数是如何工作的,就像旧的一样.

但有一个问题:它将小波系数表示为与数据形状相同的数组.因此,由于我对小波的了解有限,我只能将它用于Haar小波.其他像DB4这样的例子就是在这个严格边界的边缘上出血系数(系数的当前表示没有问题作为数组列表[CA,CD1 ... CDN].另一个问题是我只用了2 ^数据的N个边长方体.

从理论上讲,我认为应该可以确保不会出现"流血".这种小波分解和重组的算法在"数字接收器C"中讨论 - 由William Press,Saul A teukolsky,William T. Vetterling和Brian P. Flannery(第二版).虽然这种算法假定边缘处的反射而不是其他形式的边缘扩展(如zpd),但该方法通用性足以用于其他形式的扩展.

关于如何将这项工作扩展到其他小波的任何建议?

注意:此查询也发布在http://groups.google.com/group/pywavelets上

谢谢,Ajo

import pywt
import sys
import numpy as np

def waveFn(wavelet):
    if not isinstance(wavelet, pywt.Wavelet):
        return pywt.Wavelet(wavelet)
    else:
        return wavelet

# given a single dimensional array ... returns the coefficients.
def wavedec(data, wavelet, mode='sym'):
    wavelet = waveFn(wavelet)

    dLen = len(data)
    coeffs = np.zeros_like(data)
    level = pywt.dwt_max_level(dLen, wavelet.dec_len)

    a = data    
    end_idx = dLen
    for idx in xrange(level):
        a, d = …
Run Code Online (Sandbox Code Playgroud)

python signal-processing multidimensional-array wavelet

8
推荐指数
1
解决办法
3028
查看次数

Matlab - 信号噪声消除

我有一个数据向量,其中包含-20 20范围内的整数.

贝娄是一个价值观的情节:

在此输入图像描述

这是来自矢量数据的96个元素的样本.从上图可以看出,大多数元素位于区间-2,2中.

我想消除数据中的噪音.我想消除低振幅峰值,并保持高振幅峰值,即像指数74那样的峰值.

基本上,我只想增加高振幅峰值和低振幅峰值之间的对比度,以及是否可以消除低振幅峰值.

你能建议我这样做吗?

我尝试过mapstd功能,但问题是它还能使高振幅峰值归一化.

我在考虑使用小波变换工具箱,但我不知道如何从小波分解系数中重建数据.

你能给我一个这样做的方法吗?

matlab signal-processing wavelet

8
推荐指数
3
解决办法
4万
查看次数

在Python中Matlab的cwt()相当于什么?(连续一维小波变换)

我想计算具有不同尺度和时移的信号的小波.

在Matlab中使用Wavelet Toolbox中cwt()提供的函数(连续1-D小波变换),我可以指定我想要的比例作为cwt()的参数,它将返回所有可能的时移:

x = [1, 2, 3, 4];
scales = [1, 2, 3];
wavelet_name = 'db1';
coefs = cwt(x,scales, wavelet_name);

>> coefs =   

   -0.0000   -0.0000   -0.0000    0.0000
   -0.7071   -0.7071   -0.7071   -0.7071
   -1.1553   -1.1553   -1.1553    1.7371
Run Code Online (Sandbox Code Playgroud)

我怎样才能在Python中实现这一目标?

到目前为止,这是我的两次尝试:

  1. PyWavelets(Python中的离散小波变换)中,我看不出如何指定小波的scale参数.
  2. scipy.signal.cwt,我找不到我可以传递给scipy.signal.cwt的内置小波函数列表:我想至少拥有最常见的小波函数,如sym2和db1.(例如,参见Matlab的内置小波列表).

python matlab signal-processing wavelet

8
推荐指数
1
解决办法
2984
查看次数

如何转换CorelDraw .WI小波压缩图像

我有一个.WI图像的大样本我需要转换为例如JPEG,但格式现在似乎已经不存在了.

mimetype是image/wavelet.

压缩算法由Summus开发,Summus是一家现在似乎已经不复存在的美国公司.

最后一个CorelDraw支持该格式是在32位Windows下.如果我沿着硬件路线走下去,我需要能够通过例如REST来调用服务器.

我认为在*nix下djvulibre可能能够打开文件,但我还没有能够测试它.

另一种选择是自己重新实现编解码器.

能够编写脚本是一件好事.

这是一个示例文件http://www.wolfgang-rolke.de/graphics/wavelet.wi

file-format image-processing file-conversion coreldraw wavelet

8
推荐指数
0
解决办法
344
查看次数

时变频率的频谱图与标度图

我正在比较特定信号的 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              # Sampling rate = number of measurements per second in [Hz]
t   = np.arange(-10,10, 1 / f_s) # Time between [-10s,10s].
T1  = np.tanh(t)/2  + 1.0 # Period in [s]
T2  = 0.125               # Period in [s]
f1  = 1 / T1              # Frequency …
Run Code Online (Sandbox Code Playgroud)

python signal-processing fft wavelet pywavelets

8
推荐指数
1
解决办法
1680
查看次数