该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
下面temp3.m文件,数据文件sig5.txt (256点),运行x=temp3('sig5.txt'),即用同一数据源不同的小波处理,在我的机器上(MATLAB 2011a)得到的结果如图片.第二第三条曲线的结果太差,不正常.如果MATLAB Wavelet toolbox不能处理归范化信号,就是其Bug.
temp3.m
%Normalization changes results in Matlab toolbox?
%in Matlab 2011a.
function [x]=temp3(datafile)
close all force; Wavedata=load(datafile);
%size(Wavedata)
%Wavedata=sin(1:256); Wavedata=Wavedata(:)-mean(Wavedata(:)); x=bestwp(Wavedata,'db4',8);plot(x ,'or'); hold on;
x=bestwp(Wavedata,'sym35',8);plot(x ,'*b');
x=bestwp(Wavedata,'bior4.4',8);plot(x ,'+g'); Wavedata=Wavedata/norm(Wavedata(:));% Normalized x=bestwp(Wavedata,'db4',8);plot(x ,'xr');
x=bestwp(Wavedata,'sym35',8);plot(x ,'vb');
x=bestwp(Wavedata,'bior4.4',8);plot(x ,'sg'); legend('NotNormalized+db4','NotNormalized+sym35','NotNormalized+bior4.4','Normalized+db4','Normalized+sym35','Normalized+bior4.4','Location','SouthEast');
axis tight;
xlabel('Number of The Best Basis Coefficients in Descending Order (Absolute Value)');
ylabel('Coefficient Square Cumulation');
title([datafile ' Normalized or Not Before Wavelet Packet Decomposition']) ;
grid on;
%title(wavenum);
hold off
figure;plot(Wavedata);axis tight; title('Test Signal'); x=[];
end function [x]=bestwp(indata,wavenum,deps)
%dwtmode('ppd');
dwtmode('per'); T = wpdec(indata,deps,wavenum,'shannon');%,'log energy'); [bt,E,Nod] = besttree(T); %Nod = leaves(bt);
%Nod = leaves(bt,'dp');
%Nod = tnodes(bt,'dp');
Nod = tnodes(bt);
%size(Nod)
%plot(bt); %cfs=read(bt,'data',Nod(:))
%size(cfs) cfs=[];
dim=size(Nod);
for ii=1:dim(1)
wpc=wpcoef(bt,Nod(ii,:));
%wpc=read(bt,'data',Nod(ii,:));
cfs=[cfs;wpc(:)];
end
x=engsort(cfs);
end function [sortx]=engsort(inx);
sortx=inx.^2;
wp=sort(sortx,'descend');
sortx=cumsum(wp(:));
disp(sortx(end))
sortx=sortx/sortx(end);
%sortx=sortx*(100.0/sortx(end));
end
-----
sig5.txt
0.000000
3.000000
1.247532
-1.082456
-1.489200
-0.642402
-0.102063
0.150076
0.631553
0.821337
0.149639
-0.684489
-0.656090
0.041926
0.422452
0.189428
-0.102536
-0.091313
0.007867
-0.004289
-0.004936
0.075344
0.068230
-0.088631
-0.178296
-0.042943
0.155281
0.175905
0.026200
-0.106516
-0.122575
-0.064517
0.012910
0.085867
0.109416
0.043478
-0.065088
-0.110513
-0.053582
0.036399
0.074659
0.048125
-0.001734
-0.037605
-0.044307
-0.020404
0.018027
0.038989
0.023585
-0.010522
-0.028610
-0.017668
0.005138
0.017576
0.013448
0.000407
-0.010970
-0.012941
-0.004010
0.008402
0.012849
0.005268
-0.006433
-0.011123
-0.005780
0.003353
0.008425
0.006459
-0.000044
-0.005907
-0.006772
-0.002187
0.003805
0.006079
0.003116
-0.001914