From 9bfa962b91f77b2925f8164c63676cc14baae4dd Mon Sep 17 00:00:00 2001 From: Reiner Herrmann Date: Sun, 9 Apr 2017 17:48:31 +0200 Subject: Filter out noise which was amplified by HPS --- tuner.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'tuner.c') diff --git a/tuner.c b/tuner.c index ec2ebb9..d2defcb 100644 --- a/tuner.c +++ b/tuner.c @@ -14,6 +14,7 @@ #define FFT_SIZE (1<<13) #define ACCURACY 2.0 // Hz +#define NOISE_FLOOR 30 #define FFT_INDEX_TO_FREQ(i) ((float)i * SAMPLE_RATE / FFT_SIZE) @@ -128,6 +129,10 @@ static void calculate_magnitudes() /* +1 because out[0] is DC result */ magnitudes[i] = cabs(fft_out[i+1]); + if (magnitudes[i] < NOISE_FLOOR) { + magnitudes[i] = 0.0; + } + /* also find highest magnitude for later informational output */ if (magnitudes[i] > magnitudes[max_i]) { max_i = i; -- cgit v1.2.3