忽悠着你 发表于 2013-1-8 15:46

对轴承振动信号包络线转换后的FFT【matlab】

我做的是圆柱滚子轴承在有异物情况下的实验,轴的转速是300RMP振动传感器用的是加速度传感器,采样频率是8k,采了40000个数据。想用包络线分析看轴承的故障频率,也就是内圈故障特征频率之类的。我本专业是学机械的,做信号分析真心有点吃力。看了些信号处理的书之后,用下面这个程序对才到的振动数据做了下运行,结果不是很好,看不清什么特征频率。我看都说hilbert之后再FFT一下,现在知识有限,写的程序也简单。请各位高手指点一下。谢谢load 1221.csv;
Xt=test;
Fs=8000;
dt=1/Fs;
N=length(Xt);
y=hilbert(Xt);
am=abs(y);
Xf=fft(am);

figure(1)
subplot(2,1,1),plot(/Fs,Xt);
xlabel('Time/s'),title('Time domain');
grid on;

subplot(2,1,2),plot(/(N*dt),abs(Xf)*2/N);
xlabel('frequency/Hz'),title('amplitude frequency diagram');
ylabel('amplitude');
xlim();
grid on;

lragy 发表于 2013-1-8 16:42

要先带通滤波,可能效果好些,你把数据发上来,分析分析!

yghit08 发表于 2013-1-8 16:50

为什么做Hilbert变换呢?因为FFT做出来的结果是共轭的,加上Hilbert变换后形成分析信号(复数信号),那么共轭这个问题就没有了(共轭引起的问题你再查查)

忽悠着你 发表于 2013-1-8 20:40

lragy 发表于 2013-1-8 16:42 static/image/common/back.gif
要先带通滤波,可能效果好些,你把数据发上来,分析分析!

不好意思,我基本是个外行,还请多多指教啊这个是振动的数据csv格式的
用了包络线分析也基本看不出什么



忽悠着你 发表于 2013-1-8 20:52

yghit08 发表于 2013-1-8 16:50 static/image/common/back.gif
为什么做Hilbert变换呢?因为FFT做出来的结果是共轭的,加上Hilbert变换后形成分析信号(复数信号),那么共 ...

我也用过只是FFT的,更加看不出来啊,而且包络线是轴承检测现在比较普及的做法啊

yghit08 发表于 2013-1-8 21:02

忽悠着你 发表于 2013-1-8 20:52 static/image/common/back.gif
我也用过只是FFT的,更加看不出来啊,而且包络线是轴承检测现在比较普及的做法啊

两者做的结果有差别吗?
从你的程序中看没有做包络啊,只是利用Hilbert将信号转换成分析信号,接着利用这个分析信号做FFT。
我知道的包络分析也许和你知道的包络分析不同——我只做信号的趋势分析(包络能做出来)。
另外,不知道你的特征频率是多少,确实如二楼所说做之前需要对信号做预处理——去趋势项,滤波一下(采集信号前,信号采集器有硬件滤波功能的话开启)。
FFT是一全局平均的方法,也许你的特征信号被其他能量大的频率信号所淹没以致于比较难发现。
当然,最重要的是你确保你采集到的信号中真的含有故障特征信号吗!

忽悠着你 发表于 2013-1-9 09:10

yghit08 发表于 2013-1-8 21:02 static/image/common/back.gif
两者做的结果有差别吗?
从你的程序中看没有做包络啊,只是利用Hilbert将信号转换成分析信号,接着利用这 ...

包络线:
FFT

结果区别还是比较大的,特征频率是29hz和38hz,包络线的相对接近一些我感觉。

不过你提到到底有没有特征频率这点也是我担心的,但是不做好这个,到底有没有也不知道对吧

yghit08 发表于 2013-1-9 09:58

忽悠着你 发表于 2013-1-9 09:10 static/image/common/back.gif
包络线:
FFT



这样看确实有区别,具体原因不知道,但是从你程序自身看应该区别不大,这样区别的原因我不太清楚了!

忽悠着你 发表于 2013-1-9 11:05

yghit08 发表于 2013-1-9 09:58 static/image/common/back.gif
这样看确实有区别,具体原因不知道,但是从你程序自身看应该区别不大,这样区别的原因我不太清楚了!

恩,看来还好多学习学习

lragy 发表于 2013-1-9 17:10

就这一个数据啊,你的这是求包络谱,低频应出现包络线,你把频率轴的范围取成0-500看看!

fzwxjtu 发表于 2013-1-11 19:51

本帖最后由 fzwxjtu 于 2013-1-11 20:03 编辑

楼主在处理数据之前先把均值去掉好点,我看0频的成分太多了。
对信号x(t)做Hilbert变换之后得到的解析信号h(t)=x(t)+x‘(t),得到h(t)的模值就是信号x(t)的幅值包络,这个是没错的。
你的问题,在对am做fft之前加一句    am=am-mean(am);效果就好一点。


chybeyond 发表于 2013-1-12 10:15

试试对imf分量分别进行fft变换,求功率谱密度,hilbert普,三个都试一下

忽悠着你 发表于 2013-1-15 13:22

fzwxjtu 发表于 2013-1-11 19:51 static/image/common/back.gif
楼主在处理数据之前先把均值去掉好点,我看0频的成分太多了。
对信号x(t)做Hilbert变换之后得到的解析信 ...

我按照你说的加了am=am-mean(am);之后果然和以前的不一样了,还想问问你一开始说的均值去掉应该怎么做?

fzwxjtu 发表于 2013-1-15 19:35

忽悠着你 发表于 2013-1-15 13:22 static/image/common/back.gif
我按照你说的加了am=am-mean(am);之后果然和以前的不一样了,还想问问你一开始说的均值去掉应该怎么做?

am=am-mean(am);就是去均值了

忽悠着你 发表于 2013-1-17 09:43

fzwxjtu 发表于 2013-1-15 19:35 static/image/common/back.gif
am=am-mean(am);就是去均值了

恩,谢谢,已经有点进展了
页: [1] 2
查看完整版本: 对轴承振动信号包络线转换后的FFT【matlab】