From 89e79fad0812b673f44b921b12c1c5a392c1c460 Mon Sep 17 00:00:00 2001 From: Bernd Jendrissek Date: Wed, 16 Jan 2013 04:32:37 +0200 Subject: [PATCH] Control noise floor and sensitivity of z axis. --- waterfall.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/waterfall.c b/waterfall.c index 02acf0a..a58fe25 100644 --- a/waterfall.c +++ b/waterfall.c @@ -30,6 +30,8 @@ struct waterfall_context { struct { int f_low; int f_high; + int noise_floor; + int sensitivity; } zoom; char *buf; size_t buf_size; @@ -165,6 +167,22 @@ gboolean waterfall_key_press(GtkWidget *widget, waterfall->zoom.f_high += MIN(headroom, resolution / 4); zoom_changed = TRUE; break; + case GDK_KEY_bracketleft: + printf("[\n"); + waterfall->zoom.noise_floor--; + break; + case GDK_KEY_bracketright: + printf("]\n"); + waterfall->zoom.noise_floor++; + break; + case GDK_KEY_braceleft: + printf("{\n"); + waterfall->zoom.sensitivity = MAX(waterfall->zoom.sensitivity / 2, 1); + break; + case GDK_KEY_braceright: + printf("}\n"); + waterfall->zoom.sensitivity *= 2; + break; } if (zoom_changed) { @@ -311,7 +329,7 @@ gboolean waterfall_input(GIOChannel *source, double signal_i = waterfall->fft.spectrum[row][0], signal_q = waterfall->fft.spectrum[row][1]; /* XXX Give invsqrt a chance to happen. */ double power = -log10(1.0 / hypot(signal_i, signal_q)) - normalization; - double z = (power + 5) * 200; + double z = (power + waterfall->zoom.noise_floor) * waterfall->zoom.sensitivity; if (row > 50 && row < 60) { printf("Power = %g (%g)\n", power, z); } @@ -360,6 +378,8 @@ int main(int argc, char *argv[]) .zoom = { .f_low = 0, .f_high = INTEGRATION_SAMPLES/2, + .noise_floor = 5, + .sensitivity = 200, }, }; -- 2.11.4.GIT