Dovresti essere consapevole che la stima degli spettri di potenza usando un periodogramma non è raccomandata, e in effetti è stata una cattiva pratica dal ~ 1896. È uno stimatore incoerente per qualcosa di meno di milioni di campioni di dati (e anche allora ...), e in generale parziale. La stessa identica cosa si applica all'utilizzo di stime standard delle autocorrelazioni (cioè Bartlett), in quanto sono coppie di trasformate di Fourier. Se si utilizza uno stimatore coerente, sono disponibili alcune opzioni.
Il migliore di questi è una stima a finestra multipla (o conica) degli spettri di potenza. In questo caso, utilizzando i coefficienti di ciascuna finestra a una frequenza di interesse, è possibile calcolare una statistica F armonica rispetto a un'ipotesi nulla del rumore bianco. Questo è uno strumento eccellente per il rilevamento di componenti di linea nel rumore ed è altamente raccomandato. È la scelta predefinita nella comunità di elaborazione del segnale per il rilevamento di periodicità nel rumore in base alla stazionarietà.
È possibile accedere sia al metodo multitaper di stima dello spettro sia al test F associato tramite il multitaper
pacchetto in R (disponibile tramite CRAN). La documentazione fornita con il pacchetto dovrebbe essere sufficiente per iniziare; l'F-test è una semplice opzione nella funzione call for spec.mtm
.
Il riferimento originale che definisce entrambe queste tecniche e fornisce gli algoritmi per esse è la stima dello spettro e l'analisi armonica , DJ Thomson, Atti dell'IEEE, vol. 70, pag. 1055-1096, 1982.
Ecco un esempio usando il set di dati incluso con il multitaper
pacchetto.
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)
I parametri di cui dovresti essere a conoscenza sono k e nw : questi sono il numero di finestre (impostato su 10 sopra) e il prodotto time-bandwidth (5.0 sopra). Puoi facilmente lasciarli a questi valori quasi predefiniti per la maggior parte delle applicazioni. Il comando centreWithSlepians rimuove una stima attendibile della media delle serie temporali usando una proiezione su finestre Slepiane - questo è anche raccomandato, poiché lasciare la media in produce molta potenza alle basse frequenze.
Consiglierei anche di tracciare l'output dello spettro da 'spec.mtm' su una scala logaritmica, poiché pulisce le cose in modo significativo. Se hai bisogno di ulteriori informazioni, basta pubblicare e sono felice di fornirle.
bootspecdens
potrebbe essere utile.