yanftian 发表于 2009-6-4 23:22

谐波小波滤波

我在使用谐波小波对信号进行滤波时出现了一个奇怪的问题,
现将方法域代码贴出,请高手指点,不胜感激。

使用的图片和公式在 2 楼

方法一:李舜酩教授《振动信号的现代分析技术与应用》一书中方法
图1
谐波小波从频域返回到时域取共轭再到频域滤波

方法二:何正嘉《机械设备非平稳信号的故障诊断原理及应用》书中方法
图2
直接在频域利用谐波小波进行滤波


实现代码如下: 其中delg为欲滤波信号

M=length(delg);%信号长度ggg=fft(delg);
for i=1:M;    fai(i)=1/0.006;   if (i/M>0.006)      fai(i)=0;   endend


%利用方法1
kkk=ifft(fai);kkk=kkk';xx=conj(kkk);xxx=fft(xx);yy=ggg.*xxx;aa=ifft(yy);figure(1)plot(aa)
%使用方法2
yy1=ggg.*fai';figure(2)plot(ifft(yy1))


最后返回时域值为复数,不知道为什么?
图形如下:
figure1 :方法一的图形
图3
figure2方法二得到的图形
图4

如上所示得到的数据为复数,敬请高手指点,谢谢。


[ 本帖最后由 yanftian 于 2009-6-4 23:31 编辑 ]

yanftian 发表于 2009-6-4 23:27

图片刚才没发上去,不好意思

nkdtxf 发表于 2009-8-26 15:13

两个图是一样的吗,怎么判断出故障呢,请明示啊,谢谢了

boysha 发表于 2009-8-31 20:50

回复 楼主 yanftian 的帖子

aa是复数 作图取摸
abs(aa)

danter 发表于 2010-1-30 10:07

没看明白:@L

freeplus 发表于 2010-2-1 11:35

滤波的时域结果一般是复数序列的,只要取实数部分的一半即可。
你的代码就是相当于把振动信号用理想型的低通滤波器滤波了,效果不好。

梦想舞台 发表于 2013-10-28 21:45

楼上说得对,不过和普通低通滤波器不同的是,谐波小波在频域的虚部也有取值,因此不能直接用ones函数构造,正逆傅立叶变换的目的正是获得谐波小波的复包络
而当有了复包络以后,就是简单的两个复数的频域相乘了

令,楼主这个问题,考虑到正负频率特性,李老师的是更严格的说法
页: [1]
查看完整版本: 谐波小波滤波