Spectral estimation

These are functions related to Power Spectral Density (PSD) estimation:

  • Complete estimation of the PSD:

    • Non parametric methods (without doing any assumptions on the nature of the signal): periodogram (psd()), Welch method (psd_welch()),
    • Parametric methods: MUSIC (MUltiple SIgnal Classification) (psd_subspace())
  • PSD estimation for a specific frequency (goertzel(), filter_goertzel()).
  • Frequency estimation for a single tone signal (freqestim()).

Enumerations

FreqEstimMethode : FFT | CANDAN2 | QUADRATIC;

Choix d'un algorithme pour l'estimation de fréquence.

Functions

Vecf psd_freqs(int n, bool complexe=true)

tuple<Vecf, Vecf> psd(const Vector<T> &x)
PSD (correlogram).

tuple<Vecf, Vecf> psd_welch(const Veccf &x, int N, cstring fen="hn")
PSD (Welch method - spectrum averaging).

tuple<Vecf, Vecf> psd_subspace(const Veccf &x, int Ns, int Nf=1024, int m=0)
Calcul d'un spectre par la méthode des sous-espaces.

float freqestim(const Veccf &x, FreqEstimMethode m=CANDAN2)
Estimation de fréquence d'un signal périodique.

float goertzel(const Vecf &x, float frequence)
Filtre de Goertzel (calcul sur un buffer).

sptr<FilterGen<float>> filter_goertzel(float frequence, int N)
Filtre de Goertzel (calcul au fil de l'eau)

sptr<Filter<cfloat, float, SpectrumConfig>> rt_spectrum(const SpectrumConfig &config)
Calcul de spectre en temps réel.