学习资料记录

学习资料记录,持续更新

包络谱是什么

包络谱。(Envelope Spectrum ):对信号进行hilbert变换之后,然后取极值,然后对取极值之后得到的一维数据取包络,对包络信号进行FFT变换得到的数据。
横坐标为频率,纵坐标为幅值。包络谱对冲击事件的故障比较敏感。包络谱图中各频率幅值的分布与的频谱图有所区别。
频谱图中故障特征频率幅值较小,包络谱图中故障特征频率的幅值很高,容易辨认。因此,相对对于频谱分析,包络谱分析剔除了不必要的频率干扰,更能够凸显故障特征频率。根据包络谱图能更容易地对滚动轴承的故障种类进行判断。
希尔伯特谱:Hilbert变换只是单纯地求信号的瞬时振幅,频率和相位,有可能出现没有意义的负频率;HHT变换先将信号进行EMD分解,得到的是各个不同尺度的分量,对每一个分量进行Hilbert变换后得到的是有实际意义的瞬时频率;傅里叶变换不能得到瞬时频率,即不能得到某个时刻的频率值。Hilbert变换是求取瞬时频率的方法,但如果只用Hilbert变换求出来的瞬时频率也不准确。
频谱与包络谱的频率分布没有多大关系:①包络谱峰值较高的地方表示原始信号在该频率处有对应的频率分量;频谱峰值高的地方表示在整个信号里和在整个时间范围内,有一个含有此频率的三角函数组分。②频谱是直接对原信号做fft;包络谱是对原信号做hilbert变换之 后的曲线取的包络线进行fft,得到的频域曲线理应不同。

包络谱程序例子

matlab链接: https://www.mathworks.com/help/signal/ref/envspectrum.html.
python链接:
https://*.com/questions/61915838/envelope-spectrum

问题:Consider using the --user option or check the permissions.

解决办法中间加个—user
pip install --user --upgrade pip # 更新pip

问题:Check the logs for full command output.

解决:更新pip

功率谱 python安装包及教程

https://pyspectrum.readthedocs.io/en/latest/tutorial_front_image.html.

np.clip的使用方法

https://blog.csdn.net/weixin_44791964/article/details/100000373
np.clip是一个截取函数,用于截取数组中小于或者大于某值的部分,并使得被截取部分等于固定值。函数如下:
学习资料记录
该函数的作用是将数组a中的所有数限定到范围a_min和a_max中。
部分参数解释:

a:输入矩阵;
a_min:被限定的最小值,所有比a_min小的数都会强制变为a_min;
a_max:被限定的最大值,所有比a_max大的数都会强制变为a_max;
out:可以指定输出矩阵的对象,shape与a相同

学习资料记录

np.argmax() 取出a中元素最大值所对应的索引

学习资料记录
学习资料记录

如何将ndarray二维数组转为1维数组

学习资料记录

矩阵相乘与矩阵点乘

错误提示:operands could not be broadcast together with shapes
矩阵相乘 a*b (a与b对应元素相乘,a的维数需与b的维数相同)
矩阵点乘 numpy.dot(a,b) (真正意义上的矩阵相乘,a的行数需与b的列数相同)
学习资料记录
学习资料记录
学习资料记录
学习资料记录

如何画竖直和水平的分割线或者点画线或者直线?

学习资料记录

plt画完图后保存至指定路径

plt.savefig("E:\机器学习\日月光华_Pytorch实战_参考代码\第19-28课时参考代码和数据集\CWRU/1730_12k_0.007-Ball.jpg")
plt.savefig(‘存储路径+图片名字.jpg’)

怎样判断tuple,dict,list是否为空

## 方法1
a = ()
if len(a) ==0:
  print(‘this is an empty tuple’)
else:
  print(‘not an empty tuple’)
>>> this is an empty tuple
## 方法2
a = ()
if not a:
  print(‘this is an empty tuple’)
else:
  print(‘not an empty tuple’)
>>> this is an empty tuple

当 tuple dict list 为空时,返回None,也为False。

如何获取文件路径最后一级

学习资料记录
学习资料记录

卷积结构

学习资料记录

池化层—>Relu---->pooling—>全连接层

savefig怎样去图片白边

去除图像周围的白边

plt.axis("off")
plt.gca().xaxis.set_major_locator(plt.NullLocator()) 
plt.gca().yaxis.set_major_locator(plt.NullLocator()) 
plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0,wspace=0) 
plt.margins(0,0)
plt.savefig("E:\机器学习\日月光华_Pytorch实战_参考代码\第19-28课时参考代码和数据集\CWRU", bbox_inches="tight", pad_inches=0.0)

