From f057decd1c7bd9d158c83d25df0fc70f139f2d5b Mon Sep 17 00:00:00 2001 From: Dimitri Stolnikov Date: Sat, 28 Sep 2013 13:33:30 +0200 Subject: [PATCH] bladerf: implement automatic bandwidth selection --- lib/bladerf/bladerf_sink_c.cc | 3 +++ lib/bladerf/bladerf_source_c.cc | 3 +++ 2 files changed, 6 insertions(+) diff --git a/lib/bladerf/bladerf_sink_c.cc b/lib/bladerf/bladerf_sink_c.cc index 5d24318..244284c 100644 --- a/lib/bladerf/bladerf_sink_c.cc +++ b/lib/bladerf/bladerf_sink_c.cc @@ -631,6 +631,9 @@ double bladerf_sink_c::set_bandwidth( double bandwidth, size_t chan ) int ret; uint32_t actual; + if ( bandwidth == 0.0 ) /* bandwidth of 0 means automatic filter selection */ + bandwidth = get_sample_rate() * 0.75; /* select narrower filters to prevent aliasing */ + ret = bladerf_set_bandwidth( _dev, BLADERF_MODULE_TX, (uint32_t)bandwidth, &actual ); if( ret ) { throw std::runtime_error( std::string(__FUNCTION__) + " " + diff --git a/lib/bladerf/bladerf_source_c.cc b/lib/bladerf/bladerf_source_c.cc index 931e33b..aba6964 100644 --- a/lib/bladerf/bladerf_source_c.cc +++ b/lib/bladerf/bladerf_source_c.cc @@ -599,6 +599,9 @@ double bladerf_source_c::set_bandwidth( double bandwidth, size_t chan ) int ret; uint32_t actual; + if ( bandwidth == 0.0 ) /* bandwidth of 0 means automatic filter selection */ + bandwidth = get_sample_rate() * 0.75; /* select narrower filters to prevent aliasing */ + ret = bladerf_set_bandwidth( _dev, BLADERF_MODULE_RX, (uint32_t)bandwidth, &actual ); if( ret ) { throw std::runtime_error( std::string(__FUNCTION__) + " " +