marry0539 发表于 2011-4-21 09:27

信号hilbert变换后功率谱不对

我最近做轴承故障诊断需要做功率谱,用hilbert变换包络检波后功率谱不正确。
下面是我的两个验证程序,第一个是正确的,为什么第二个做hilbert变换后的功率谱就不对了呢?
请高手赐教:
fs=1000;
N=1024;
t=0:1/fs:(N-1)/fs;
x=sin(2*pi*100*t)+rand(size(t));
y=abs(fft(x)).^2/N;
subplot(221);
plot(t,x);
subplot(222);
plot((0:N/2-1)/N*fs,y(1:N/2))

fs=1000;
N=1024;
t=0:1/fs:(N-1)/fs;
x=sin(2*pi*100*t)+rand(size(t));
y1=hilbert(x);
y2=real(y1).^2;
y3=imag(y1).^2;
y=sqrt(y2+y3);
yy=abs(fft(y)).^2/N;
subplot(221);
plot(t,x);
subplot(222);plot((0:N/2-1)/N*fs,y(1:N/2))

marry0539 发表于 2011-4-21 10:13

y1=hilbert(x);
yy=abs(fft(y1)).^2/N;
这样求得yy就是功率谱吗?我记得课本上是y=hilbert(d1);
y1=imag(y).^2;
w=sqrt(d1.^2+y1)
y2=abs(w);
p=abs(fft(y2)).^2/N 才是!到底哪个正确啊

cxiangmin 发表于 2011-4-21 16:06

回复 1 # marry0539 的帖子

做Hilebert变换是获取信号的调制信息!!!变换后的功率谱为调制信号的功率谱!!!

凤鸣荆楚 发表于 2011-4-23 16:09

你的算法应该是正确的啊,先对信号hilbert包络解调,然后傅里叶变换,幅值的平方除以采样点数就是包络谱啊,y=hilbert(x),P=abs(fft(y)).^2/N

凤鸣荆楚 发表于 2011-5-21 13:08

回复 4 # 凤鸣荆楚 的帖子

其实大家回过头去看看hilbert函数的help ,就会发现,楼上的做法是正确的,楼主没必要再回去构造解析信号了

凤鸣荆楚 发表于 2011-6-9 11:17

这么做出来的不是包络谱

woshishui123 发表于 2012-12-7 16:44

这么做出来的不是包络谱
页: [1]
查看完整版本: 信号hilbert变换后功率谱不对