xsy710 发表于 2008-12-16 18:05

(高手解答)包络谱不对啊,得不到正确的包络谱

本帖最后由 chenlu1986 于 2011-5-30 14:49 编辑

hilbert变换是这样进行的:原始信号X(t)带通滤波,进行hilbert变换得到x^(t),作为虚部,     然后用w(t)=x(t)+jx^(t)作为解析信号。
包络波形的求法是:a(t)=X(t)和x^(t)的平方和再开方.
包络谱的求法是:对a(t)进行FFT变换得到的频谱,但其实a(t)应该等于a(t)的绝对值(开方撒),即a(t)=|a(t)|。
所以对|a(t)|进行FFT变换得不到正确的调制信号的频谱。
我做了如下测试;
x(t)=sin(2*pi*600*t)*sin(2*pi*30*t);
最后得到的包络谱谱线出现在60Hz处,并不是出现在30Hz处。
那么如何得到的a(t)的频谱呢,因为我们得到的只是|a(t)|,怎么得到包络谱阿????
希望高手解答一下.

xsy710 发表于 2008-12-17 15:19

快来解答啊

songzy41 发表于 2008-12-18 10:43

本帖最后由 VibInfo 于 2016-10-17 15:16 编辑

原帖由 xsy710 于 2008-12-16 18:05 发表
包络谱不对啊,得不到正确的包络谱
hilbert变换是这样进行的:原始信号X(t)带通滤波,进行hilbert变换得到x^(t),作为虚部,     然后用w(t)=x(t)+jx^(t)作为解析信号。
包络波形的求法是:a(t)=X(t)和x^(t)的平方和再开方.
包络谱的求法是:对a(t)进行FFT变换得到的频谱,但其实a(t)应该等于a(t)的绝对值(开方撒),即a(t)=|a(t)|。
所以对|a(t)|进行FFT变换得不到正确的调制信号的频谱。
我做了如下测试;
x(t)=sin(2*pi*600*t)*sin(2*pi*30*t);
最后得到的包络谱谱线出现在60Hz处,并不是出现在30Hz处。
那么如何得到的a(t)的频谱呢,因为我们得到的只是|a(t)|,怎么得到包络谱阿????
希望高手解答一下.

对于求包络的思路没有错,如楼主的图所示,包络是a(t)的绝对值(开方撒),即a(t)=|a(t)|,所以包络的谱也并没有错(用正弦波的绝对值求频谱,基频当然增加一倍,30Hz变成60Hz,并且有谐波和直流分量)。而问题是楼主并不是要求包络谱,而是要求被调制信号的谱,但这是两个不同的要求。
想求被调制信号的谱,先要得到被调制信号的波形;实际上对正弦波来说是可以从包络信号中来恢复出正弦信号。即找出每两个半波的交接处(可利用波形的一阶导数),然后决定该半波为正或为负。恢复正弦波了也就不难求出正弦波的频谱。

[ 本帖最后由 songzy41 于 2008-12-18 10:46 编辑 ]

xsy710 发表于 2008-12-18 18:43

谢谢楼上的了,讲得不错

xsy710 发表于 2008-12-18 18:45

这样,包络谱得到的不是调制信号的频谱了,但我找的这篇论文上写的
包络谱能得到调制信号的基频,基频没有增加一倍。
下图:

xsy710 发表于 2008-12-18 18:53

也就是说包络谱显示的第一根谱线是轴2的基频,但其实第一根谱线应该显示的166HZ啊,不应该是83Hz啊。
原文有200KB,发不上去。

xsy710 发表于 2008-12-18 18:58

如果我们做包络谱,直接对|a(t)|做FFT 变换就行了是不是?
用不着恢复出调制信号了。
这样说对不对?

songzy41 发表于 2008-12-19 08:33

本帖最后由 VibInfo 于 2016-10-17 15:16 编辑

原帖由 xsy710 于 2008-12-18 18:58 发表
如果我们做包络谱,直接对|a(t)|做FFT 变换就行了是不是?
用不着恢复出调制信号了。
这样说对不对?
实际上,楼主提到的文献的方法没有错,而是楼主把供的信号和文献中的信号貉有差别。如果把楼主的信号也作些修改,也一样可以直接从包络中提取基频。信号要改为:
x=sin(2*pi*600*t).*(sin(2*pi*30*t)+1);
得图为

xsy710 发表于 2008-12-19 13:25

牛人,确实是这样,它提供的调制信号中有直流分量,使得a(t)>0,从而使|a(t)|=a(t),所以就可以恢复出调制信号。
但实际上,工程上的信号我们不知道它的调制信号有没有直流分量(使a(t)>0),你有没有好的方法恢复出a(t)<0时的波形,有没有相关的程序。
下面这篇论文中介绍了一种方法,不知对不对

xsy710 发表于 2008-12-19 13:30

它好像是进行短时傅里叶变换得到的。帮忙看一哈

songzy41 发表于 2008-12-19 19:36

看了楼主提供的文章,该文实际上就是用普通的hilbert变换,文中说:“即得到x ( n) 的解析信号z ( n) 。求出z ( n) 的模,得到包络信号的幅值。”即通过hilbert变换得到x ( n) 的解析信号z ( n) ,又求z ( n) 的模,得到包络信号的幅值。这和楼主所述的方法一样。文中以后的处理都是在包络信号上进行的,以分辨正常和失效。
作者在处理中指的短时傅里叶变换,从文中看不出来,我认为就是普通的傅里叶变换。

[ 本帖最后由 songzy41 于 2008-12-19 19:38 编辑 ]

xsy710 发表于 2008-12-19 20:40

谢谢了,那我们做包络谱一般就对|a(t)|作FFT 就行了。

桥到船头 发表于 2009-3-8 22:46

还是不是很明白,我们一般进行故障诊断时使用的是包络谱分析 还是求出被调制信号的谱呢 请高手解答

fengchunlijdb 发表于 2009-3-9 08:15

回复 楼主 xsy710 的帖子

看你给出的时域谱,有点像是拍振的故障。

xsy710 发表于 2009-3-9 11:30

回复 13楼 桥到船头 的帖子

是包络谱分析撒,即要求出调制信号来,而不是被调制信号 :@D :@D
页: [1] 2
查看完整版本: (高手解答)包络谱不对啊,得不到正确的包络谱