kevin19821 发表于 2007-8-15 11:21

我自己编的谐波小波程序(供大家参考)

clc
clear all
fs=4096;
dt=1/fs;
N=2048;
f=fs*(0:N-1)./N;
t=0:dt:2047*dt;
Wd=hann(2048);
y1=3*sin(2*pi*50*t)+2*sin(2*pi*100*t);
y2=0.05*sin(2*pi*150*t);
s=y1+y2;
subplot(411)
plot(t,y2);
fs1=dt*fft(s)./(2*pi);
%j=7,s=127
figure(1)
subplot(412);
plot(f-fs/2,abs())
m=148;
n=152;
fsai=(exp(2*n*pi*t*i)-exp(2*pi*m*t*i))./(2*pi*(n-m)*t*i+1e-100).*Wd';
f1=dt*fft(fsai)./(2*pi);
subplot(413)
f=fs*(0:N-1)./N;
plot(f-fs/2,abs());
N=length(s);
W=f1.*fs1;
subplot(414)
plot(f-fs/2,abs());
w1=4*pi*2*pi*ifft(W)./dt;
figure(2)
subplot(211)
plot(t,real(w1))
subplot(212)
plot(t,imag(w1))

[ 本帖最后由 zhlong 于 2007-8-15 11:46 编辑 ]

zhangnan3509 发表于 2007-8-15 11:25

回复 #1 kevin19821 的帖子

但是我想问一句,为什么不把这个程序修改一下,做成function,以后其他的数据处理时调用这个函数,来验证你做的是否正确呢?

zhlong 发表于 2007-8-15 11:50

回复 #1 kevin19821 的帖子

对于一个实际信号m、n如何确定呢?

kevin19821 发表于 2007-8-15 13:47

假如不知道m,n的大小,可以用实验的方法来检测里面是否有此种频率的信号

kevin19821 发表于 2007-8-15 13:52

大家可以参考<微弱振动信号的谐波小波频域提取>作者:李舜酩  
不过他的文章在进行弱信号重构的时候,只能保证频率和相位,不能保证幅值,这正是我现在要做的

zhangnan3509 发表于 2007-8-15 14:41

回复 #5 kevin19821 的帖子

期待你的成果,很有意义啊

江湖夜雨 发表于 2007-8-16 21:09

回复 #1 kevin19821 的帖子

感谢楼主的分享

[ 本帖最后由 zhangnan3509 于 2007-8-18 14:25 编辑 ]

kevin19821 发表于 2007-8-18 11:16

我现在在研究

[ 本帖最后由 zhangnan3509 于 2007-8-18 14:25 编辑 ]

yi334 发表于 2007-9-11 10:44

感谢楼主
建议使用频率搜索的办法提取频率,然后构造谐波小波窗

小光仔 发表于 2008-3-23 00:04

不知楼主最近进展如何?希望楼主与大家分享

小光仔 发表于 2008-3-24 13:27

不是特别明白,请楼主解释下(412)(413)(414)图的意义

kevin19821 发表于 2008-3-24 14:30

我编写的是基于FFT的你把基于FFT的快速算法看东就知道了

小光仔 发表于 2008-3-24 16:34

再问下,M、N可以随便取还是必须是2的次方?

小光仔 发表于 2008-3-24 16:46

最后的FIGURE2上的图就是函数在m=148、n=152范围内的谐波变换后得实部与虚部吧,不好意思,本人这方面不太懂,但毕业设计是做这个的,麻烦请教一下

nkdtxf 发表于 2009-9-14 16:00

楼主最好把程序说明一下啊。
页: [1] 2
查看完整版本: 我自己编的谐波小波程序(供大家参考)