1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
function test_failed=test_dwilt
which comp_dwilt
which comp_idwilt
Lr=[4, 6, 8,12,16,12,18,32,30];
Mr=[2, 3, 2, 3, 4, 2, 3, 4, 3];
disp(' =============== TEST_DWILT ================');
test_failed=0;
for ii=1:length(Lr);
for W=1:3
for ftype=1:2
for wtype=1:2
L=Lr(ii);
M=Mr(ii);
a=M;
if wtype==1
% Full length window
g=pgauss(L);
gd=wildual(g,M);
wtype='LONG';
else
g=firwin('sqrthann',2*M,'2');
gd=g;
wtype='FIR';
end;
if ftype==1
% Complex-valued test case
f=tester_crand(L,W);
S='CMPLX';
else
% Real-valued tes
f=tester_rand(L,W);
S='REAL ';
end;
c=dwilt(f,g,M,L);
a=M;
c2=ref_dwilt(f,g,a,M);
r=idwilt(c,gd);
res=norm(c(:)-c2(:));
[test_failed,fail]=ltfatdiditfail(res,test_failed);
s=sprintf('REF %s %s L:%3i W:%2i a:%3i M:%3i %0.5g %s',S,wtype,L,W,a,M,res,fail);
disp(s)
rdiff=f-r;
res=norm(rdiff(:));
[test_failed,fail]=ltfatdiditfail(res,test_failed);
s=sprintf('REC %s %s L:%3i W:%2i a:%3i M:%3i %0.5g %s',S,wtype,L,W,a,M,res,fail);
disp(s)
g=wilorth(M,L);
c=dwilt(f,g,M);
r=idwilt(c,g);
rdiff=f-r;
res=norm(rdiff(:));
[test_failed,fail]=ltfatdiditfail(res,test_failed);
s=sprintf('ORTH %s %s L:%3i W:%2i a:%3i M:%3i %0.5g %s',S,wtype,L,W,a,M,res,fail);
disp(s)
c=dwilt(f,'gauss',M);
r=idwilt(c,{'dual','gauss'});
res=norm(f-r);
[test_failed,fail]=ltfatdiditfail(res,test_failed);
s=sprintf('WIN %s %s L:%3i W:%2i a:%3i M:%3i %0.5g %s',S,wtype,L,W,a,M,res,fail);
disp(s)
c=dwilt(f,{'tight','gauss'},M);
r=idwilt(c,{'tight','gauss'});
res=norm(f-r);
[test_failed,fail]=ltfatdiditfail(res,test_failed);
s=sprintf('WIN TIGHT %s %s L:%3i W:%2i a:%3i M:%3i %0.5g %s',S,wtype,L,W,a,M,res,fail);
disp(s)
end;
end;
end;
end;
%-*- texinfo -*-
%@deftypefn {Function} test_dwilt
%@verbatim
%@end verbatim
%@strong{Url}: @url{http://ltfat.github.io/doc/testing/test_dwilt.html}
%@end deftypefn
% Copyright (C) 2005-2016 Peter L. Soendergaard <peter@sonderport.dk>.
% This file is part of LTFAT version 2.2.0
%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program. If not, see <http://www.gnu.org/licenses/>.
|