以前我们梳理过常用的有量纲时域特征指标和无量纲时域特征指标,其实特征提取方法中,一些频谱特征指标也是十分有用的。

下述频域特征指标是根据信号的功率谱求得的。在故障诊断或者其他应用场景下,可以与时域指标以及其他指标一同作为特征向量的一部分,丰富特征量种类,提升诊断正确率。

1.理论介绍

1.0.功率谱

功率谱的相关介绍在之前讲到过:

Mr.看海:信号频域分析方法的理解(频谱、能量谱、功率谱、倒频谱、小波分析)

下述频域特征都是在功率谱基础上计算求得的,但是为什么不用频谱呢?个人认为是因为功率谱在表达功率信号乃至随机信号频域特征时更具有普适性,毕竟功率信号就不能用频谱表示。

1.1.重心频率

重心频率能够描述信号在频谱中分量较大的信号成分的频率,反映信号功率谱的分布情况。换句话说,对于给定的频带范围,低于重心频率的频率范围内包含的能量是信号总能量的一半。

另一种理解方式,重心频率是以功率谱的幅值为权值的加权平均,所以重心频率会向功率谱幅值更大(即权值更大)的位置移动。

更形象一点,如果把下图中功率谱曲线围起来的区域看作一块木板,那么当把这块木板放在重心频率虚线所在的钢丝上时,木板刚好能保持平衡。

低频幅值较大时,重心距离原点较近

1.2.均方根频率

均方根频率就是均方频率的算数平方根,它也有一个辅助理解的物理含义:如果把下图中功率谱曲线围起来的区域看作一块木板,那么当这块木板围绕y轴旋转时,均方根频率所在位置到原点的距离就是旋转体的惯性半径(指物体质量假设的集中点到转动轴间的距离)。

均方根频率可以看做惯性半径

1.3.均方频率

均方频率是均方根频率的平方。

与重心频率不同,均方频率是信号频率平方的加权平均,同样以功率谱的幅值为权。

重心频率、均方频率、均方根频率都是描述功率谱主频带位置分布的。

1.4.频率标准差

频率标准差是重心频率为中心的惯性半径。若重心附近的频谱幅值较大,则频率标准差较小;若重心附近的频谱较小,则频率标准差较大。 频率标准差描述功率谱能量分布的分散程度。

频率标准差表示功率谱能量分布的分散程度

1.5.频率方差

频率方差就是频率标准差的平方,是衡量功率谱能量分散程度的另一个度量维度。就不过多描述了。

频率标准差和频率方差都是描述功率谱能量集中/分散程度的。

2.MATLAB代码实现

笔者最近在做这样一件事情。由于搞科研写论文时,对特征提取的需要往往是集中性的、多种类的、需求各异的,所以我把之前介绍过的这些特征值:

有量纲特征值8个——最大值、最小值、峰峰值、均值、方差、标准差、均方值、均方根值(RMS)
无量纲特征值6个——峭度、偏度、波形因子、峰值因子、脉冲因子、裕度因子
频域特征值5个——重心频率、均方频率、均方根频率、频率方差、频率标准差
信息熵特征值3个——功率谱熵、奇异谱熵、能量熵
(其他相关特征若干——样本熵等熵特征值、后续还会补充其他常用、不常用的特征指标)

以上22种全都集中到一个封装函数里,实现一行代码完成特征提取。

比如提取数据“功率谱熵”就可以像这样写:

fea = genFeature(data,{'psdE'}) %对data数据求功率谱熵

如果提取数据“最大值、最小值、峰峰值、均值、方差、标准差、均方值...”这全部22种特征,就可以这样写:

