From 6f96811f38e1339aab3a6b9a4f3066981dab80c7 Mon Sep 17 00:00:00 2001 From: Ahmet Inan Date: Fri, 27 May 2016 12:50:15 +0200 Subject: [PATCH] change decimation factor depending on sample rate --- app/src/main/rs/stft.rsh | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/app/src/main/rs/stft.rsh b/app/src/main/rs/stft.rsh index 520b273..e5594fe 100644 --- a/app/src/main/rs/stft.rsh +++ b/app/src/main/rs/stft.rsh @@ -102,7 +102,7 @@ static void draw_line(int x0, int y0, int x1, int y1) static void spectrum_analyzer(int amplitude) { - const int M = 7; + int M = (sample_rate + 3000) / 6000; static int n, m; static int buffer[stft_N]; static float input[radix2_N]; @@ -110,25 +110,26 @@ static void spectrum_analyzer(int amplitude) if (disable_analyzer) return; - + if (M > 1) { #if 1 - const int order = 5; - const int gain = pown(M, order); - static cic_t cascade[order]; - int tmp = cic_int_cascade(cascade, amplitude, order); - if (++m < M) - return; - m = 0; - amplitude = cic_comb_cascade(cascade, tmp, order) / gain; + const int order = 5; + const int gain = pown(M, order); + static cic_t cascade[order]; + int tmp = cic_int_cascade(cascade, amplitude, order); + if (++m < M) + return; + m = 0; + amplitude = cic_comb_cascade(cascade, tmp, order) / gain; #else - static int sum; - sum += amplitude; - if (++m < M) - return; - m = 0; - amplitude = sum / M; - sum = 0; + static int sum; + sum += amplitude; + if (++m < M) + return; + m = 0; + amplitude = sum / M; + sum = 0; #endif + } buffer[n] = amplitude; if (!(++n&(radix2_N-1))) {