From f8b677183937d565045939061cbd57202e388e50 Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Fri, 23 Aug 2013 15:16:52 -0700 Subject: uhd: fix get_xx_freq_range to use analog bw/2 The proper equation should be: max_freq = max_lo + min(adc/2, bw/2) - sr/2 --- host/include/uhd/usrp/multi_usrp.hpp | 8 ++++++++ host/lib/usrp/multi_usrp.cpp | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'host') diff --git a/host/include/uhd/usrp/multi_usrp.hpp b/host/include/uhd/usrp/multi_usrp.hpp index 2e83823ba..d60f0e60c 100644 --- a/host/include/uhd/usrp/multi_usrp.hpp +++ b/host/include/uhd/usrp/multi_usrp.hpp @@ -441,6 +441,10 @@ public: /*! * Get the RX center frequency range. + * This range includes the overall tunable range of the RX chain, + * including frontend chain and digital down conversion chain. + * This tunable limit does not include the baseband bandwidth; + * users should assume that the actual range is +/- samp_rate/2. * \param chan the channel index 0 to N-1 * \return a frequency range object */ @@ -694,6 +698,10 @@ public: /*! * Get the TX center frequency range. + * This range includes the overall tunable range of the TX chain, + * including frontend chain and digital up conversion chain. + * This tunable limit does not include the baseband bandwidth; + * users should assume that the actual range is +/- samp_rate/2. * \param chan the channel index 0 to N-1 * \return a frequency range object */ diff --git a/host/lib/usrp/multi_usrp.cpp b/host/lib/usrp/multi_usrp.cpp index 0331cf93a..eba3157a9 100644 --- a/host/lib/usrp/multi_usrp.cpp +++ b/host/lib/usrp/multi_usrp.cpp @@ -81,8 +81,8 @@ static meta_range_t make_overall_tune_range( meta_range_t range; BOOST_FOREACH(const range_t &sub_range, fe_range){ range.push_back(range_t( - sub_range.start() + std::max(dsp_range.start(), -bw), - sub_range.stop() + std::min(dsp_range.stop(), bw), + sub_range.start() + std::max(dsp_range.start(), -bw/2), + sub_range.stop() + std::min(dsp_range.stop(), bw/2), dsp_range.step() )); } -- cgit v1.2.3