当前位置: 首页 > news >正文

【使用Hilbert变换在噪声信号中进行自动活动检测】基于Hilbert变换和平滑技术进行自动信号分割和活动检测研究(Matlab代码实现)

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

基于Hilbert变换和平滑技术进行自动信号分割和活动检测是一种常用的方法,它可以帮助检测出噪声信号中的活动部分,并进行信号分割。

Hilbert变换是一种将实函数转换为复函数的数学变换,它将信号在时域上的振幅信息与相位信息进行分离。在活动检测中,可以利用Hilbert变换提取信号的振幅特征,以判断信号的活动程度。下面是一种基于Hilbert变换和平滑技术的自动活动检测方法的步骤:

1. 对信号进行Hilbert变换:将要分析的噪声信号应用Hilbert变换,得到对应的复数信号。复数信号由实部和虚部组成,其中实部表示原始信号的时域振幅,虚部表示相位信息。

2. 计算信号振幅:从复数信号中提取振幅信息,可以通过计算复数信号的模值来获取信号的振幅。得到的振幅信号反映了原始信号在各个时间点的能量分布情况。

3. 应用平滑技术:为了减小噪声对活动检测的影响,可以采用平滑技术对振幅信号进行平滑处理。常用的平滑方法包括移动平均和中值滤波等。

4. 阈值判决:通过设置适当的阈值,可以将平滑后的振幅信号转换为二进制活动检测结果。通常,当信号的振幅超过阈值时,认为该时间点存在信号活动。

5. 信号分割和活动检测:基于阈值判决结果,可以进行信号分割,并以二进制形式表示信号的活动和非活动区域。

这种基于Hilbert变换和平滑技术的自动活动检测方法可以有效地检测出噪声信号中的活动部分,并进行信号分割。然而,在实际应用中,根据具体的需求和噪声信号特征,可能需要进行参数优化和算法调整,以提高活动检测的准确性和鲁棒性。

📚2 运行结果

部分代码:

% To run demo mode simply execute the following line without any input;
% Example 1 :
% alarm = envelop_hilbert()
% The script generates one artificial signal and analysis that
% v = repmat([.1*ones(200,1);ones(100,1)],[10 1]); % generate true variance profile
% y = sqrt(v).*randn(size(v));

% Example 2 : For real world signals with a certain Sampling frequency
% called (Fs) (In this example a smoothing window with length 200 msec,)
% alarm = envelop_hilbert(signal,round(0.050*Fs),1,round(0.020*Fs),1)

%% ======= calculate the analytical signal and get the envelope ====== %%
test=y(:);
analytic = hilbert(test);
env = abs(analytic);

%% =========== take the moving average of analytical signal =========== %%
env = conv(env,ones(1,Smooth_window)/Smooth_window);                       % smooth
env = env(:) - mean(env);                                                  % get rid of offset
env = env/max(env);                                                        % normalize


%% ====================== threshold the signal =============== %%
if threshold_style == 0
   hg=figure;plot(env);title('Select a threshold on the graph')
   [~,THR_SIG] =ginput(1);
   close(hg);
end
% ------------------------- Threshold Style ---------------------- %
if threshold_style
   THR_SIG = 4*mean(env);
end

nois = mean(env)*(1/3);                                 % noise level
threshold = mean(env);                                  % signal level

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]郑杰.基于Hilbert变换的水轮发电机组振动冲击信号自动检测技术及应用研究[J].水力发电, 2017, 043(008):94-98.

[2]张博,王凯,马高杰,等.小波变换及Hilbert-Huang变换在转子系统故障诊断中的应用[J].机床与液压, 2009(6):5.DOI:10.3969/j.issn.1001-3881.2009.06.080.

[3]唐春菊,刘衍平.Hilbert-Huang变换在燃声检测信号分析中的应用[J].声学与电子工程, 2011(2):21-23.

[4]徐仁林,安伟.小波降噪在信号基于EMD的Hilbert变换中的应用[J].噪声与振动控制, 2008, 28(3):4.DOI:10.3969/j.issn.1006-1355.2008.03.022.

🌈4 Matlab代码实现

http://www.lryc.cn/news/123264.html

相关文章:

  • Android 13 Launcher——屏蔽上拉到应用列表
  • Java 基础知识点
  • jenkins容器内CI/CD 项目失败问题
  • CRC 校验码
  • 代码随想录二刷day01
  • 【C++奇遇记】智能的函数探幽
  • 使用wxPython和PyMuPDF在Python中显示PDF目录的实现
  • 综述:计算机视觉中的图像分割
  • 【动态规划基础】数字三角形(IOI1994)
  • yolo源码注释2——数据集配置文件
  • Java实现根据姓名生成头像(钉钉样式)
  • 微信小程序备案流程
  • JavaScript版本ES5/ES6及后续版本
  • 解决Idea 多模块,maven项目是多层级文件夹的子项时无法加入git管理的问题
  • yolo源码注释4——yolo-py
  • 计算机网络中速率和带宽的区别
  • MySQL数据库练习
  • Redis BitMap/HyperLogLog/GEO/布隆过滤器案例
  • POI处理excel,根据XLOOKUP发现部分公式格式不支持问题
  • 第一次PR经历
  • 背上小书包准备面试之TypeScript篇
  • 【Spring】浅谈spring为什么推荐使用构造器注入
  • 在阿里云Linux服务器上部署MySQL数据库流程
  • 实战——OPenPose讲解及代码实现
  • 专注于创意设计,为您的小程序和网站建设带来更多的可能性
  • ATF(TF-A)安全通告 TFV-6 (CVE-2017-5753, CVE-2017-5715, CVE-2017-5754)
  • vue3 基础语法 02
  • 版本控制工具——git
  • 超详细,自动化测试实战-获取配置文件信息(实例源码)
  • spring 2.7.14 cors 设置 allowedOrigins(“*“)通配符 失效怎么解决