【发布时间】:2017-04-06 10:28:36
【问题描述】:
我一直在尝试在 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 小波。
疑问:
这个实现是否正确?
如何设置截止频率?
如何实现滤波器组?
提前致谢。
【问题讨论】:
-
没有任何背景,很难理解你到底想做什么。您确实要对信号进行低通滤波吗?为什么要应用小波?信号的采样率是多少?您的目标是过滤器的实时应用吗?您是否尝试过更简单的过滤器设计,例如巴特沃斯?
-
@Diphtong 是的,我想用定义截止频率的 db4 进行低通滤波器。我想应用小波,因为我想复制由特定作者制作的最新作品。我的 fs = 200 赫兹。用于 pos 处理的过滤器。我已经实现了巴特沃斯过滤器,它们工作正常。我只是可以用截止频率为 db4 的实现提供一个适当的解决方案。
-
虽然我无法回答您的问题,但我可以提供一些建议:Filtfilt 很可能不是一个好主意。此外,如果你想实现这个小波滤波器,你需要得到一本关于小波的好书,并从基础开始。这不是关于实施,而是关于基本理解(我也没有)。这个话题对我来说似乎相当困难。它可能会花费你一个多月的时间。最后,您应该记住,在数字滤波器中,截止频率取决于采样频率。您应该将截止频率表示为奈奎斯特频率的一部分。
-
@Diphtong 是的,这是使用巴特沃斯过滤器的过滤器/过滤器的基础知识。您可以根据这些频率计算比率,并且执行起来非常简单。但由于某种原因,似乎不存在添加截止频率的 daubechies 实现(我找不到任何具有常规和验证实现的示例)
标签: matlab filter wavelet lowpass-filter