谐波小波滤波
我在使用谐波小波对信号进行滤波时出现了一个奇怪的问题,现将方法域代码贴出,请高手指点,不胜感激。
使用的图片和公式在 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 的帖子
aa是复数 作图取摸abs(aa) 没看明白:@L 滤波的时域结果一般是复数序列的,只要取实数部分的一半即可。
你的代码就是相当于把振动信号用理想型的低通滤波器滤波了,效果不好。 楼上说得对,不过和普通低通滤波器不同的是,谐波小波在频域的虚部也有取值,因此不能直接用ones函数构造,正逆傅立叶变换的目的正是获得谐波小波的复包络
而当有了复包络以后,就是简单的两个复数的频域相乘了
令,楼主这个问题,考虑到正负频率特性,李老师的是更严格的说法
页:
[1]