''' ============== 特征提取的类 =====================
时域特征 :11类
频域特征 : 13类
总共提取特征 : 24类参考文献 英文文献 016_C_(Q1 时域和频域共24种特征参数 )  Fault diagnosis of rotating machinery based on multiple ANFIS combination with GAs'''import numpy as npimport scipy.stats
import matplotlib.pyplot as pltclass Fea_Extra():def __init__(self, Signal, Fs = 25600):self.signal = Signalself.Fs = Fsdef Time_fea(self, signal_):"""提取时域特征 11 类"""N = len(signal_)y = signal_t_mean_1 = np.mean(y)                                    # 1_均值(平均幅值)t_std_2  = np.std(y, ddof=1)                             # 2_标准差t_fgf_3  = ((np.mean(np.sqrt(np.abs(y)))))**2           # 3_方根幅值t_rms_4  = np.sqrt((np.mean(y**2)))                      # 4_RMS均方根t_pp_5   = 0.5*(np.max(y)-np.min(y))                     # 5_峰峰值  (参考周宏锑师姐 博士毕业论文)#t_skew_6   = np.sum((t_mean_1)**3)/((N-1)*(t_std_3)**3)t_skew_6   = scipy.stats.skew(y)                         # 6_偏度 skewness#t_kur_7   = np.sum((y-t_mean_1)**4)/((N-1)*(t_std_3)**4)t_kur_7 = scipy.stats.kurtosis(y)                        # 7_峭度 Kurtosist_cres_8  = np.max(np.abs(y))/t_rms_4                    # 8_峰值因子 Crest Factort_clear_9  = np.max(np.abs(y))/t_fgf_3                   # 9_裕度因子  Clearance Factort_shape_10 = (N * t_rms_4)/(np.sum(np.abs(y)))           # 10_波形因子 Shape fatort_imp_11  = ( np.max(np.abs(y)))/(np.mean(np.abs(y)))  # 11_脉冲指数 Impulse Fatort_fea = np.array([t_mean_1, t_std_2, t_fgf_3, t_rms_4, t_pp_5,t_skew_6,   t_kur_7,  t_cres_8,  t_clear_9, t_shape_10, t_imp_11 ])#print("t_fea:",t_fea.shape,'\n', t_fea)return t_feadef Fre_fea(self, signal_):"""提取频域特征 13类:param signal_::return:"""L = len(signal_)PL = abs(np.fft.fft(signal_ / L))[: int(L / 2)]PL[0] = 0f = np.fft.fftfreq(L, 1 / self.Fs)[: int(L / 2)]x = fy = PLK = len(y)# print("signal_.shape:",signal_.shape)# print("PL.shape:", PL.shape)# print("L:", L)# print("K:", K)# print("x:",x)# print("y:",y)f_12 = np.mean(y)f_13 = np.var(y)f_14 = (np.sum((y - f_12)**3))/(K * ((np.sqrt(f_13))**3))f_15 = (np.sum((y - f_12)**4))/(K * ((f_13)**2))f_16 = (np.sum(x * y))/(np.sum(y))f_17 = np.sqrt((np.mean(((x- f_16)**2)*(y))))f_18 = np.sqrt((np.sum((x**2)*y))/(np.sum(y)))f_19 = np.sqrt((np.sum((x**4)*y))/(np.sum((x**2)*y)))f_20 = (np.sum((x**2)*y))/(np.sqrt((np.sum(y))*(np.sum((x**4)*y))))f_21 = f_17/f_16f_22 = (np.sum(((x - f_16)**3)*y))/(K * (f_17**3))f_23 = (np.sum(((x - f_16)**4)*y))/(K * (f_17**4))#f_24 = (np.sum((np.sqrt(x - f_16))*y))/(K * np.sqrt(f_17))    # f_24的根号下出现负号,无法计算先去掉#print("f_16:",f_16)#f_fea = np.array([f_12, f_13, f_14, f_15, f_16, f_17, f_18, f_19, f_20, f_21, f_22, f_23, f_24])f_fea = np.array([f_12, f_13, f_14, f_15, f_16, f_17, f_18, f_19, f_20, f_21, f_22, f_23])#print("f_fea:",f_fea.shape,'\n', f_fea)return f_feadef Both_Fea(self):""":return: 时域、频域特征 array"""t_fea = self.Time_fea(self.signal)f_fea = self.Fre_fea(self.signal)fea = np.append(np.array(t_fea), np.array(f_fea))#print("fea:", fea.shape, '\n', fea)return fea


题主本硕机械专业,自学转互联网 算法岗成功,获得阿里、字节、美团、华为等 15+ offer
后续会在公众号 「苏学算法」分享各类学习笔记、面试经验,感兴趣的可以关注一波

