% 小波分解与程序,Xk0是要分解的原始信号,step是表示要分解的层数
function [Xh,D]=decomposition(Xk0,step)
[h0,h1,g0,g1]=filtercoefficience;
Xh=Xk0';D=0;
for lstep=1:step
N=length(Xh);
Yk=fft(Xh,N);
H0k=fft(h0,N);
H1k=fft(h1,N);
Xh=drawwing(ifft(Yk(1:N).*conj(H0k(1:N))));
Xh=real(Xh);D=real(D);
d=drawwing(ifft(Yk(1:N).*conj(H1k(1:N))));
thrd= ddencmp('den','wv',d);%用默阈值进行消噪处理
Td=abs(d)>thrd;
d=Td.*d;
D=[d,D];
end
function Xk=reconstructed(Xh,D,step)%信号重组函数
[h0,h1,g0,g1]=filtercoefficience;
n=length(Xh);
K=length(h0);
Xn=h0(1:K)-i*h1(1:K);
for t=1:step
N=length(Xh);
d=D(((2^(t-1)-1)*n+1):(2^t-1)*n);
Xt=insert(Xh);Dt=insert(d);
Yn=Xt(1:2*N)+i*Dt(1:2*N);
Yk=fft(Yn,2*N);Xk=fft(Xn,2*N);
XYn=ifft(Yk(1:2*N).*Xk(1:2*N));
Xh=real(XYn);
end
Xk=Xh';
B157