Vous devez savoir que l'estimation des spectres de puissance à l'aide d'un périodogramme n'est pas recommandée, et en fait, c'est une mauvaise pratique depuis ~ 1896. C'est un estimateur incohérent pour rien de moins que des millions d'échantillons de données (et même alors ...), et généralement biaisé. La même chose s'applique exactement à l'utilisation d'estimations standard d'autocorrélations (c'est-à-dire Bartlett), car ce sont des paires de transformées de Fourier. Si vous utilisez un estimateur cohérent, certaines options s'offrent à vous.
La meilleure d'entre elles est une estimation sur plusieurs fenêtres (ou effilement) des spectres de puissance. Dans ce cas, en utilisant les coefficients de chaque fenêtre à une fréquence d'intérêt, vous pouvez calculer une statistique F harmonique par rapport à une hypothèse nulle de bruit blanc. Il s'agit d'un excellent outil pour la détection des composants de ligne dans le bruit, et il est fortement recommandé. C'est le choix par défaut dans la communauté du traitement du signal pour la détection des périodicités du bruit sous l'hypothèse de stationnarité.
Vous pouvez accéder à la fois à la méthode multicouche d'estimation du spectre et au test F associé via le multitaper
package en R (disponible via CRAN). La documentation fournie avec le package devrait être suffisante pour vous permettre de continuer; le test F est une option simple dans l'appel de fonction pour spec.mtm
.
La référence originale qui définit ces deux techniques et en donne les algorithmes est Spectrum Estimation and Harmonic Analysis , DJ Thomson, Proceedings of the IEEE, vol. 70, p. 1055-1096, 1982.
Voici un exemple d'utilisation de l'ensemble de données inclus avec le multitaper
package.
require(multitaper);
data(willamette);
resSpec <- spec.mtm(willamette, k=10, nw=5.0, nFFT = "default",
centreWithSlepians = TRUE, Ftest = TRUE,
jackknife = FALSE, maxAdaptiveIterations = 100,
plot = TRUE, na.action = na.fail)
Les paramètres que vous devez connaître sont k et nw : ce sont le nombre de fenêtres (défini sur 10 ci-dessus) et le produit de bande passante (5,0 ci-dessus). Vous pouvez facilement les laisser à ces valeurs quasi-par défaut pour la plupart des applications. La commande centreWithSlepians supprime une estimation robuste de la moyenne des séries chronologiques à l'aide d'une projection sur les fenêtres de Slepian - cela est également recommandé, car laisser la moyenne dans produit beaucoup d'énergie aux basses fréquences.
Je recommanderais également de tracer le spectre de sortie de 'spec.mtm' sur une échelle logarithmique, car cela nettoie considérablement les choses. Si vous avez besoin de plus d'informations, postez-le et je serai heureux de vous le fournir.
bootspecdens
peut être utile.