diff options
author | Josh Blum <josh@joshknows.com> | 2013-08-23 15:16:52 -0700 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2013-08-23 15:16:52 -0700 |
commit | f8b677183937d565045939061cbd57202e388e50 (patch) | |
tree | 89c449f67ddd27f4a10b5c8f831e38eccd9c1c79 | |
parent | a77e4d83cea39908e1b7425b315a6c8c69ac0a7f (diff) | |
download | uhd-f8b677183937d565045939061cbd57202e388e50.tar.gz uhd-f8b677183937d565045939061cbd57202e388e50.tar.bz2 uhd-f8b677183937d565045939061cbd57202e388e50.zip |
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
-rw-r--r-- | host/include/uhd/usrp/multi_usrp.hpp | 8 | ||||
-rw-r--r-- | host/lib/usrp/multi_usrp.cpp | 4 |
2 files changed, 10 insertions, 2 deletions
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() )); } |