繁体   English   中英

如何使用 MATLAB 函数从非均匀波形中消除“无意义”的波形部分?

[英]How do I eliminate “uninteresting” parts of waveform from a non-uniform waveform using MATLAB functions?

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

图1

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

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

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

图 2

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

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

提前感谢您的帮助,Shreya

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

图 3

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

A non-uniform waveform such as Figure 1 can have the "envelope(rms)" MATLAB function applied to obtain the orange function such as the one in Figure 2. Subsequently, I filtered this enveloperms waveform using MATLAB's very own "idfilt" function. 这使我能够摆脱波形“有趣”部分之间发生的不需要的尖峰(零之间)。 然后,使用阈值,我将此波形在“有趣”部分转换为等于 1,在“不感兴趣”部分转换为 0,给我一个脉宽调制方波形,它仅遵循原始波形的“有趣部分(在图 1)然后我将我的方波与原始 function 相乘,并能够过滤掉“无趣”的部分,如图 4 所示。

图 4

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

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

A non-uniform waveform such as Figure 1 can have the "envelope(rms)" MATLAB function applied to obtain the orange function such as the one in Figure 2. Subsequently, I filtered this enveloperms waveform using MATLAB's very own "idfilt" function. 这使我能够摆脱波形“有趣”部分之间发生的不需要的尖峰(零之间)。 然后,使用阈值,我将此波形在“有趣”部分转换为等于 1,在“不感兴趣”部分转换为 0,给我一个脉宽调制方波形,它仅遵循原始波形的“有趣部分(在图 1)然后我将我的方波与原始 function 相乘,并能够过滤掉“无趣”的部分,如图 4 所示。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM