hyl2323 发表于 2007-12-10 18:58

5楼引用的说法没有错,小波脊线就是复小波变换后的小波系数幅值谱上按尺度的局部极大值对应的坐标位置,对应的小波系数为小波骨架,相位谱的话有人回答了,要先用unwrap函数处理一下。

batizhang 发表于 2007-12-13 17:03

回复 #13 破凰 的帖子

感觉程序有点问题,第一:原则上讲,f=f0*fs/ar,最后的f应该是f=(w0/2pi)*(1/(ar*Te)),而此处w0恰好等于2pi,所以就有了f=1/(ar*Te);第二,如果把morlet复小波换成'cmor1-2',就是中心频率为4pi,此时程序进入死循环,不知是何原因啊?
有什么不对的地方,还望高手指正。

破凰 发表于 2007-12-15 13:20

回复 #17 batizhang 的帖子

迭代发散造成的,改变阈值的大小试试

batizhang 发表于 2007-12-17 11:09

回复 #18 破凰 的帖子

我的第一个问题不知提的对不对,还望指教!

破凰 发表于 2007-12-17 13:16

回复 #19 batizhang 的帖子

对,这实际上就是尺度转频率。

liuhui1983 发表于 2007-12-23 20:07

有一问题查了半天也没找到答案,请问破凰--wa=cwt(s,a(1),'cmor2-1');   中,cmor-fb-fc的fb和fc两个参数是如何确定的,一个是频带,一个是中心频率,多谢谢拉!!!!!!

破凰 发表于 2007-12-23 20:16

回复 #21 liuhui1983 的帖子

任意指定哈,一般来讲,中心频率或带宽参数越高,时频聚集性越好。

破凰 发表于 2007-12-23 20:28

回复 #21 liuhui1983 的帖子

有文章已经研究了如何寻求morlet小波的最优参数,你可以去看看。

yao1983 发表于 2008-3-8 16:57

问题

如果函数的表达式为:s=cos(2*pi*(10*(t.^2)+10*t))+5*cos(2*pi*30*t);
那么函数的瞬时频率应该是什么样子的?
下面是我采用上述程序得到的结果,好象图中只显示了频率30的结果,而表达式第一项cos(2*pi*(10*(t.^2)+10*t))的瞬时频率20*t+10没有在图中体现出来,如果想得到的话,应该怎样设置参数?
clc;
clear all;
a(1)=2;
Te=0.001;
t=0:0.001:1;
s=cos(2*pi*(10*(t.^2)+10*t))+5*cos(2*pi*30*t);%改了一下原信号
%s=hilbert(s);
%hudu=4*pi;
%用morlet小波进行分析;
a(1)=0.3;
Te=0.001;
kk=length(t);
k=0;
aa=0;
bb=0;
w0=2*pi*1;%cmor2-1小波的中心频率为2pi
for j=2:kk
    while 1
      wa=cwt(s,a(1),'cmor2-1');   
      fai=angle(wa);
      fai=unwrap(fai);
      dfa=abs(fai(j)-fai(j-1));
      a0=w0*1/dfa;
      if abs((a0-a(1))/a(1))<0.5%阈值不宜过小
            ar(j-1)=a(1);
            a(1)=a0;
            break;
      end
      a(1)=a0;
    end
end
f=1./(ar*Te);
plot(t(1:kk-1),f);

yao1983 发表于 2008-3-8 17:03

小波脊线问题

如果函数的表达式为s=cos(2*pi*(10*(t.^2)+10*t))+5*cos(2*pi*30*t);
那函数的瞬时频率应该是什么样子的?
我采用上面的程序得到了下面的图,图中只显示了第二项的瞬时频率5*cos(2*pi*30*t); 为30,而第一项的cos(2*pi*(10*(t.^2)+10*t)),的瞬时频率20*t+10没有在图中体现出来,这是为什么?
如果想得到的话,应该怎样设置参数?
clc;
clear all;
a(1)=2;
Te=0.001;
t=0:0.001:1;
s=cos(2*pi*(10*(t.^2)+10*t))+5*cos(2*pi*30*t);%改了一下原信号
%s=hilbert(s);
%hudu=4*pi;
%用morlet小波进行分析;
a(1)=0.3;
Te=0.001;
kk=length(t);
k=0;
aa=0;
bb=0;
w0=2*pi*1;%cmor2-1小波的中心频率为2pi
for j=2:kk
    while 1
      wa=cwt(s,a(1),'cmor2-1');   
      fai=angle(wa);
      fai=unwrap(fai);
      dfa=abs(fai(j)-fai(j-1));
      a0=w0*1/dfa;
      if abs((a0-a(1))/a(1))<0.5%阈值不宜过小
            ar(j-1)=a(1);
            a(1)=a0;
            break;
      end
      a(1)=a0;
    end
end
f=1./(ar*Te);
plot(t(1:kk-1),f);
1

