summaryrefslogtreecommitdiff
path: root/gr-analog
diff options
context:
space:
mode:
authorJon Szymaniak <jon.szymaniak@gmail.com>2015-02-03 14:05:16 -0500
committerJon Szymaniak <jon.szymaniak@gmail.com>2015-02-25 19:48:30 -0500
commit47320cf0dfdd6a4294d60ec3b704dd3a0f33023b (patch)
tree1c5a909b5724d458173da40cb5fabcdcedb7c09d /gr-analog
parent7ded1774f6fd44301ce71740837320447eddb6dd (diff)
analog: Moved CTCSS squelch FFT parameter calculations
This routine will be re-used in an upcoming commit, so it has been moved to a private method.
Diffstat (limited to 'gr-analog')
-rw-r--r--gr-analog/lib/ctcss_squelch_ff_impl.cc33
-rw-r--r--gr-analog/lib/ctcss_squelch_ff_impl.h1
2 files changed, 21 insertions, 13 deletions
diff --git a/gr-analog/lib/ctcss_squelch_ff_impl.cc b/gr-analog/lib/ctcss_squelch_ff_impl.cc
index 7714da3fe4..a82ca4646e 100644
--- a/gr-analog/lib/ctcss_squelch_ff_impl.cc
+++ b/gr-analog/lib/ctcss_squelch_ff_impl.cc
@@ -55,6 +55,25 @@ namespace gr {
return -1;
}
+ void
+ ctcss_squelch_ff_impl::compute_freqs(const float &freq,
+ float &f_l, float &f_r)
+ {
+ int i = find_tone(freq);
+
+ // Non-standard tones or edge tones get 2% guard band, otherwise
+ // guards are set at adjacent ctcss tone frequencies
+ if(i == -1 || i == 0)
+ f_l = freq*0.98;
+ else
+ f_l = ctcss_tones[i-1];
+
+ if(i == -1 || i == max_tone_index)
+ f_r = freq*1.02;
+ else
+ f_r = ctcss_tones[i+1];
+ }
+
ctcss_squelch_ff_impl::ctcss_squelch_ff_impl(int rate, float freq, float level,
int len, int ramp, bool gate)
: block("ctcss_squelch_ff",
@@ -71,20 +90,8 @@ namespace gr {
else
d_len = len;
- int i = find_tone(freq);
-
- // Non-standard tones or edge tones get 2% guard band, otherwise
- // guards are set at adjacent ctcss tone frequencies
float f_l, f_r;
- if(i == -1 || i == 0)
- f_l = freq*0.98;
- else
- f_l = ctcss_tones[i-1];
-
- if(i == -1 || i == max_tone_index)
- f_r = freq*1.02;
- else
- f_r = ctcss_tones[i+1];
+ compute_freqs(d_freq, f_l, f_r);
d_goertzel_l = new fft::goertzel(rate, d_len, f_l);
d_goertzel_c = new fft::goertzel(rate, d_len, freq);
diff --git a/gr-analog/lib/ctcss_squelch_ff_impl.h b/gr-analog/lib/ctcss_squelch_ff_impl.h
index ee0cfa76e6..6a137e0595 100644
--- a/gr-analog/lib/ctcss_squelch_ff_impl.h
+++ b/gr-analog/lib/ctcss_squelch_ff_impl.h
@@ -43,6 +43,7 @@ namespace gr {
fft::goertzel *d_goertzel_r;
static int find_tone(float freq);
+ static void compute_freqs(const float &freq, float &f_l, float &f_r);
protected:
virtual void update_state(const float &in);