summaryrefslogtreecommitdiff
path: root/gr-uhd
diff options
context:
space:
mode:
authorJulian Arnold <julian.arnold@ettus.com>2015-02-02 16:04:06 -0800
committerJulian Arnold <julian.arnold@ettus.com>2015-03-24 11:53:52 -0700
commit24f4e1c2e60bf7af551dfed8c34001e5c661d843 (patch)
tree84571d611e735aaec570e7f921c75babb1512b48 /gr-uhd
parent9024682186cf176749df4de948d034661b19638f (diff)
gr-uhd: support for IQ imbalance enable/disable
Diffstat (limited to 'gr-uhd')
-rw-r--r--gr-uhd/include/gnuradio/uhd/usrp_source.h8
-rw-r--r--gr-uhd/lib/usrp_source_impl.cc12
-rw-r--r--gr-uhd/lib/usrp_source_impl.h1
3 files changed, 21 insertions, 0 deletions
diff --git a/gr-uhd/include/gnuradio/uhd/usrp_source.h b/gr-uhd/include/gnuradio/uhd/usrp_source.h
index 61f63bdf3b..7da39683d1 100644
--- a/gr-uhd/include/gnuradio/uhd/usrp_source.h
+++ b/gr-uhd/include/gnuradio/uhd/usrp_source.h
@@ -359,6 +359,14 @@ namespace gr {
virtual void set_dc_offset(const std::complex<double> &offset, size_t chan = 0) = 0;
/*!
+ * Enable/Disable the RX frontend IQ imbalance correction.
+ *
+ * \param enb true to enable automatic IQ imbalance correction
+ * \param chan the channel index 0 to N-1
+ */
+ virtual void set_auto_iq_balance(const bool enb, size_t chan = 0) = 0;
+
+ /*!
* Set the RX frontend IQ imbalance correction.
* Use this to adjust the magnitude and phase of I and Q.
*
diff --git a/gr-uhd/lib/usrp_source_impl.cc b/gr-uhd/lib/usrp_source_impl.cc
index b3eca9eb46..13457402be 100644
--- a/gr-uhd/lib/usrp_source_impl.cc
+++ b/gr-uhd/lib/usrp_source_impl.cc
@@ -327,6 +327,18 @@ namespace gr {
}
void
+ usrp_source_impl::set_auto_iq_balance(const bool enable, size_t chan)
+ {
+ chan = _stream_args.channels[chan];
+#ifdef UHD_USRP_MULTI_USRP_FRONTEND_IQ_AUTO_API
+ return _dev->set_rx_iq_balance(enable, chan);
+#else
+ throw std::runtime_error("not implemented in this version");
+#endif
+ }
+
+
+ void
usrp_source_impl::set_iq_balance(const std::complex<double> &correction,
size_t chan)
{
diff --git a/gr-uhd/lib/usrp_source_impl.h b/gr-uhd/lib/usrp_source_impl.h
index d5bd2f4149..0cbbe2b16b 100644
--- a/gr-uhd/lib/usrp_source_impl.h
+++ b/gr-uhd/lib/usrp_source_impl.h
@@ -103,6 +103,7 @@ namespace gr {
::uhd::freq_range_t get_bandwidth_range(size_t chan);
void set_auto_dc_offset(const bool enable, size_t chan);
void set_dc_offset(const std::complex<double> &offset, size_t chan);
+ void set_auto_iq_balance(const bool enable, size_t chan);
void set_iq_balance(const std::complex<double> &correction, size_t chan);
void set_clock_config(const ::uhd::clock_config_t &clock_config, size_t mboard);
void set_time_source(const std::string &source, const size_t mboard);