yisnkkk 发表于 2009-7-22 16:19

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

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


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

%%方式1. %SWT对信号长度要求 2^k
wf='rbio2.6';
level=6;
=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.');
=max(af);
hold on
plot(p,af(p),'r*');
hold off

wangweifeng903 发表于 2009-8-16 21:09

为什么没人回答,高手都死光了!

qqchun 发表于 2009-8-20 10:12

搞清判据指标怎么来的,它的依据是什么?
页: [1]
查看完整版本: 如何确定小波多层分解后的 模极大值 最优尺度?