aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDimitri Stolnikov <horiz0n@gmx.net>2013-03-03 18:06:48 +0100
committerDimitri Stolnikov <horiz0n@gmx.net>2013-03-11 21:06:13 +0100
commite415d843c7588d3cd018fe43f139c5429a6a6c18 (patch)
treefeecc7b7d61821902922ef404521ec22a4d4c1e2 /include
parentede9c80455d64d0286c68ce9faaaa7da69aeefd1 (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.h24
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 */