fea =genFeature(data,{'max','min','mean','peak','arv','var','std','kurtosis',...'skewness','rms','waveformF','peakF','impulseF','clearanceF',...'FC','MSF','RMSF','VF','RVF',...'psdE','svdpE','eE'};  %调用genFeature函数,完成特征提取,算出的特征值会保存在fea变量里

也就是说需要提取哪个特征,在函数中直接指定就可以了。输出的fea变量里就会得到相应的这些特征值,顺序也是与输入的排序保持一致的。

这个函数的介绍如下:

function fea = genFeature(data,fs,featureNamesCell,options)
% 时域、频域、熵相关算法的信号特征提取函数
% 输入:
% data:待特征提取的时域信号,可以是二维数据,维度为m*n,其中m为数据组数,n为每组数据的长度。即每行数据为一组。行列方向不可出错
% fs:采样频率,如果不提取频域特征,fs值可以设置为1
% options:其他设置,使用结构体的方式导入。目前可设置变量为svdpEn,即奇异值的窗口长度。如果不提取svdpE特征,此值可以不设置
% featureNamesCell:拟进行特征提取的特征名称,该变量为cell类型,其中包含的特征名称为字符串,特征名称需要在下边列表中:
% 目前支持的特征(2021.11.6,共22种):
% max :最大值
% min :最小值
% mean :平均值
% peak :峰峰值
% arv  :整流平均值
% var  :方差
% std  :标准差
% kurtosis  :峭度
% skewness  :偏度
% rms       :均方根
% waveformF :波形因子
% peakF     :峰值因子
% impulseF  :脉冲因子
% clearanceF:裕度因子
% FC:重心频率
% MSF:均方频率
% RMSF:均方根频率
% VF:频率方差
% RVF:频率标准差
% psdE:功率谱熵
% svdpE:奇异谱熵
% eE:能量熵
%
% 输出:
% fea:数据data的特征值数组,其特征值顺序与featureNamesCell一一对应

需要上边这个函数文件以及测试代码的同学,可以在下述链接中获取:

特征提取(时域、频域指标) | 工具箱文档

这个函数会持续更新,有哪些想要加进去的特征指标,同学们可以在评论区留言,笔者会考虑纳入到这个“特征提取指标全家桶”中。

附录:

1.重心频率公式

式中为信号的功率谱。

2.均方频率公式

3.均方根频率

4.频率方差

5.频率标准差

频域特征指标及其MATLAB代码实现(重心频率、均方频率、均方根频率、频率方差、频率标准差)相关推荐

  1. 【熵与特征提取】基于“信息熵”的特征指标及其MATLAB代码实现(功率谱熵、奇异谱熵、能量熵)

    <三体>中对监听员的日常工作有这样一段描述: ...1379 号监听站已经存在了上千年,像这样的监听站,在三体世界中有⼏千个,它们全神贯注地聆听着宇宙间可能存在的智慧⽂明的信息... .. ...

  2. matlab小波分析工具箱原理与应用_补充:频域特征值提取的MATLAB代码实现(小波分析)...

    之前的文章信号频域分析方法的理解(频谱.能量谱.功率谱.倒频谱.小波分析)中提到了离散小波分解的例子,其参考代码如下: t_s 结果如下: 原始信号 离散小波分析结果 左侧四行是1~4阶的近似信号,右 ...

  3. matlab频域怎么提取特征值,补充:频域特征值提取的MATLAB代码实现(小波分析)...

    之前的文章信号频域分析方法的理解(频谱.能量谱.功率谱.倒频谱.小波分析)中提到了离散小波分解的例子,其参考代码如下: t_s = 0.005; %采样周期 t_start = 0.001; %起始时 ...

  4. 【语音识别】基于BP神经网络实现语音特征信号分类附matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

  5. 补充:频域特征值提取的MATLAB代码实现(小波分析)

    之前的文章信号频域分析方法的理解(频谱.能量谱.功率谱.倒频谱.小波分析)中提到了离散小波分解的例子,其参考代码如下: t_s = 0.005; %采样周期 t_start = 0.001; %起始时 ...

  6. 【信号增强】基于广义结构化收缩算法(GSSA)实现振动信号弱特征增强附matlab代码和复现论文

    1 简介 Vibration signal analysis has become one of the important methods for machinery fault diagnosis ...

  7. matlab信号频域放大的含义,频域特征是什么意思 信号频域特征参数,如重心

    信号频域特征参数,如重心频率.均方根频率是什么无论何时,请一定要相信:尽管耳边寒风呼啸,你的心灵总还有取暖的地方. 小编想使用matlab来对振动信号的频域特征参数进行提龋各位大神可以给一些每当小编考 ...

  8. 常用数据特征提取,时域特征、频域特征、小波特征提取汇总;特征提取;有效matlab代码

    clc;clear %% 导入数据 load('ct.mat') Fs=12800; a=[];c=[];w=[]; %% 1时域特征提取 for i=2:8 y=ct(:,i); a(1,i) = ...

  9. 傅里叶描述子、HOG特征描述子原理及matlab代码

    一.傅里叶描述子 傅里叶描述子的作用是用来描述图像的轮廓信息,具有平移.旋转.尺度不变性特征. 对于一幅图像,通过傅里叶描述子获得其图像轮廓信息,其本质就是空间.频域变换问题.通过将图像中的像素点进行 ...

最新文章

  1. 小手段:开启 GNOME 的窗口分组效果
  2. ORACLE 查询约束
  3. C语言结构联合位字段知识体系总结大学霸IT达人
  4. iOS 有用的代码片段
  5. 看你的样子对Vue研究挺深的,我司招Vue,五险一金有兴趣吗?
  6. jquery找祖先包含_jquery如何获取祖先元素
  7. web desktop在线演示
  8. SpokenEnglish--It's a piece of cake
  9. springMvc配置文件
  10. efi分区咋移动到c盘里_efi系统分区是什么?重装系统EFI系统分区图文教程
  11. X1000对于CPU Core的参数解读(MIPS Cache)
  12. win10和win8双系统安装
  13. 桌面IE不见的处理方法
  14. 房东家的网线不用账号和密码就能上网怎么设置路由器
  15. Github文件夹下载到本地
  16. docker 启动失败:specified both as a flag and in the configuration fir/daemon.json
  17. Adobe Premiere Pro 2022 官方 应用内教程
  18. 生活像一把无情的刻刀,让人情何以堪
  19. 高级控件之分组列表视图(ExpandableListView)
  20. ArcGIS 一级文件夹下的所有GDB中的所有要素类重命名

热门文章

  1. 抖音主页位置怎么自己创建服务器手机版,抖音账号如何搭建与定位
  2. 16.linux用户和组详解演练,useradd,usermod,chage,userdel,id,su,groups,passwd,shadow,group,gshadow等命令和文件
  3. 从一到网络管理员的面试题中看知识
  4. c语言生日创意代码_跪求一个C语言程序输出“生日快乐”(TC)
  5. (超好)xp系统遇到问题解决方法总结(提供了一个解决问题库)
  6. 一分钟教会你如何视频去水印,快进来学习
  7. 按键精灵脚本问题:第0行:没有权限: 'CreateObject'
  8. 博客园:井底那只最大的青蛙
  9. fgo终章服务器维护,FGO终局特异点攻略 终章配置及奖励详细介绍
  10. Syntax error on token