diff options
author | Dimitri Stolnikov <horiz0n@gmx.net> | 2013-03-03 18:06:48 +0100 |
---|---|---|
committer | Dimitri Stolnikov <horiz0n@gmx.net> | 2013-03-11 21:06:13 +0100 |
commit | e415d843c7588d3cd018fe43f139c5429a6a6c18 (patch) | |
tree | feecc7b7d61821902922ef404521ec22a4d4c1e2 /include | |
parent | ede9c80455d64d0286c68ce9faaaa7da69aeefd1 (diff) |
add support for software IQ imbalance correction
this functionality depend on the gr-iqbal blocks developed by Sylvain
Munaut and is a compile time dependency:
http://cgit.osmocom.org/cgit/gr-iqbal
Diffstat (limited to 'include')
-rw-r--r-- | include/osmosdr/osmosdr_source_c.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/include/osmosdr/osmosdr_source_c.h b/include/osmosdr/osmosdr_source_c.h index 55a9a0f..a2b598c 100644 --- a/include/osmosdr/osmosdr_source_c.h +++ b/include/osmosdr/osmosdr_source_c.h @@ -229,6 +229,30 @@ public: * \return antenna the actual antenna's name */ virtual std::string get_antenna( size_t chan = 0 ) = 0; + + enum IQBalanceMode { + IQBalanceOff = 0, + IQBalanceManual, + IQBalanceAutomatic + }; + + /*! + * Set the RX frontend IQ balance mode. + * + * \param mode iq balance correction mode: 0 = Off, 1 = Manual, 2 = Automatic + * \param chan the channel index 0 to N-1 + */ + virtual void set_iq_balance_mode( int mode, size_t chan = 0 ) = 0; + + /*! + * Set the RX frontend IQ balance correction. + * Use this to adjust the magnitude and phase of I and Q. + * + * \param correction the complex correction value + * \param chan the channel index 0 to N-1 + */ + virtual void set_iq_balance( const std::complex<double> &correction, + size_t chan = 0 ) = 0; }; #endif /* INCLUDED_OSMOSDR_SOURCE_C_H */ |