~ubuntu-branches/debian/sid/octave-tisean/sid

« back to all changes in this revision

Viewing changes to tests/corr/test_corr.m

  • Committer: Package Import Robot
  • Author(s): Rafael Laboissiere
  • Date: 2017-08-14 12:53:47 UTC
  • Revision ID: package-import@ubuntu.com-20170814125347-ju5owr4dggr53a2n
Tags: upstream-0.2.3
ImportĀ upstreamĀ versionĀ 0.2.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# This test compares the results of TISEAN corr function
 
2
# $ corr square.dat -D6000 -n -o "square_tisean.dat"
 
3
# $ corr square.dat -D6000 -o "square_tisean_norm.dat"
 
4
# $ corr amplitude.dat -D5000 -n -o "amplitude_tisean.dat"
 
5
# $ corr amplitude.dat -D5000 -o "amplitude_tisean_norm.dat"
 
6
# $ corr ar.dat -D5000 -n -o "ar_tisean.dat"
 
7
# $ corr ar.dat -D5000 -o "ar_tisean_norm.dat"
 
8
 
 
9
pkg load signal
 
10
close all
 
11
 
 
12
dataset = {"square","amplitude", "ar"};
 
13
ndata   = numel (dataset);
 
14
 
 
15
tisean_output = @(x) sprintf("%s_tisean.dat",x);
 
16
tisean_norm_output = @(x) sprintf("%s_tisean_norm.dat",x);
 
17
 
 
18
for i=1:ndata
 
19
 
 
20
  # Load tisean results
 
21
  data_tisean = load (tisean_output (dataset{i}));
 
22
  data_tisean_norm = load (tisean_norm_output (dataset{i}));
 
23
  
 
24
  data = load ([dataset{i} ".dat"]);
 
25
  n    = length (data);
 
26
 
 
27
  # Calculate with Octave  
 
28
  [data_octave, lags] = xcorr (data, n,'unbiased');
 
29
  idx         = find (lags >0);
 
30
  data_octave = data_octave(idx);
 
31
  lags        = lags(idx);
 
32
 
 
33
  #Calculate with Octave when normalised
 
34
  data_octave_norm = xcorr (center (data), n, 'coeff');
 
35
  data_octave_norm = data_octave_norm(idx);
 
36
  data_octave_norm = data_octave_norm .* (n ./ (n - (transpose ([0:n-1]))));  
 
37
 
 
38
  # Compare
 
39
  figure (2*i - 1)
 
40
  plot (lags, data_octave,'r.', ...
 
41
        data_tisean(:,1), data_tisean(:,2),'bo')
 
42
  legend ("Octave","Tisean");
 
43
  axis tight
 
44
 
 
45
  figure (2*i)
 
46
  plot (lags, data_octave_norm,'r.', ...
 
47
        data_tisean_norm(:,1), data_tisean_norm(:,2),'bo')
 
48
  legend ("Octave","Tisean");
 
49
  axis tight
 
50
 
 
51
  printf ("Difference on %s: %.3g\n", dataset{i}, ...
 
52
                   sqrt (mean ((data_octave-data_tisean(:,2)).^2)));
 
53
  printf ("Difference on %s when normalized: %.3g\n", dataset{i}, ...
 
54
                   sqrt (mean ((data_octave_norm-data_tisean_norm(:,2)).^2)));
 
55
  
 
56
  fflush (stdout);
 
57
 
 
58
endfor