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.