forked from simonrodgers/peakmatch-xcorr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
xcorr.conf
88 lines (67 loc) · 3.55 KB
/
xcorr.conf
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
# mode - ANALYSE, PEAKMATCH, FFTPRECACHE, POSTPROCESS, BRUTEFORCE, FFTDOMINANTFREQ, PLOT2D, PLOT1D, CLUSTER
mode = PLOT1D
# more logging
verbose = false
# data directories
dataset.full = /events/full
dataset.sample = /events/sample
# expected length of files - if any files are not this length, will be zero padded or truncated
expected-file-line-count = 4000
# locate peak within peak-range readings, then return a window around it
crop = false
crop.min-peak-range = 250
crop.max-peak-range = 2000
crop.window-before-peak = 250
crop.window-after-peak = 1000
# top K peaks (min and max), ordered by amplitude, which will be aligned together
# run-time varies as O(top-k-peaks ^ 2) - every event's top K peaks are aligned against every other event's top K peaks
top-k-peaks = 2
# sample events every sampling-stride entries
# run-time varies as O(1/sampling-stride)
sampling-stride = 5
# only calculate xcorr values for values where the amplitude is higher than this fraction of the peak amplitude
# the final xcorr value for a well-matching pair is dominated by the multiplication of two peaks together (1000 * 1000 >> 50 * 50)
# setting this to a non-zero value means eliminating a large amount of noise from the calculations, and drastically speeding up the calculation
# tweak this value in ANALYSE phase: too high -> false negatives. too low -> performance degradation
top-amplitude-threshold = 0.3
# threshold for candidates to be included
# this will be lower than the final xcorr calculated value
# tweak this value in ANALYSE phase: too high -> false negatives. too low -> too many false positives for post-processing
candidate-threshold = 0.55
# threshold for the final FFT xcorr post-process step
final-threshold = 0.7
# number of threads to use in the PEAKMATCH and POSTPROCESS steps. set this equal to the number of processor cores for optimal performance.
# (performance calculations in the ANALYSE phase don't use multi-threading, so extrapolations may be inaccurate by this factor)
threads = 2
# in-memory LRU FFT cache for FFT xcorr calculations.
# set to zero to disable this cache
fft-memory-cache-size = 1000
dominantfreq.band-width = 0.25
dominantfreq.filter-below-hz = 1
dominantfreq.filter-above-hz = 10
dominantfreq.sample-rate = 50
dominantfreq.top-freq-count = 5
# space-separated frequency (hz) bands (eg [1.3-4.5]) to calculate mean spectral amplitudes across
dominantfreq.mean-frequency-amplitude-bands = [1-5] [5-8.5] [8.5-10]
# move the origin to zero before performing any calculations (subtract mean amplitude from all readings)
normalise-events = true
# plot a single-band frequency spectrum on one line
plot.1d.tiny = false
# dutation of bands to slice event into for 2d plot
plot.2d.bucket-duration-sec = 1
# VERTICAL, HORIZONTAL or SHADED
plot.2d.gradient = HORIZONTAL
# size of frequency bands to divide sample into for plot / clustering
frequency.band-hz = 0.25
# K-Nearest-Neighbour clustering on amplitude of 1d frequency bands
# uses normalised euclidian distance measure
# K = upper bound on size of clusters
cluster.k = 10
# eta = distance threshold (0-1) for inclusion within a nearest-neighbour cluster
cluster.eta = 0.15
# defining cluster centres sets into cluster centre mode
# once examples identified of representative samples of a cluster, compare every sample to each centre,
# defined as a CSV of filenames within dataset.full
# and emit those matching above the cluster.centre-threshold
#cluster.centres = F_0001012140.dat,F_0001070611.dat,F_0001030740.dat
cluster.centre-threshold = 0.4