USRP Hardware Driver and Device Manual  Version: 4.11.0.0-0-g0d7ed3b1
UHD and USRP Manual
iq_cal.hpp
Go to the documentation of this file.
1 //
2 // Copyright 2020 Ettus Research, a National Instruments Brand
3 //
4 // SPDX-License-Identifier: GPL-3.0-or-later
5 //
6 
7 #pragma once
8 
9 #include <uhd/cal/container.hpp>
10 #include <uhd/config.hpp>
12 #include <complex>
13 #include <cstdint>
14 #include <memory>
15 #include <string>
16 
17 namespace uhd { namespace usrp { namespace cal {
18 
25 class UHD_API iq_cal : public container
26 {
27 public:
28  using sptr = std::shared_ptr<iq_cal>;
29 
39  virtual void set_interp_mode(const uhd::math::interp_mode interp) = 0;
40 
46  virtual std::complex<double> get_cal_coeff(const double freq) const = 0;
47 
60  virtual void set_cal_coeff(const double freq,
61  const std::complex<double> coeff,
62  const double suppression_abs = 0,
63  const double suppression_delta = 0) = 0;
64 
70  virtual void clear() = 0;
71 
78  static sptr make(
79  const std::string& name, const std::string& serial, const uint64_t timestamp);
80 
82  static sptr make();
83 };
84 
85 }}} // namespace uhd::usrp::cal
Definition: container.hpp:23
Definition: iq_cal.hpp:26
virtual void set_interp_mode(const uhd::math::interp_mode interp)=0
Choose interpolation mode.
static sptr make(const std::string &name, const std::string &serial, const uint64_t timestamp)
Factory for new cal data sets.
static sptr make()
Default factory.
virtual void set_cal_coeff(const double freq, const std::complex< double > coeff, const double suppression_abs=0, const double suppression_delta=0)=0
Update / set a calbration coefficient.
std::shared_ptr< iq_cal > sptr
Definition: iq_cal.hpp:28
virtual std::complex< double > get_cal_coeff(const double freq) const =0
Return a calibration coefficient for a given frequency.
virtual void clear()=0
Clear the list of coefficients.
#define UHD_API
Definition: config.h:87
interp_mode
Definition: interpolation.hpp:11
Definition: build_info.hpp:12