yao1983 发表于 2008-3-8 17:06

小波脊线

如果函数的表达式为s=cos(2*pi*(10*(t.^2)+10*t))+5*cos(2*pi*30*t);
那函数的瞬时频率应该是什么样子的?
我采用上面的程序得到了下面的图,图中只显示了第二项的瞬时频率5*cos(2*pi*30*t); 为30,而第一项的cos(2*pi*(10*(t.^2)+10*t)),的瞬时频率20*t+10没有在图中体现出来,这是为什么?
如果想得到的话,应该怎样设置参数?
clc;
clear all;
a(1)=2;
Te=0.001;
t=0:0.001:1;
s=cos(2*pi*(10*(t.^2)+10*t))+5*cos(2*pi*30*t);%改了一下原信号
%s=hilbert(s);
%hudu=4*pi;
%用morlet小波进行分析;
a(1)=0.3;
Te=0.001;
kk=length(t);
k=0;
aa=0;
bb=0;
w0=2*pi*1;%cmor2-1小波的中心频率为2pi
for j=2:kk
    while 1
      wa=cwt(s,a(1),'cmor2-1');   
      fai=angle(wa);
      fai=unwrap(fai);
      dfa=abs(fai(j)-fai(j-1));
      a0=w0*1/dfa;
      if abs((a0-a(1))/a(1))<0.5%阈值不宜过小
            ar(j-1)=a(1);
            a(1)=a0;
            break;
      end
      a(1)=a0;
    end
end1
f=1./(ar*Te);
plot(t(1:kk-1),f);

yao1983 发表于 2008-3-8 17:07

小波脊线

如果函数的表达式为s=cos(2*pi*(10*(t.^2)+10*t))+5*cos(2*pi*30*t);
那函数的瞬时频率应该是什么样子的?
我采用上面的程序得到了下面的图,图中只显示了第二项的瞬时频率5*cos(2*pi*30*t); 为30,而第一项的cos(2*pi*(10*(t.^2)+10*t)),的瞬时频率20*t+10没有在图中体现出来,这是为什么?
如果想得到的话,应该怎样设置参数?
clc;
clear all;
a(1)=2;
Te=0.001;
t=0:0.001:1;
s=cos(2*pi*(10*(t.^2)+10*t))+5*cos(2*pi*30*t);%改了一下原信号
%s=hilbert(s);
%hudu=4*pi;
%用morlet小波进行分析;
a(1)=0.3;
Te=0.001;
kk=length(t);
k=0;
aa=0;
bb=0;
w0=2*pi*1;%cmor2-1小波的中心频率为2pi
for j=2:kk
    while 1
      wa=cwt(s,a(1),'cmor2-1');   
      fai=angle(wa);
      fai=unwrap(fai);
      dfa=abs(fai(j)-fai(j-1));
      a0=w0*1/dfa;
      if abs((a0-a(1))/a(1))<0.5%阈值不宜过小
            ar(j-1)=a(1);
            a(1)=a0;
            break;
      end
      a(1)=a0;
    end
end
f=1./(ar*Te);
plot(t(1:kk-1),f);
1

yao1983 发表于 2008-3-8 17:07

小波脊线

如果函数的表达式为s=cos(2*pi*(10*(t.^2)+10*t))+5*cos(2*pi*30*t);
那函数的瞬时频率应该是什么样子的?
我采用上面的程序得到了下面的图,图中只显示了第二项的瞬时频率5*cos(2*pi*30*t); 为30,而第一项的cos(2*pi*(10*(t.^2)+10*t)),的瞬时频率20*t+10没有在图中体现出来,这是为什么?
如果想得到的话,应该怎样设置参数?
clc;
clear all;
a(1)=2;
Te=0.001;
t=0:0.001:1;
s=cos(2*pi*(10*(t.^2)+10*t))+5*cos(2*pi*30*t);%改了一下原信号
%s=hilbert(s);
%hudu=4*pi;
%用morlet小波进行分析;
a(1)=0.3;
Te=0.001;
kk=length(t);
k=0;
aa=0;
bb=0;
w0=2*pi*1;%cmor2-1小波的中心频率为2pi
for j=2:kk
    while 1
      wa=cwt(s,a(1),'cmor2-1');   
      fai=angle(wa);
      fai=unwrap(fai);
      dfa=abs(fai(j)-fai(j-1));
      a0=w0*1/dfa;
      if abs((a0-a(1))/a(1))<0.5%阈值不宜过小
            ar(j-1)=a(1);
            a(1)=a0;
            break;
      end
      a(1)=a0;
    end
end
f=1./(ar*Te);
plot(t(1:kk-1),f);

yao1983 发表于 2008-3-15 13:51

高手指点一下,谢谢!

fudy10 发表于 2008-3-18 21:53

回复 29楼 的帖子

同求解释!
页: 1 [2] 3 4
查看完整版本: 有做小波脊线提取的嘛?