机械振动信号 常见时域、频域特征提取 Python 代码相关推荐

  1. 机械振动信号13个频域指标

    频域统计指标计算公式 振动信号频域分析首先需要把信号的时域波形借助离散傅里叶变换转化为频谱信息,公式如下: 式中:x(kΔt)x(k\Delta t)x(kΔt)为振动信号的采样值:NNN为采样点数: ...

  2. hog特征提取python代码_hog特征提取-python实现

    [转载自 https://blog.csdn.net/ppp8300885/article/details/71078555] 全部代码: importcv2importnumpy as npimpo ...

  3. hog特征提取python代码_HOG特征提取

    我想提取阿拉伯笔迹线条图像的HOG特征.代码如下.所以,我需要关于如何输入图像和如何输出特征的帮助.有谁能帮我一下吗.在import numpy as np from scipy import sqr ...

  4. 机械振动信号15个时域统计指标

    时域统计指标计算公式 振动信号原始统计特征分为两类:时域统计特征.频域统计特征. 信号的时域特征是通过统计分析信号的各种时域参数.指标的估计或计算得到的,如表所示,分为有量纲参数和无量纲参数两种,其中 ...

  5. 声学特征提取-python

    声学特征提取-python 代码在我的github上AcousticFeatureExtraction 使用Librosa音频处理库和openSMILE工具包,进行简单的声学特征提取,包括韵律学特征( ...

  6. 时序信号的时域、频域、时-频域特征提取

    文章目录 时域特征提取 频域特征提取 时-频域特征提取 参考资料 在面对工业中的传感器采集到的高维的信号,如振动信号,通常需要对数据进行统计特征提取,以进行降维.对于这类时序信号,常用的有时域.频域和 ...

  7. 【语音信号处理】1语音信号可视化——时域、频域、语谱图、MFCC详细思路与计算、差分

    基本语音信号处理操作入门 1. 数据获取 2. 语音信号可视化 2.1 时域特征 2.2 频域特征 2.3 语谱图 3. 倒谱分析 4. 梅尔系数 4.1 梅尔频率倒谱系数 4.2 Mel滤波器原理 ...

  8. 频谱分析:基于python画出时域频域波形

    一,FFT解释 FFT(Fast Fourier Transformation)是离散傅氏变换(DFT)的快速算法.即为快速傅氏变换.它是根据离散傅氏变换的奇.偶.虚.实等特性,对离散傅立叶变换的算法 ...

  9. python频域三维图_深入浅出通信原理连载1-21(Python代码版)

    深入浅出通信原理Python代码版 深入浅出通信原理是陈爱军的心血之作,于通信人家园连载,此处仅作python代码笔记训练所用 陈老师的连载从多项式乘法讲起,一步一步引出卷积.傅立叶级数展开.旋转向量 ...

最新文章

  1. 使用 NumPy 的标准化技巧
  2. 程序员面试题精选100题(22)-整数二进制表示中1的个数[算法]
  3. [Selenium] 操作新弹出窗口之验证标题和内容
  4. select下拉列表
  5. 潘多拉固件设置ipv6_k2p下潘多拉/openwrt配置ipv6地址
  6. 静态文件html中加入php的Url,YII中URL伪静态加前缀.html的方法
  7. python爬取淘宝数据魔方_淘宝数据魔方是什么(淘宝数据魔方技术架构解析)
  8. 【PowerDesigner】Mysql设计工具 16.5破解
  9. 分析了网易云数十万歌单后写出2020年的最全歌单推荐
  10. 一个非知识库的中文分词算法实现
  11. OFDM和OFDMA区别笔记
  12. mysql事务锁死_mysql事务里锁死
  13. 微信SEO优化搜索排名如何做
  14. 【送书】就业大崩溃,你是否正在从事20年内大概率被淘汰的职业?
  15. #物联网感知实验#proteus仿真入门
  16. 智测优聘梳理|工伤认定/工伤假的相关知识
  17. pandas表格行列互换
  18. rapidio学习使用过程摘抄
  19. 关于FRDM-K64F在Keil下的调试
  20. 模拟退火模型(matlab实现)

热门文章

  1. blockchain-wallet-sdk中的助记词部分使用示例
  2. OKhttp+Gson实现从网络上获取最新新闻
  3. 怎么用python做战斗机_少儿编程分享:手把手教你用Python编写战斗机游戏(四)
  4. Servlet转发和重定向的异同
  5. 基于matlab的光伏模块输出特性及mppt的建模与仿真,基于MATLAB的光伏模块输出特性及MPPT的建模与仿真...
  6. 栈顶指针不同进行“进、出”栈的易错题
  7. datagirdview的单元格双击事件
  8. 行人重识别论文阅读(2021.7.3-7.11)
  9. js为什么设置为单线程,怎么实现多线程
  10. Oracle踩坑之路--ORA-01861:文字与格式字符串不符