aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2011-12-15 16:59:10 -0800
committerJosh Blum <josh@joshknows.com>2011-12-15 16:59:10 -0800
commit35bd9dd1f29649a642264d628f4cdd0465a024a3 (patch)
tree3f652f79ea1910d584e63d8972836457aa3f0bd4 /host/lib
parent518d481ec24558724ead302635ab50fbaf71ca12 (diff)
downloaduhd-35bd9dd1f29649a642264d628f4cdd0465a024a3.tar.gz
uhd-35bd9dd1f29649a642264d628f4cdd0465a024a3.tar.bz2
uhd-35bd9dd1f29649a642264d628f4cdd0465a024a3.zip
tvrx: adjust returned lo freq to compensate for negative cordic shift
Diffstat (limited to 'host/lib')
-rw-r--r--host/lib/usrp/dboard/db_tvrx.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/host/lib/usrp/dboard/db_tvrx.cpp b/host/lib/usrp/dboard/db_tvrx.cpp
index 47807caa1..fd86d5b83 100644
--- a/host/lib/usrp/dboard/db_tvrx.cpp
+++ b/host/lib/usrp/dboard/db_tvrx.cpp
@@ -400,5 +400,12 @@ double tvrx::set_freq(double freq) {
_lo_freq = actual_lo_freq; //for rx props
+ //Check the the IF if larger than the dsp rate and apply a corrective adjustment
+ //so that the cordic will be tuned to a possible rate within its range.
+ const double codec_rate = this->get_iface()->get_codec_rate(dboard_iface::UNIT_RX);
+ if (tvrx_if_freq >= codec_rate/2){
+ return _lo_freq - codec_rate;
+ }
+
return _lo_freq;
}