声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

楼主: avaxu

[小波] 有做小波脊线提取的嘛?

[复制链接]
发表于 2007-12-10 18:58 | 显示全部楼层
5楼引用的说法没有错,小波脊线就是复小波变换后的小波系数幅值谱上按尺度的局部极大值对应的坐标位置,对应的小波系数为小波骨架,相位谱的话有人回答了,要先用unwrap函数处理一下。

评分

1

查看全部评分

回复 支持 反对
分享到:

使用道具 举报

发表于 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 的帖子

迭代发散造成的,改变阈值的大小试试
发表于 2007-12-17 11:09 | 显示全部楼层

回复 #18 破凰 的帖子

我的第一个问题不知提的对不对,还望指教!
发表于 2007-12-17 13:16 | 显示全部楼层

回复 #19 batizhang 的帖子

对,这实际上就是尺度转频率。
发表于 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小波的最优参数,你可以去看看。

评分

1

查看全部评分

发表于 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);
untitled.GIF
发表于 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);
[localimg=560,420]1[/localimg]
untitled.GIF
发表于 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
end[localimg=560,420]1[/localimg]
f=1./(ar*Te);
plot(t(1:kk-1),f);
untitled.GIF
发表于 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);
[localimg=560,420]1[/localimg]
untitled.GIF
发表于 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);
发表于 2008-3-15 13:51 | 显示全部楼层
高手指点一下,谢谢!
发表于 2008-3-18 21:53 | 显示全部楼层

回复 29楼 的帖子

同求解释!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-3-28 17:38 , Processed in 0.210036 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表