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

时间:2016-11-22 16:34:45

标签: 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.5米到1.0米再变为4.5米),但我似乎没有看到使用小波的任何差异。在最先进的方法中,经常使用db4小波。

疑惑:

  1. 这个实现是否正确?

  2. 如何设置截止频率?

  3. 如何实施过滤器库?

  4. 提前致谢。

1 个答案:

答案 0 :(得分:0)

对我来说,要执行的操作不是很清楚,但是您需要在小波算法中使用小波滤波器。你有小波工具箱吗?它有很好的文档!

小波变换会执行带通滤波,因此您可能需要使用其他算法。要了解信号中的3.75 Hz或7.50 Hz,可以计算上下限,如果您知道输入的采样率。

看看this post,它提供了一些指向matlab脚本的链接,用于没有小波工具箱时可以使用的快速小波变换(一系列滤波和上/下采样组合)。 / p>

请记住,快速小波变换确实会使用下采样,因此它不会“未抽取”。在小波工具箱中的WaveLab和其他地方,有很多方法可以做到这一点(有关概述,请参见this paper)。多读一些书可能是一个好主意,该论文中的参考文献应该可以解决问题。

最后一个警告:db4名称有时用于具有4个系数(2个消失力矩)的滤波器,有时用于具有4个消失力矩(8个系数)的滤波器! Google“ Daubechies 4”,您会找到两者。