Loading...
Searching...
No Matches
Ui::Monitor::SpectrumAnalysis Struct Reference

Public Member Functions

void prepare (int n, double sample_rate, Window w)
 
template<typename T >
void analyse (const T *x) noexcept
 Analyses size samples; x must hold at least that many.
 
double binFrequency (double bin) const noexcept
 
double frequencyBin (double f) const noexcept
 
double enbw () const noexcept
 
double bandPower (std::span< const double > p, double f0, double f1) const noexcept
 
double bandPower (double f0, double f1) const noexcept
 

Public Attributes

int size {}
 
double rate {48000.}
 
ossia::fft fft {16}
 
std::vector< double > window
 
double coherent_gain {1.}
 
double sum_sq {1.}
 
Window kind {}
 
std::vector< double > power
 

Member Function Documentation

◆ bandPower()

double Ui::Monitor::SpectrumAnalysis::bandPower ( std::span< const double >  p,
double  f0,
double  f1 
) const
inlinenoexcept

Energy of the bins of p (a spectrum of this analysis, averaged or not) between two frequencies, as the level a sine of that power would read: the window's equivalent noise bandwidth is divided out.

◆ enbw()

double Ui::Monitor::SpectrumAnalysis::enbw ( ) const
inlinenoexcept

Equivalent noise bandwidth of the window, in bins: a sine's power spreads over that many bins of power.

Member Data Documentation

◆ power

std::vector<double> Ui::Monitor::SpectrumAnalysis::power

Power of each bin, normalized so that 10 log10 of it is the level in dBFS of a sine centred on that bin.


The documentation for this struct was generated from the following file: