声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1313|回复: 2

[小波] 如何确定小波多层分解后的 模极大值 最优尺度?

[复制链接]
发表于 2009-7-22 16:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
对一组信号,先作swt分解,再求各层小波变换的模极大值。
要确定信号边沿位置,需要判断模极大值位置,不知道该取哪层的结果?
我是看书里是说“用每一尺度下的小波变换的导数平方和作为判据指标”,值最小的那层即为最优尺度。 但不管用什么信号,最小的总是最后一层。
不知道是不是出错了?


%%信号3:音素信号,AR模型+白噪声
a1=-0.195;
a2=0.95;
n=[1:1024]';
v0=randn(1,1024);
var=(1-a2)/(1+a2)*((1+a2).^2-a1.^2);
v=0.3*v0;
u0=[0,0];
num=1;
den=[1 a1 a2];
Zi=filtic(num,den,u0);
[u,Zf]=filter(num,den,v,Zi);
s=u;

%%方式1. %SWT对信号长度要求 2^k
wf='rbio2.6';
level=6;
[swa,swd]=swt(s,level,wf);

%画各层近似和细节图
  figure;
  subplot(level,1,1); plot(real(s)); grid on;axis tight;
  for i=1:level
    subplot(level+1,2,2*(i)+1);
    plot(swa(i,: )); axis tight;grid on;xlabel('time');
    ylabel(strcat('a ',num2str(i)));
    subplot(level+1,2,2*(i)+2);
    plot(swd(i,: )); axis tight;grid on;
    ylabel(strcat('d ',num2str(i)));
  end %for

%画各层细节的模
  figure;
  for i=1:level
    subplot(level+1,1,i);
    plot(abs(swd(i,: ))); axis tight;grid on;
    ylabel(strcat('abs(d) ',num2str(i)));
  end %for

%求每层细节的导数平方和,找到最优尺度
====这步是否出错了?? 我是看书里是说“用每一尺度下的小波变换的导数平方和作为判据指标”,值最小的那层即为最优尺度。
t=1:length(s);  %t值不影响af曲线形状。
%t=linspace(-0.9,2,512);  %用这个也一样。
af=[];
for i=1:level
  af(i)=sum((diff(swd(i,: ))./diff(t)).^2);
end %for
figure; plot(1:level,af,'b',1:level,af,'g.');
[v,p]=max(af);
hold on
plot(p,af(p),'r*');
hold off
回复
分享到:

使用道具 举报

发表于 2009-8-16 21:09 | 显示全部楼层
为什么没人回答,高手都死光了!
发表于 2009-8-20 10:12 | 显示全部楼层
搞清判据指标怎么来的,它的依据是什么?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-26 06:41 , Processed in 0.055635 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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