diff options
author | Johnathan Corgan <johnathan@corganlabs.com> | 2015-03-28 19:13:05 -0700 |
---|---|---|
committer | Johnathan Corgan <johnathan@corganlabs.com> | 2015-03-28 19:13:05 -0700 |
commit | ba0a7191dd6a4cede9b0a25c302a78d742d61858 (patch) | |
tree | 77902424e17daf102a4f1641120895e97d73d253 /gr-uhd | |
parent | a5172fa4c38997b90d6e1fded3602733de21511a (diff) | |
parent | 24f4e1c2e60bf7af551dfed8c34001e5c661d843 (diff) |
Merge remote-tracking branch 'jarn0ld/jarn0ld/uhd-iq-imbalance-on-off'
Diffstat (limited to 'gr-uhd')
-rw-r--r-- | gr-uhd/include/gnuradio/uhd/usrp_source.h | 8 | ||||
-rw-r--r-- | gr-uhd/lib/usrp_source_impl.cc | 12 | ||||
-rw-r--r-- | gr-uhd/lib/usrp_source_impl.h | 1 |
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); |