Estimation spectrale

Ce module regroupe des fonctions liées à l'estimation du spectre de puissance (ou PSD pour Power Spectral Density) d'un signal numérique :

  • Estimation de la PSD complète :

    • Méthodes non paramétriques (sans hypothèse sur la nature du signal) : périodogramme (psd()), méthode Welch (psd_welch()),
    • Méthodes paramétriques : MUSIC (MUltiple SIgnal Classification) (psd_sousesp())
  • Estimation de la PSD pour une fréquence spécifique (goertzel(), filtre_goertzel()).
  • Estimation la plus fine possible de la fréquence d'un signal exponentiel (ou sinusoïdal) pur (freqestim()).

Enumérations

FreqEstimMethode : FFT | CANDAN2 | QUADRATIC;

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

Structures

struct SpectrumConfig
Configuration pour le calcul de spectre en temps réel.

Fonctions

Vecf psd_freqs(entier n, bouléen est_complexe=oui)
Calcul des fréquences normalisées associée à une psd.

tuple<Vecf, Vecf> psd(const Vecteur<T> &x)
PSD (corrélogramme)

tuple<Vecf, Vecf> psd_welch(const Veccf &x, entier N, cstring fen="hn")
PSD (méthode de Welch - par moyennage).

tuple<Vecf, Vecf> psd_sousesp(const Veccf &x, entier Ns, entier Nf=1024, entier 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<FiltreGen<float>> filtre_goertzel(float frequence, entier N)
Filtre de Goertzel (calcul au fil de l'eau)

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