Mercurial > hg > match-vamp
changeset 150:b79151bb75af refactors
Make noise a parameter in DistanceMetric (though not exposed in plugin etc yet)
author | Chris Cannam |
---|---|
date | Thu, 22 Jan 2015 17:25:24 +0000 |
parents | b990fa45cb1f |
children | 246de093f0f1 |
files | src/DistanceMetric.cpp src/DistanceMetric.h |
diffstat | 2 files changed, 17 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/DistanceMetric.cpp Thu Jan 22 17:20:11 2015 +0000 +++ b/src/DistanceMetric.cpp Thu Jan 22 17:25:24 2015 +0000 @@ -49,8 +49,10 @@ } double noise = 1e-3 * featureSize; - d += noise; - sum += noise; + if (m_params.noise == AddNoise) { + d += noise; + sum += noise; + } if (sum == 0) { return 0;
--- a/src/DistanceMetric.h Thu Jan 22 17:20:11 2015 +0000 +++ b/src/DistanceMetric.h Thu Jan 22 17:25:24 2015 +0000 @@ -36,14 +36,26 @@ NormaliseDistanceToLogSum, }; + enum NoiseAddition { + + /** Don't add noise. */ + NoNoise, + + /** Add a constant noise term. This can help avoid + * mis-tracking when one file contains a lot of silence. */ + AddNoise, + }; + struct Parameters { Parameters() : - norm(NormaliseDistanceToLogSum) + norm(NormaliseDistanceToLogSum), + noise(AddNoise) {} /** Normalisation for distance metrics. */ DistanceNormalisation norm; + NoiseAddition noise; }; DistanceMetric(Parameters params);