马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
请教下面这个关于计算小波系数和小波谱的程序
采用修改的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=[aeqw1 zeros(1,1)];
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=[dzb;0];
tt=0:0.02:dt*n-0.02;
figure;
subplot(211)
plot(tt,sumf);
subplot(212)
plot(tt,dzb); |