文章目录
前言
目前,基于数据驱动的故障诊断方法通常采用深度神经网络来挖掘采集数据中隐藏的信息,实现故障分类。然而,它们大多利用原始的一维时域信号作为DNN的输入进行学习。原始时域信号仅显示有限的信息,为了突出各种故障之间的差异,需要从对原始信号进行灰度化变为2-D灰度图进行分析。
一、转换原理
步骤1.用长度为的窗口和滑动步骤L滑动并在原始时域信号上分割样本,然后从原始时域信号中选择长度为的振动信号样本。
步骤2.使用FFT将原始时域样本转换为频谱。实际上,为了便于图像转换,这里使用了与原始信号长度相同的双边频谱。
步骤3.规范化频谱样本数据。归一化的计算过程如下:
步骤4.将长度为M的连续线段信号依次填充到构建图像的行中,以完成尺寸为M×M的灰度频谱图像的构建。
二、Matlab代码展示
clc
clear all;
I=xlsread('D:\SHUJUJI\数据汇总\fzbcd_2_5.xlsx')
djh=I(1,1:4096); % 样本长度为4096
N=length(djh); % 信号长度(变量)
Fs=20000; % 采样频率
dt=1/Fs; % 采样间隔
t=[0:N-1]*dt; % 时间序列
djh=[djh,zeros(1,N-4096)]; % 原始信号的值序列
% FFT分析
NN=N; % 执行100点FFT
XN=fft(djh,NN)/NN; % 共轭复数,具有对称性
f0=1/(dt*NN); % 基频
f=[0:ceil((NN-1))]*f0; % 频率序列
A=abs(XN); % 幅值序列
fuzhi=2*A(1:ceil((NN-1))+1);
%%%%% 频谱图 1-D 转化为2-D;
% (1)fft变换频谱图
minP=min(fuzhi);
maxP=max(fuzhi);
T1 = reshape(fuzhi,[64,64]); % 后续灰度图长宽为64
C =T1';
for i=1:64
for j=1:64
C(i,j)=round(((C(i,j)-minP)*255)/(maxP-minP));
end
end
Im1=mat2gray(C);
imshow(Im1,'border','tight','initialmagnification','fit');
set (gcf,'Position',[0,0,250,250]);
axis normal;