我一直在尝试在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.5米到1.0米再变为4.5米),但我似乎没有看到使用小波的任何差异。在最先进的方法中,经常使用db4小波。
疑惑:
这个实现是否正确?
如何设置截止频率?
如何实施过滤器库?
提前致谢。
答案 0 :(得分:0)
对我来说,要执行的操作不是很清楚,但是您需要在小波算法中使用小波滤波器。你有小波工具箱吗?它有很好的文档!
小波变换会执行带通滤波,因此您可能需要使用其他算法。要了解信号中的3.75 Hz或7.50 Hz,可以计算上下限,如果您知道输入的采样率。
看看this post,它提供了一些指向matlab脚本的链接,用于没有小波工具箱时可以使用的快速小波变换(一系列滤波和上/下采样组合)。 / p>
请记住,快速小波变换确实会使用下采样,因此它不会“未抽取”。在小波工具箱中的WaveLab和其他地方,有很多方法可以做到这一点(有关概述,请参见this paper)。多读一些书可能是一个好主意,该论文中的参考文献应该可以解决问题。
最后一个警告:db4名称有时用于具有4个系数(2个消失力矩)的滤波器,有时用于具有4个消失力矩(8个系数)的滤波器! Google“ Daubechies 4”,您会找到两者。