matlab - 在 matlab 中实现低通 Daubechies 小波滤波器

标签 matlab filter wavelet lowpass-filter

我一直在尝试在 MATLAB 中实现这两个过滤器:

Daubechies 4 未抽取小波 3.75 Hz e 小波 7.5Hz
Daubechies 4 未抽取滤波器组 7.5 Hz

我对小波工具箱进行了大量研究,但我仍然无法弄清楚该算法的正确实现是什么,以及截止频率的定义。

有人有这方面的经验吗?

我尝试的是:

movementOut = movementIn;
% Set Daubechies wavelet name.
wname = strcat('db',num2str(order));
% Compute the corresponding scaling filter.
daubechies=dbwavf(wname);
movementOut = filter(daubechies,1,coordinates_values);
%movementOut = filtfilt(daubechies,1,coordinates_values);

我都试过了 filterfiltfilt但输出结果似乎非常相似。我正在处理 Kinect Z 数据(从 4.5m 到 1.0m,然后再到 4.5m),但我似乎没有看到使用小波的任何区别。在最先进的方法中,经常使用 db4 小波。

疑问:
  • 这个实现正确吗?
  • 如何设置截止频率?
  • 如何实现滤波器组?

  • 提前致谢。

    最佳答案

    我不太清楚你想做什么,但你需要在小波算法中使用小波滤波器。你有小波工具箱吗?它有很好的文档!
    小波变换进行带通滤波,因此您可能需要使用另一种算法来实现您的目的。要查看信号中的 3.75 Hz 或 7.50 Hz,您可以计算上限和下限,如果您知道输入的采样率。
    看看this post ,它提供了一些指向用于快速小波变换(一系列滤波和上/下采样组合)的 matlab 脚本的链接,如果您没有小波工具箱,您可以使用它。
    请注意,快速小波变换确实使用下采样,因此它不是“未抽取的”。有很多方法可以做到这一点,在小波工具箱中,WaveLab和其他地方(有关概述,请参阅 this paper)。多读一些书可能是个好主意,那篇论文中的引用文献应该可以解决问题。
    最后一个警告:名称 db4 有时用于具有 4 个系数(2 个消失矩)的滤波器,有时用于具有 4 个消失矩(8 个系数)的滤波器!谷歌“Daubechies 4”,你会找到两者。

    关于matlab - 在 matlab 中实现低通 Daubechies 小波滤波器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40747080/

    相关文章:

    matlab - 为什么 Matlab 在评估数组时错误地返回 0,但在评估标量时正确返回 NaN?

    使用 ElasticSearch/Nest 过滤空字符串

    fft - 生成信号的标度图

    finance - 使用小波变换对金融时间序列数据进行去噪

    r - 连续小波变换

    c++ - C++ 中与 Matlab 中的 wpd 和 newpnn 函数类似的函数?

    string - 从 excel 中将字符串读入 Matlab?

    php - 仅从数组中获取 5 个元素

    Python 过滤掉日期范围之外的事件(过去一小时)

    java - java中的im2bw matlab?