diff options
author | Jamie Bullock <jamie@postlude.co.uk> | 2008-05-04 11:02:40 +0000 |
---|---|---|
committer | Jamie Bullock <jamie@postlude.co.uk> | 2008-05-04 11:02:40 +0000 |
commit | 6a4be601746f6a84fc70434a61b16bea86b6c147 (patch) | |
tree | fd8e8bfac0e6846f848a38490d583f4bfa7f6a6e /src | |
parent | d817fc9b42b0c04d6452159ca63f5a30834f5489 (diff) | |
download | LibXtract-6a4be601746f6a84fc70434a61b16bea86b6c147.tar.gz LibXtract-6a4be601746f6a84fc70434a61b16bea86b6c147.tar.bz2 LibXtract-6a4be601746f6a84fc70434a61b16bea86b6c147.zip |
Fixed bug in peak interpolation algorithm in xtract_peak_spectrum()
Diffstat (limited to 'src')
-rw-r--r-- | src/delta.c | 1 | ||||
-rw-r--r-- | src/scalar.c | 2 | ||||
-rw-r--r-- | src/vector.c | 2 |
3 files changed, 4 insertions, 1 deletions
diff --git a/src/delta.c b/src/delta.c index 25d380b..b1effd0 100644 --- a/src/delta.c +++ b/src/delta.c @@ -26,6 +26,7 @@ int xtract_flux(const float *data, const int N, const void *argv , float *result){ + /* FIX: don't be lazy -- take the lnorm of the difference vector! */ return xtract_lnorm(data, N, argv, result); } diff --git a/src/scalar.c b/src/scalar.c index 4a2b672..d2bc317 100644 --- a/src/scalar.c +++ b/src/scalar.c @@ -434,6 +434,8 @@ int xtract_spread(const float *data, const int N, const void *argv, float *resul den += data[n]; } + /* FIX: spectral spread is mathematically equivalent to spectral variance -- + * here we are computing the spectral standard deviation */ *result = sqrtf(num / den); return XTRACT_SUCCESS; diff --git a/src/vector.c b/src/vector.c index 449cd0d..b891111 100644 --- a/src/vector.c +++ b/src/vector.c @@ -436,7 +436,7 @@ int xtract_peak_spectrum(const float *data, const int N, const void *argv, float for(n = 1; n < N; n++){ if(input[n] >= threshold){ if(input[n] > input[n - 1] && input[n] > input[n + 1]){ - result[N + n] = q * (n + (p = .5 * (y = input[n-1] - + result[N + n] = q * (n + (p = .5 * ((y = input[n-1]) - (y3 = input[n+1])) / (input[n - 1] - 2 * (y2 = input[n]) + input[n + 1]))); result[n] = y2 - .25 * (y - y3) * p; |