# 去除图像周围的白边 
plt.axis("off")
plt.gca().xaxis.set_major_locator(plt.NullLocator()) 
plt.gca().yaxis.set_major_locator(plt.NullLocator()) 
plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0,wspace=0) 
plt.margins(0,0)
plt.savefig("E:\机器学习\日月光华_Pytorch实战_参考代码\第19-28课时参考代码和数据集\CWRU", bbox_inches="tight", pad_inches=0.0)

什么是Z-socre normalization

z-score使用原始数据的均值和标准差进行归一化,使得处理后的数据符合正态分布,即均值为0,标准差为1.
学习资料记录
其z-score变换公式如下:
学习资料记录
其中
学习资料记录

什么是混淆矩阵confusion matric

又叫分类结果统计矩阵,可以直观看出分类模型结果的好坏。

假设有一个用来对猫(cats)、狗(dogs)、兔子(rabbits)进行分类的系统,混淆矩阵就是为了进一步分析性能而对该算法测试结果做出的总结。假设总共有 27 只动物:8只猫, 6条狗, 13只兔子。结果的混淆矩阵如下图:
学习资料记录

在这个混淆矩阵中,实际有 8只猫,但是系统将其中3只预测成了狗;对于 6条狗,其中有 1条被预测成了兔子,2条被预测成了猫。从混淆矩阵中我们可以看出系统对于区分猫和狗存在一些问题,但是区分兔子和其他动物的效果还是不错的。所有正确的预测结果都在对角线上,所以从混淆矩阵中可以很方便直观的看出哪里有错误,因为他们呈现在对角线外面。

什么是EMD

EMD是根据极值(极大值、极小值)分别形成的包络线,得到其均值线,分解成一系列曲线(IMF)特征模式函数。这些模式函数相加后为原曲线。
公式 : x ( t ) = ∑ i = 1 N c i + r n ( t ) {\rm{x}}(t) = \sum\limits_{i = 1}^N {{c_i}} + {r_n}(t) x(t)=i=1∑N​ci​+rn​(t)
学习资料记录
原始信号
学习资料记录

C1
学习资料记录

C2

如何安装sklearn库

在anoconda中执行conda install scikit-learn

如何获取字典的所有键

a = {'inner1':[[1,2,3,1,4],'IF','1'],
'inner2':[[2,5,1,2,3],'IF','1']}
a.	keys()
>>>dict_keys(['inner1', 'inner2'])
list(a.keys())
>>>['inner1', 'inner2']

如何对list做算术运算

List本身是不支持加减乘除运算的,需转换为array类型。
a = {'inner1':[[1,2,3,1,4],'IF','1'],
'inner2':[[2,5,1,2,3],'IF','1']}
np.array(a['inner1'][0])-np.array(a['inner2'][0])
>>>array([-1, -3,  2, -1,  1])

如何根据变量的字符串类型构建对象。

Locals()函数是python自带的库函数,其以字典类型存储了当前的局部变量及其对象。
学习资料记录

根据变量名获取其变量值
学习资料记录

已知变量名构建其变量值
学习资料记录

如何根据变量对象找到变量名

def get_variable_name(variable):
    callers_local_vars = inspect.currentframe().f_back.f_locals.items()
    return [var_name for var_name, var_val in callers_local_vars if var_val is variable]
c = get_variable_name(43).pop()

学习资料记录

如何保存mat文件

Import scipy.scio.savemat
Savemat(filename,dict)

学习资料记录

CWRU故障数据集官网

https://csegroups.case.edu/bearingdatacenter/pages/download-data-file

MFPT故障数据集官网

https://www.mfpt.org/fault-data-sets/

Paderborn University故障数据集官网

https://mb.uni-paderborn.de/en/kat/main-research

如何创建空的array

先保存在list里,再把list转换为array

如何将多维list转为1维list()

https://www.pythonf.cn/read/120964
学习资料记录
学习资料记录

Tensor与numpy互相转换

学习资料记录
学习资料记录

Python计算离散序列的自相关函数

Python计算离散序列的自相关函数_liulicuican的博客-CSDN博客_python自相关函数
离散时间序列的自相关函数其实就是若干阶自相关系数的组合,其中,自相关系数的计算公式如下:
学习资料记录
其中 h 为阶数,μ为序列的均值,比如计算离散时间序列 :
[2, 3, 4, 3, 7] 的自相关函数
首先计算 0 阶自相关系数为 1,然后计算 1 阶自相关系数,均值
μ = (2 + 3 + 4 + 3 + 7) / 5 = 3.8,则分母
学习资料记录
1 阶自相关系数为
学习资料记录

import statsmodels.tsa.api as smt
time_series = [2, 3, 4, 3, 7]
acf = smt.stattools.acf(time_series)
print(acf)

结果如下:
学习资料记录
公众号、B站:故障诊断与python学习

上一篇:设置Images.xcassets后启动仍旧黑屏的问题


下一篇:Scala 元组Tuple