hilbert变换前后数据为什么没有明显变化?
在很多文献中对故障检测都是小波分解-hilbert-FFT,我也是按照这个路子做的,但是发现hilbert变换起到的作用不大,即小波分解-hilbert-FFT与小波分解-FFT没有太大变化,不知道是什么原因?请帮忙分析一下。例子使用LABVIEW做的另外,在网上看到了一个例子:
20HZ调制在150HZ上,然后使用hilbert解调,用来说明hilbert的作用。
我将改程序又修改了一下,变成20HZ+150HZ+300HZ,我进行了2次hilbert解调得到了20HZ,这是否说明复杂条件下需要进行多次hilbert解调呢?如果不是,这又说明了什么问题呢?
/////////////////////
fs=1000;
t=0:1/fs:10-1/fs;
N=length(t);
df=fs/N;
f=(0:N-1)*df;
x1=(1+sin(2*pi*20*t)).*sin(2*pi*150*t);
x3=(x1+2).*sin(2*pi*300*t);
figure(1);
plot(x1);
figure(2);
plot(x3);
x1=hilbert(x1);
x1=abs(x1);
figure(3);
plot(x1);
x3=hilbert(x3);
x3=abs(x3);
figure(4);
plot(x3);
x3=x3-2;
x4=hilbert(x3);
x4=abs(x4);
figure(6);
plot(x4);
y=fft(x3);
y=abs(y)*2/N;
y1=fft(x1);
y1=abs(y1)*2/N;
figure(5);
subplot 211; plot(f,y); grid;
xlim()
subplot 212; plot(f,y1); grid;
xlim()
/////////////////////
万分感谢!互相学习!
其实你光看别人是怎么做的,但是别人没有告诉你这么做的原因哦,咱们做故障诊断好多情况用到了振动信号,这里面就不可避免的接触到了一个“共振”的问题,故障一般在低频,但是被调制到了高频,咱们用小波包分解,找到故障所在频带,,然后重构,然后用hilbert包络解调出来,再看故障频率,呵呵,这就是你说的小波包—hilbert-找故障频率,呵呵 凤鸣荆楚 :感谢您的回复!
我是按照小波分解,找故障所在频带这个路子做的。图中的时序信号就是重构后的信号,是能够看出低频调制高频的。并且FFT后的频谱也比较理想。
我的疑问是:为什么hilbert包络解调前做FFT和在hilbert包络解调后做FFT的差别不大?hilbert包络解调起到了什么作用? 回复 3 # uncttm 的帖子
Hilbert变换得到的解析信号实部为实信号本身,虚部是其Hilbert变换,解析信号的幅值为信号的包络。
Hilbert法解调出包络:解析信号的幅值即使信号的包络。。。 分别用实部和虚部做了测试,发现实部和虚部数据FFT后没有任何差别,与原始数据没有太大区别,晕厥中! 回复 5 # uncttm 的帖子
呵呵别晕厥啊~
你在5楼为什么对实部和虚部进行FT啊?
你是先求出Hilbert变换后的解析信号的幅值再进行FT这种频谱分析的方法吗? 回复:chenlu1986
因为4楼说“Hilbert变换得到的解析信号实部为实信号本身,虚部是其Hilbert变换”所以我分别对实部和虚部进行,想看看区别。
我是先求出Hilbert变换后的解析信号的幅值再进行FT这种频谱分析的方法。
只是从Hilbert变换后的解析信号没有看出,Hilbert的解调作用。 将Hilbert变换后的解析信号的幅值进行FFT变换可以看出Hilbert的解调作用
页:
[1]