summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2013-08-23 15:16:52 -0700
committerJosh Blum <josh@joshknows.com>2013-08-23 15:16:52 -0700
commitf8b677183937d565045939061cbd57202e388e50 (patch)
tree89c449f67ddd27f4a10b5c8f831e38eccd9c1c79
parenta77e4d83cea39908e1b7425b315a6c8c69ac0a7f (diff)
downloaduhd-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.hpp8
-rw-r--r--host/lib/usrp/multi_usrp.cpp4
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()
));
}