Python计算时域、频域特征参数 您所在的位置:网站首页 weights文件滚动均方差怎么读取 Python计算时域、频域特征参数

Python计算时域、频域特征参数

#Python计算时域、频域特征参数| 来源: 网络整理| 查看: 265

python计算时域数据的时域、频域统计参数

代码来自师兄分享的程序,以免丢失,在此当作笔记

最近重新整理了一篇,想拿来直接用的,可以转至:更详细,封装完善,拿来直接用

def time_features(data): '''计算时域特征参数,输入的data为 样本数*样本长度 的二维数组''' f_sum = np.sum(data, axis=-1) # 总能量 f_min = np.min(data, axis=-1) # 最小值 f_max = np.max(data, axis=-1) # 最大值 f_std = np.std(data, axis=-1) # 标准差 f_var = np.var(data, axis=-1) # 方差 f_pk = f_max - f_min # 极差 f_avg = np.mean(np.abs(data), axis=-1) # 整流平均值 f_sk = np.mean(((data-np.mean(data, axis=-1)[:, :, np.newaxis]) ** 3), axis=-1) # 偏度 f_ku = np.mean(((data-np.mean(data, axis=-1)[:, :, np.newaxis]) ** 4), axis=-1) / np.power(f_var, 2) # 峭度 f_rms = norm(data, 2, axis=-1) / np.sqrt(data.shape[-1]) # 均方根 s = f_rms / f_avg # 波形因子 c = f_pk / f_rms # 峰值因子 i = f_pk / f_avg # 脉冲因子 xr = np.mean(np.sqrt(abs(data)), axis=-1) ** 2 L = f_pk / xr # 裕度因子 return np.transpose(np.array([f_sum, f_min, f_max, f_std, f_var, f_pk, f_avg, f_sk, f_ku, f_rms, s, c, i, L]), [1, 0, 2]) def freq_features(data): '''计算频域特征参数,输入的data是FFT后的数据,为 样本数*样本长度 的二维数组''' f_sum = np.sum(data, axis=-1) # 总能量 f_max = np.max(data, axis=-1) f_min = np.min(data, axis=-1) # 最小值 f_std = np.std(data, axis=-1) # 标准差 f_var = np.var(data, axis=-1) # 方差 f_pk = f_max - f_min # 极差 f_avg = np.mean(np.abs(data), axis=-1) # 整流平均值 f_sk = np.mean(((data-np.mean(data, axis=-1)[:, :, np.newaxis]) ** 3), axis=-1) # 偏度 f_rms = norm(data, 2, axis=-1) / np.sqrt(data.shape[-1]) # 均方根 return np.transpose(np.array([f_sum, f_min, f_std, f_var, f_pk, f_avg, f_sk, f_rms]), [1, 0, 2])

频域的特征参数还可以根据不同频段分割后分别计算,这样可以增加特征数量。

matlab版:https://blog.csdn.net/weixin_44620044/article/details/105617749

转载请注明出处,谢谢!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有