[med-svn] [SCM] aghermann branch, master, updated. 06bda7dfaa687aaf0708a024d192024e2cd58421
Andrei Zavada
johnhommer at gmail.com
Thu Jan 24 00:43:37 UTC 2013
The following commit has been merged in the master branch:
commit 6d1b1e8468fecec576d92947e057ef149b4abfae
Author: Andrei Zavada <johnhommer at gmail.com>
Date: Fri Jan 11 01:57:59 2013 +0200
recompute criterion linear unit for pattern search from field avg env breadth
diff --git a/src/sigproc/patterns.hh b/src/sigproc/patterns.hh
index 416f2d8..e3c88a1 100644
--- a/src/sigproc/patterns.hh
+++ b/src/sigproc/patterns.hh
@@ -104,13 +104,6 @@ class CPattern
{
if ( ctx_before + ctx_after >= thing.signal.size() )
throw invalid_argument ("pattern.size too small");
- crit_linear_unity =
- penv(Pp_.env_tightness).first.max() -
- penv(Pp_.env_tightness).second.min();
- crit_dzcdf_unity =
- pdzcdf(Pp_.dzcdf_step,
- Pp_.dzcdf_sigma,
- Pp_.dzcdf_smooth).max();
}
size_t find( const SSignalRef<T>& field,
diff --git a/src/sigproc/patterns.ii b/src/sigproc/patterns.ii
index ee09dfc..d522954 100644
--- a/src/sigproc/patterns.ii
+++ b/src/sigproc/patterns.ii
@@ -38,6 +38,13 @@ find( const valarray<T>& fenv_u,
return (size_t)-1;
}
+ // make it (each time) field-specific
+ crit_linear_unity =
+ fenv_u.sum() / fenv_u.size() -
+ fenv_l.sum() / fenv_l.size();
+ crit_dzcdf_unity =
+ fdzcdf.sum() / fdzcdf.size();
+
printf( "field = %zu, thing = %zu(%zu), start = %zu, size_essential = %zu\n",
ftarget_freq.size(), ptarget_freq.signal.size(),
penv.centre(SPatternPPack<T>::env_tightness).size(), start, size_essential());
@@ -69,10 +76,10 @@ find( const valarray<T>& fenv_u,
- fdzcdf[i+j]);
}
- diff[0] /= essential_part * crit_linear_unity; // normalise
- diff[1] /= essential_part * crit_linear_unity;
- diff[2] /= essential_part * crit_linear_unity;
- diff[3] /= essential_part * crit_dzcdf_unity;
+ diff[0] = sqrt(diff[0] / essential_part) / crit_linear_unity; // normalise
+ diff[1] = sqrt(diff[1] / essential_part) / crit_linear_unity;
+ diff[2] = sqrt(diff[2] / essential_part) / crit_linear_unity;
+ diff[3] = sqrt(diff[3] / essential_part) / crit_dzcdf_unity;
// if ( i % 250 == 0 ) printf( "at %zu diff_course = %g,\tdiff_breadth = %g\t diff_dzcdf = %g\n", i, diff_course, diff_breadth, diff_dzcd);
if ( diff.good_enough(SPatternPPack<T>::criteria) ) {
--
Sleep experiment manager
More information about the debian-med-commit
mailing list