signal_processing plugged.
[scilab.git] / scilab / modules / signal_processing / tests / unit_tests / corr.tst
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2008 - Digiteo - unknown author
3 // Copyright (C) 2009 - Digiteo - Vincent LIARD
4 //
5 // This file must be used under the terms of the CeCILL.
6 // This source file is licensed as described in the file COPYING, which
7 // you should have received as part of this distribution.  The terms
8 // are also available at    
9 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10
11 test_path = SCI + "/modules/signal_processing/tests/unit_tests/";
12 rand('normal');
13 x = rand(1,256);
14 y = -x;
15 [c, mxy]=corr(x,y,32);
16 if or(size(c)<>[1 32]) then pause,end
17 if or(size(mxy)<>[1 2]) then pause,end
18 x = x-mxy(1)*ones(x);
19 y = y-mxy(2)*ones(y);
20 c1 = corr(x,y,32);
21 c2 = corr(x,32);
22 if norm(c1+c2,1) > %eps then pause,end
23 function z = xx(inc, is)
24     z = x(is:is+inc-1);
25 endfunction
26 function z = yy(inc, is)
27     z=y(is:is+inc-1);
28 endfunction
29 [c3,m3]=corr('fft',xx,yy,256,32);
30 if norm(c1-c3,1) > 10 *%eps then pause,end
31 [c4,m4]=corr('fft',xx,256,32);
32 if or(size(c4)<>[1 32]) then pause,end
33 if or(size(m4)<>[1 1]) then pause,end
34 if norm(m3,1) > %eps then pause,end
35 if norm(m4,1) > %eps then pause,end
36 if norm(c3-c1,1) > 10*%eps then pause,end
37 if norm(c4-c2,1) > 10*%eps then pause,end
38
39 // corr default mode
40 x = [1:10];
41 y = [5 10 6 4 8 2 9 3 1 7];
42 nlags = 3;
43 // x, nlag provided
44 cov_ref1 = [8.25 5.775 3.4];
45 Mean_ref1 = 5.5;
46 cov = corr(x, nlags);
47 if cov <> cov_ref1 then pause,end
48
49 [cov, Mean] = corr(x, nlags);
50 if or([cov, Mean] <> [cov_ref1, Mean_ref1]) then pause,end
51 // x, y, nlag provided
52 cov_ref2 = [-2.55 -2.825 -0.4];
53 Mean_ref2 = [5.5 5.5];
54 cov = corr(x, y, nlags);
55 if cov <> cov_ref2 then pause,end
56 [cov, Mean] = corr(x, y, nlags);
57 if or([cov, Mean] <> [cov_ref2, Mean_ref2]) then pause,end
58
59 // corr updates mode
60 import_from_hdf5(test_path + 'corr_updates_ref.h5');
61 [w1,xu1] = corr('updt', [1:10], zeros(1,8));
62 if or([w1, xu1] <> [w1_ref, xu1_ref]) then pause,end
63 [w2, xu2] = corr('updt', [1:8], [%i %i %i %i]);
64 of or([w2, xu2] <> [w2_ref, xu2_ref]) then pause,end
65 [w3, xu3] = corr('updt', [1:8], [1:8], zeros(1,8));
66 if or([w3, xu3] <> [w3_ref, xu3_ref]) then pause,end
67 [w4, xu4] = corr('updt', [1:10], [1:10],zeros(1,8));
68 if or([w4, xu4] <> [w4_ref, xu4_ref]) then pause,end
69 [w5, xu5] = corr('updt', [1:10], [1:10],ones(1,8));
70 if or([w5, xu5] <> [w5_ref, xu5_ref]) then pause,end
71 [w6, xu6] = corr('updt', [1:10], [5 10 6 4 8 2 9 3 1 7], zeros(1,8));
72 if or([w6, xu6] <> [w6_ref, xu6_ref]) then pause,end
73 [w7, xu7] = corr('updt', [1:8], [1:8], zeros(1,8), zeros(1,8));
74 if or([w7, xu7] <> [w7_ref, xu7_ref]) then pause,end
75 [w8, xu8] = corr('updt', [1:8], [1:8], zeros(1,8), 0);
76 if or([w8, xu8] <> [w8_ref, xu8_ref]) then pause,end
77 [w9, xu9] = corr('updt', [1:8], [1:8], zeros(1,8), [5 2 6 5 3 7 4 5]);
78 if or([w9, xu9] <> [w9_ref, xu9_ref]) then pause,end
79
80 // corr fft mode
81 import_from_hdf5(test_path + 'corr_fft_ref.h5');
82 y = -x;
83 function z = xx(inc, is)
84     z = x(is:is+inc-1)
85 endfunction
86 function z = yy(inc,is)
87     z = y(is:is+inc-1)
88 endfunction
89
90 [c1, m1] = corr('fft', xx, 64, 4);
91 if or([c1, m1] <> [c1_ref, m1_ref]) then pause,end
92 [c2, m2] = corr('fft', xx, yy, 64, 4);
93 if or([c2, m2] <> [c2_ref, m2_ref]) then pause,end