USRP Hardware Driver and Device Manual  Version: 4.11.0.0-0-g0d7ed3b1
UHD and USRP Manual
uhd::math Namespace Reference

Namespaces

 fp_compare
 

Enumerations

enum class  interp_mode { NEAREST_NEIGHBOR , LINEAR }
 

Functions

UHD_INLINE bool frequencies_are_equal (double lhs, double rhs)
 
double dB_to_lin (const double dB_val)
 
double lin_to_dB (const double val)
 
template<typename T >
constexpr int sign (T x)
 Returns the sign of x. More...
 
double wrap_frequency (const double requested_freq, const double rate)
 Return a wrapped frequency that is the equivalent frequency in the first Nyquist zone. More...
 

Detailed Description

Contains useful mathematical functions, classes, and constants, which should be used in UHD when portable / std options are not available.

Enumeration Type Documentation

◆ interp_mode

Enumerator
NEAREST_NEIGHBOR 
LINEAR 

Function Documentation

◆ dB_to_lin()

double uhd::math::dB_to_lin ( const double  dB_val)
inline

◆ frequencies_are_equal()

UHD_INLINE bool uhd::math::frequencies_are_equal ( double  lhs,
double  rhs 
)

◆ lin_to_dB()

double uhd::math::lin_to_dB ( const double  val)
inline

◆ sign()

template<typename T >
constexpr int uhd::math::sign ( T  x)
inlineconstexpr

Returns the sign of x.

Note: This is equivalent to the Boost.Math version, but without the dependency.

Returns +1 for positive arguments, -1 for negative arguments, and 0 if x is zero.

◆ wrap_frequency()

double uhd::math::wrap_frequency ( const double  requested_freq,
const double  rate 
)
inline

Return a wrapped frequency that is the equivalent frequency in the first Nyquist zone.

Examples:

  • Just above the sampling rate: wrap_frequency(250e6, 200e6) == 50e6
  • Just outside the Nyquist zone: wrap_frequency(120e6, 200e6) == -80e6
  • Also works for negative frequencies: wrap_frequency(-250e6, 200e6) == -50e6