星期日, 16. 六月 2019 07:41下午
最近忙于项目,因此本期博客就简单梳理一下信号(笔者做的多数情况下是三相电流数据)下的基本时域和频域特征。
提取特征可以用tsfresh这个库来实现,但是这里还是采用了numpy。
该部分的程序代码笔者写了一个可以直接调用的类,见笔者git
1 时域特征
假设共有m条数据,每一条数据长度为n,第i条数据第j个数据点用\(z_{ij}\)表示,并且z为数组,不能是列表,否则以下一些程序会报错。以下主要从数学公式和python实现来叙述。
(1) 含量纲的时域特征
含量纲的时域特征,笔者简单整理出了十个,其中包括最大值(maximum)、最小值(minimum)、极差(range)、均值(mean)、中位数(media)、众数(mode)、标准差(standard deviation)、均方根值(root mean square/rms)、均方值(mean square/ms)、k阶中心/原点矩。
导入所需要的库
import numpy as np
最大值
max_z = np.max(z, axis=1)
最小值
min_z = np.min(z, axis=1)
极差
range_z = np.max(z, axis=1)-np.min(z, axis=1)
均值
mean_z = np.mean(z, axis=1)
中位数
将一组数从小到大排序,出现在中间的数(当n为奇数时)或者中间两个数的均值(当n为偶数时)
media_z = np.median(z, axis=1)
众数
一组数从大到小排序,出现次数最多的数(当有多个数出现次数一样,取最小的数)
import scipy.stats