wdecai 发表于 2009-9-3 15:32

请教编制的关于计算小波系数和小波谱程序问题

请教下面这个关于计算小波系数和小波谱的程序
采用修改的L-P基函数 wfi(t)=(1/t*pi*sqrt(z-1))(sin(z*pi*t)-sin(pi*t)),如果取z=2则为L-P函数,修改后取z=2^(1/4),为什么对重构后的信号求和后和原信号不同?程序如下:
dat=2.0^0.25;%dat为小波函数的基数
g=9.8;
dt=0.02;
n1=-30;
n4=40;
dzb=importdata('dzb.txt');
aeqw1=dzb';
aeqw=;
n=length(aeqw);
c=zeros(n4,n);
f=zeros(n4,n);
%aeqw=zeros(1,n);
dk=(dat-1.0)*(dat-1.0/dat)/(2*log(dat));
db=dt;
for j=1:n4
%求小波系数
    aj=dat^(j+n1-1);
    for i=1:n
      bi=(i-1)*db;      
      wfi=0;%zeros(1,n);
      for k=1:n
            tp=(k-1)*dt;
            ws=(tp-bi)/aj;
         if ws==0.0
             fit=sqrt(dat-1.0);
         else
                fit=(sin(dat*pi*ws)-sin(pi*ws))/(pi*sqrt(dat-1.0)*ws);
         end
            wfi=wfi+aeqw(k)*fit*dt;
      end
      c(j,i)=wfi/sqrt(aj);
    end
end
%合成各个中心频率的小波谱
for j=1:n4
    aj1=dat^(j+n1-1);
    for i=1:n
      wfj=0;%zeros(1,n);
      tl=(i-1)*dt;
      for k=1:n
            bk=(k-1)*db;
            ws1=(tl-bk)/aj1;
         if ws1==0.0
             fit1=sqrt(dat-1.0);
         else
                fit1=(sin(dat*pi*ws1)-sin(pi*ws1))/(pi*sqrt(dat-1.0)*ws1);
         end
            wfj=wfj+dk*db*fit1*c(j,k)/aj1;
      end
      f(j,i)=wfj;
    end
end
sumf=sum(f);
dzb=;
tt=0:0.02:dt*n-0.02;
figure;
subplot(211)
plot(tt,sumf);
subplot(212)
plot(tt,dzb);
页: [1]
查看完整版本: 请教编制的关于计算小波系数和小波谱程序问题