summaryrefslogtreecommitdiff
path: root/gr-digital/lib/ofdm_sync_sc_cfb_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gr-digital/lib/ofdm_sync_sc_cfb_impl.cc')
-rw-r--r--gr-digital/lib/ofdm_sync_sc_cfb_impl.cc23
1 files changed, 17 insertions, 6 deletions
diff --git a/gr-digital/lib/ofdm_sync_sc_cfb_impl.cc b/gr-digital/lib/ofdm_sync_sc_cfb_impl.cc
index 9b3e9687bc..2ebdef5413 100644
--- a/gr-digital/lib/ofdm_sync_sc_cfb_impl.cc
+++ b/gr-digital/lib/ofdm_sync_sc_cfb_impl.cc
@@ -27,7 +27,6 @@
#include <gnuradio/io_signature.h>
#include "ofdm_sync_sc_cfb_impl.h"
-#include <gnuradio/blocks/plateau_detector_fb.h>
#include <gnuradio/blocks/complex_to_arg.h>
#include <gnuradio/blocks/complex_to_mag_squared.h>
#include <gnuradio/blocks/conjugate_cc.h>
@@ -43,12 +42,12 @@ namespace gr {
namespace digital {
ofdm_sync_sc_cfb::sptr
- ofdm_sync_sc_cfb::make(int fft_len, int cp_len, bool use_even_carriers)
+ ofdm_sync_sc_cfb::make(int fft_len, int cp_len, bool use_even_carriers, float threshold)
{
- return gnuradio::get_initial_sptr (new ofdm_sync_sc_cfb_impl(fft_len, cp_len, use_even_carriers));
+ return gnuradio::get_initial_sptr (new ofdm_sync_sc_cfb_impl(fft_len, cp_len, use_even_carriers, threshold));
}
- ofdm_sync_sc_cfb_impl::ofdm_sync_sc_cfb_impl(int fft_len, int cp_len, bool use_even_carriers)
+ ofdm_sync_sc_cfb_impl::ofdm_sync_sc_cfb_impl(int fft_len, int cp_len, bool use_even_carriers, float threshold)
: hier_block2 ("ofdm_sync_sc_cfb",
io_signature::make(1, 1, sizeof (gr_complex)),
#ifndef SYNC_ADD_DEBUG_OUTPUT
@@ -72,7 +71,10 @@ namespace gr {
gr::blocks::complex_to_arg::sptr peak_to_angle(gr::blocks::complex_to_arg::make());
gr::blocks::sample_and_hold_ff::sptr sample_and_hold(gr::blocks::sample_and_hold_ff::make());
- gr::blocks::plateau_detector_fb::sptr plateau_detector(gr::blocks::plateau_detector_fb::make(cp_len));
+ gr::blocks::plateau_detector_fb::sptr plateau_detector(gr::blocks::plateau_detector_fb::make(cp_len, threshold));
+
+ // store plateau detector for use in callback setting threshold
+ d_plateau_detector = plateau_detector;
// Delay Path
connect(self(), 0, delay, 0);
@@ -106,6 +108,15 @@ namespace gr {
{
}
+ void ofdm_sync_sc_cfb_impl::set_threshold(float threshold)
+ {
+ d_plateau_detector->set_threshold(threshold);
+ }
+
+ float ofdm_sync_sc_cfb_impl::threshold() const
+ {
+ return d_plateau_detector->threshold();
+ }
+
} /* namespace digital */
} /* namespace gr */
-