我一直在尝试在 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);
我都试过了
filter
和 filtfilt
但输出结果似乎非常相似。我正在处理 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/