基于EXCEL表格的一维数字信号数据增强处理
发了这么多帖子,好多小伙伴也成功运行通了我的代码和数据,但是普遍存在两个问题,第一个问题:
问题1:请问__init__() missing 2 required positional arguments: ‘filters’ and ‘kernel_size’ 这个错误怎么解决?
解答:由于现在Tensorflow版本的原因,tensorflow2.0.0的话是没有问题的,Tensorflow2.3.1就不行了,就得将卷积层里的’filters’ 和 'kernel_size’去除,直接写数字。
问题2:怎么对凯斯西储轴承故障信号进行数据增强?
解答:很多小伙伴在运行通我的代码后,开始想训练自己的数据,那么问题就来了,如何对一维数字信号进行数据增强。总共分八步进行制作:
1、打开凯斯西储轴承故障数据
由于凯斯西储官网上的数据是mat文件,所以得使用matlab打开
可以看到一个数据长度有121265个点位。
2、新建并打开excel表格
3、将数据从matlab黏贴到excel
4、数据剪段(说高端点叫滑动窗口)
公式为:=OFFSET($A$1,ROW(A1)-1+COLUMN(A1)*96-96,)
公式放在B1位置,其中这个96就是滑动步长,然后向下
拖拽到自己想要的数据长度位置,我用的1024所以拖拽到第1024行。再然后向右拖拽直到某一行中出现0为止。那么基本就完成数据增强了。这样可以裁剪出(121265-1024)➗96=1252个样本。
至于滑动步长没必要纠结到底需不需要是主轴回转一圈的时间所对应传感器才出来的信号点位个数。因为人家凯斯西储官网上都说了,所给的电机转速是大概值,它并不是就非常稳定的某个转速不变。
5、归一化处理
归一化非常好实现,可以根据自己的想法将数据归一化到(0,1),[-1,1]之间都可以。
6、再黏贴
将归一化好的数据选中复制,打开excel其他sheet,点击A1,然后进行123(值)黏贴,来去除公式编辑
7、再黏贴
将第六步中的数据进行再次选中,复制,打开一个没数字的sheet,点击A1进行转置黏贴。
8、做标签
将除了步骤7中最终黏贴到的sheet以外的sheet全部删除。并在第1025列中每行进行标定,例如标注:滚珠故障,拖拽至第1252行,保存文件成CSV格式。
这样就完成了我们所需要训练的数据集。
这只是比较直观简单的处理方法,有些大佬通过matlab或者python直接一步到位,这种方式可以再CSDN、百度以及g什么那个全英文的网站里寻找。