【问题标题】:How do I eliminate "uninteresting" parts of waveform from a non-uniform waveform using MATLAB functions?如何使用 MATLAB 函数从非均匀波形中消除波形的“无趣”部分?
【发布时间】:2020-01-26 06:24:34
【问题描述】:

我有以下性质的(某人爬楼梯的)信号。这是一个在 6 分钟的楼梯上升期间价值 38K + 样本的信号。有一些低频噪音的部分是人们需要转弯才能到达下一段楼梯的时间(因此不算作为楼梯上升。)

图1

这就是为什么我需要为只接受楼梯上升数据的深度学习模型去掉它。本质上,我只需要这个人爬楼梯的高频区域。我可以手动消除它,但由于有 58 个这样的信号,这将花费我很多时间。

我解决这个问题的方法是用方波调制这个信号,低频区域为 0,高频区域为 1,然后将信号相乘。但问题是如何创建这样一个可以自行检测高频和低频区域的方波信号?

我尝试对信号进行包络(使用 MATLAB 的包络 rms 函数),得到以下结果:

图2

如您所见,包络 rms 信号很好地遵循了函数。但我不知道如何从中创建一个调制方波函数(基本上是我要求的可变脉宽调制波形。)

PS:我曾考虑使用高通滤波器,但这不起作用,因为在高频爬楼梯区域中有一些低频信号我无法移除。我也想过使用某种形式的上升/下降沿检测(用于包络 rms 函数),但没有找到实现它的实用方法。)请指教。

提前感谢您的帮助, 什雷亚

感谢 David 在我的数据集上提出的阈值化建议,我得到了这些结果......尽管我再次陷入试图摆脱零之间的冗余峰值(见下图)接下来我该怎么做?

图3

我想我已经能够解决我的问题,即能够使用以下过程成功地将波形的“有趣”部分从整个原始波形中分离出来(供读者将来参考:)

如图 1 所示的非均匀波形可以应用“envelope(rms)”MATLAB 函数来获得如图 2 中的橙色函数。随后,我使用 MATLAB 自己的“idfilt”过滤了这个enveloperms 波形“ 功能。这使我能够摆脱波形“有趣”部分之间发生的不需要的尖峰(零之间)。然后,使用阈值,我将此波形在“有趣”部分转换为等于 1,在“不感兴趣”部分转换为 0,给我一个 pulse-width modulated 方波形,仅遵循“原始波形的有趣部分(在图 1 中)然后我将方波形与原始函数相乘,并能够过滤掉“不感兴趣”的部分,如图 4 所示。

图4

感谢大家的帮助!该线程现已解决!

【问题讨论】:

  • 您是否尝试过使用高通滤波器?我认为它会有更好的性能并且应该更容易实现。
  • 请不要将链接描述与替代文本混淆。方括号中的内容是在无法显示时替换图像的内容。请勿将其用于散文。
  • @MadPhysicist 哈哈抱歉,这是我发布的第一个问题。但谢谢你的建议:)
  • @HeladioAmaya 请看我的“PS:”评论...这解释了为什么我不能简单地使用高通滤波器:(
  • 当包络值低于某个阈值时,您能否简单地删除观察值?这是一个简单的索引操作data(envelope<threshold) = [](在 Matlab 中)。

标签: python matlab deep-learning signal-processing modulation


【解决方案1】:

我想我已经能够解决我的问题,即能够使用以下过程成功地将波形的“有趣”部分从整个原始波形中分离出来(供读者将来参考:)

如图 1 所示的非均匀波形可以应用“envelope(rms)”MATLAB 函数来获得如图 2 中的橙色函数。随后,我使用 MATLAB 自己的“idfilt”过滤了这个enveloperms 波形“ 功能。这使我能够摆脱波形“有趣”部分之间发生的不需要的尖峰(零之间)。然后,使用阈值,我将此波形在“有趣”部分转换为等于 1,在“不感兴趣”部分转换为 0,给我一个 pulse-width modulated 方波形,仅遵循“原始波形的有趣部分(在图 1 中)然后我将方波形与原始函数相乘,并能够过滤掉“不感兴趣”的部分,如图 4 所示。

感谢大家的帮助!该线程现已解决!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    • 2014-12-14
    • 2013-02-25
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 2014-02-20
    相关资源
    最近更新 更多