File: lattn.dia.ref

package info (click to toggle)
scilab 6.0.1-10%2Bdeb10u1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 365,292 kB
  • sloc: xml: 827,376; cpp: 273,125; ansic: 216,672; java: 190,706; fortran: 90,783; ml: 24,107; tcl: 16,853; sh: 13,608; makefile: 9,556; lex: 1,615; perl: 1,566; yacc: 1,263; php: 690; cs: 614
file content (82 lines) | stat: -rw-r--r-- 4,322 bytes parent folder | download | duplicates (3)
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
//<-- CLI SHELL MODE -->
// =============================================================================
// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
// Copyright (C) 2013 - Scilab Enterprises - Charlotte Hecquet
// Copyright (C) 2013 - Scilab Enterprises - Sylvestre Ledru
// Copyright (C) 2013 - Scilab Enterprises - Adeline CARNIS
//
//  This file is distributed under the same license as the Scilab package.
// =============================================================================
//Generate the process
t1=0:0.1:100;
y1=sin(2*%pi*t1)+sin(2*%pi*2*t1);
//Covariance of y1
nlag=128;
c1=corr(y1,nlag);
c1=c1';
//Compute the filter with maximum order=15 and p=1
n=5;
[la1,sig1]=lattn(n,1,c1);
poly(0,"z");
expected = [1, 0.4429775275224619446313];
computed = coeff(la1(1));
assert_checkalmostequal(computed, expected, 1.e-14);
expected = [1, -0.7424151347904438535963, 0.6626546432402768971315];
computed = coeff(la1(2));
assert_checkalmostequal(computed, expected, 1.e-14);
expected = [1, -0.7483090096409563685143, 0.6686337968594154856916, -0.0048019603017336104020];
computed = coeff(la1(3));
assert_checkalmostequal(computed, expected, 1.e-11);
expected = [1, -2.259216884889600152064, 3.0129744887444243062191, -2.2463220443824241101538, 0.9961140979715100707281];
computed = coeff(la1(4));
assert_checkalmostequal(computed, expected, 1.e-13);
expected = [1, -1.8328746888034248563315, 2.0881496310317460007866, -1.0213063678721847615805, 0.0953432301271536220000, 0.3993857757876373426598];
computed = coeff(la1(5));
assert_checkalmostequal(computed, expected, 1.e-10);
expected = [-1.7888543819998343753497, 1];
computed = coeff(sig1(1));
assert_checkalmostequal(computed, expected, 1.e-14);
expected = [1.2273893327241232054092, -1.2451484900822573642643, 1];
computed = coeff(sig1(2));
assert_checkalmostequal(computed, expected, 1.e-14);
expected = [-1.5168020192922293531979, 2.3534861083273810322680, -2.2502643910424811046767, 1];
computed = coeff(sig1(3));
assert_checkalmostequal(computed, expected, 1.e-13);
expected = [1.0674946929328583689056, -2.3156179157577936322809, 3.0672491379903537023210, -2.255390458180256185727, 1];
computed = coeff(sig1(4));
assert_checkalmostequal(computed, expected, 1.e-12);
expected = [1.4523203295727387107661, -2.2136119179063014072995, 2.0601861867297621699890, -0.1951300338336365847169, -0.8087137031222213501280, 1];
computed = coeff(sig1(5));
assert_checkalmostequal(computed, expected, 1.e-10);
//Compare result of poles with p=-1 and with levin function
[la2,sig2]=lattn(n,-1,c1);
expected = [1, -1.7888543819998343753497];
computed = coeff(la2(1));
assert_checkalmostequal(computed, expected, 1.e-14);
expected = [1, -1.2451484900822573642643, 1.2273893327241232054092];
computed = coeff(la2(2));
assert_checkalmostequal(computed, expected, 1.e-14);
expected = [1, -2.25026439104248154877, 2.3534861083273810322680, -1.5168020192922295752425];
computed = coeff(la2(3));
assert_checkalmostequal(computed, expected, 1.e-13);
expected = [1, -2.2553904581802566298165, 3.0672491379903545904995, -2.3156179157577940763701, 1.0674946929328590350394];
computed = coeff(la2(4));
assert_checkalmostequal(computed, expected, 1.e-12);
expected = [1, -0.8087137031221993677121, -0.1951300338336872108869, 2.0601861867298310038166, -2.2136119179063538098262, 1.4523203295727622474942];
computed = coeff(la2(5));
assert_checkalmostequal(computed, expected, 1.e-10);
expected = [0.4429775275224624442316, 1];
computed = coeff(sig2(1));
assert_checkalmostequal(computed, expected, 1.e-14);
expected = [0.6626546432402768971315, -0.7424151347904438535963, 1];
computed = coeff(sig2(2));
assert_checkalmostequal(computed, expected, 1.e-14);
expected = [-0.0048019603017336104020, 0.6686337968594154856916, -0.7483090096409563685143, 1];
computed = coeff(sig2(3));
assert_checkalmostequal(computed, expected, 1.e-11);
expected = [0.9961140979715094045943, -2.2463220443824232219754, 3.0129744887444229739515, -2.2592168848895997079751, 1];
computed = coeff(sig2(4));
assert_checkalmostequal(computed, expected, 1.e-13);
expected = [0.3993857757876351222137, 0.0953432301271577298252, -1.0213063678721903126956, 2.0881496310317495535003, -1.8328746888034264106437, 1];
computed = coeff(sig2(5));
assert_checkalmostequal(computed, expected, 1.e-10);