Il s'agit de la commande Spectrum1dgmt qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
spectral1d - Calculer les spectres automatiques [et croisés] à partir d'une [ou deux] séries temporelles
SYNOPSIS
spectre1d [ table ] taille_segment] [ [xycnpago] ] [ dt ] [ [h|m] ] [ [nom_tige ] ] [ ] [
] [ -b] [ -d] [ -f] [ -g] [ -h] [ -i]
Attention: Aucun espace n'est autorisé entre l'indicateur d'option et les arguments associés.
DESCRIPTION
spectre1d lit les valeurs X [et Y] des première [et deuxième] colonnes sur l'entrée standard
[ou x[y]fichier]. Ces valeurs sont traitées comme des séries temporelles X(t) [Y(t)] échantillonnées à
intervalles espacés dt unités à part. Il peut y avoir n'importe quel nombre de lignes d'entrée. spectre1d
créera des fichiers contenant des estimations de densité spectrale automatiques [et croisées] par Welch's
méthode de moyennage d'ensemble de plusieurs fenêtres superposées, utilisant l'erreur standard
estimations de Bendat et Piersol.
Les fichiers de sortie ont 3 colonnes : f ou w, p et e. f ou w est la fréquence ou la longueur d'onde,
p est l'estimation de la densité spectrale et e est la taille de la barre d'erreur d'écart type.
Ces fichiers sont nommés en fonction de nom_tige. Si l' -C est utilisée, jusqu'à huit fichiers sont
créé; sinon, un seul (xpower) est écrit. Les fichiers (qui sont ASCII sauf -bo is
ensemble) sont les suivants :
nom_tige.xpower
Densité spectrale de puissance de X(t). Unités de X * X * dt.
nom_tige.ypower
Densité spectrale de puissance de Y(t). Unités de Y * Y * dt.
nom_tige.cpower
Densité spectrale de puissance de la sortie cohérente. Unités identiques à ypower.
nom_tige.npower
Densité spectrale de puissance de la sortie de bruit. Unités identiques à ypower.
nom_tige.Gain
Spectre de gain, ou module de la fonction de transfert. Unités de (Y / X).
nom_tige.phase
Spectre de phase, ou phase de la fonction de transfert. Les unités sont les radians.
nom_tige.admettre
Spectre d'admittance, ou partie réelle de la fonction de transfert. Unités de (Y / X).
nom_tige.coh
Spectre de cohérence (au carré), ou coefficient de corrélation linéaire en fonction de
la fréquence. Nombre sans dimension dans [0, 1]. Le rapport signal/bruit (SNR) est coh /
(1 - coh). SNR = 1 lorsque coh = 0.5.
De plus, un seul fichier avec tout ce qui précède en tant que colonnes individuelles sera écrit dans
Stdout (sauf si désactivé via -T).
REQUIS ARGUMENTS
-Staille_segment]
taille_segment est un nombre de base 2 d'échantillons par fenêtre pour la moyenne d'ensemble. Les
la plus petite fréquence estimée est 1.0/(taille_segment * dt), tandis que le plus grand est
1.0/(2 * dt). Une erreur standard dans la densité spectrale de puissance est d'environ 1.0 /
carré(n_données / taille_segment), donc si taille_segment = 256, vous avez besoin de 25,600 XNUMX données pour obtenir
une barre d'erreur standard de 10 %. Les barres d'erreurs interspectrales sont plus grandes et plus
compliqué, étant fonction aussi de la cohérence.
EN OPTION ARGUMENTS
table Un ou plusieurs ASCII (ou binaire, voir -bi) fichiers contenant X(t) [Y(t)] échantillons dans le
1 [ou 2] premières colonnes. Si aucun fichier n'est spécifié, spectre1d lira de
entrée standard.
-C[xycnpago]
Lisez les deux premières colonnes d'entrée en tant qu'échantillons de deux séries chronologiques, X(t) et Y(t).
Considérons Y(t) comme la sortie et X(t) comme l'entrée dans un système linéaire avec bruit.
Estimez la fonction de réponse en fréquence optimale par les moindres carrés, de sorte que le
la sortie de bruit est minimisée et la sortie cohérente et la sortie de bruit sont
non corrélée. Spécifiez éventuellement jusqu'à 8 lettres de l'ensemble { x y c n p a g o }
dans n'importe quel ordre pour créer uniquement ces fichiers de sortie au lieu de la valeur par défaut [all]. x =
xpuissance, y = ypuissance, c = cpuissance, n = npuissance, p = phases, a = admettre, g = gagner, o =
coh.
-Ddt dt Définissez l'espacement entre les échantillons dans la série temporelle [Par défaut = 1].
-L Laissez la tendance tranquille. Par défaut, une tendance linéaire sera supprimée avant la
transformer. Sinon, ajoutez m pour simplement supprimer la valeur moyenne ou h pour supprimer le
valeur moyenne.
-N[nom_tige]
Fournissez une racine de nom alternative à utiliser pour les fichiers de sortie [Default = "spectrum"].
Ne donner aucun argument désactivera l'écriture des fichiers de sortie individuels.
-V[niveau] (plus ...)
Sélectionnez le niveau de verbosité [c].
-T Désactivez l'écriture d'un seul fichier de résultats composite sur stdout.
-W Écrivez la longueur d'onde plutôt que la fréquence dans la colonne 1 du ou des fichiers de sortie [Par défaut =
fréquence, (cycles / dt)].
-bi[ncols][t] (plus ...)
Sélectionnez l'entrée binaire native. [La valeur par défaut est de 2 colonnes d'entrée].
-bo[ncols][type] (plus ...)
Sélectionnez la sortie binaire native. [La valeur par défaut est 2 colonnes de sortie].
-d[i|o]pas de données (plus ...)
Remplacer les colonnes d'entrée égales pas de données avec NaN et faire l'inverse en sortie.
-f[je|o]colinfo (plus ...)
Spécifiez les types de données des colonnes d'entrée et/ou de sortie.
-g[a]x|y|d|X|Y|D|[avec]z[+|-]écart[u] (plus ...)
Déterminez les lacunes dans les données et les sauts de ligne.
-h[je|o][n][+c][+d][+rremarque][+rtitre] (plus ...)
Ignorer ou produire des enregistrements d'en-tête.
-icols[l][sen échelon][ocompenser][, ] (plus ...)
Sélectionnez les colonnes d'entrée (0 est la première colonne).
-^ or juste -
Imprime un court message sur la syntaxe de la commande, puis quitte (REMARQUE : sous Windows
utiliser juste -).
-+ or juste +
Imprimez un message d'utilisation détaillé (aide), y compris l'explication de tout
option spécifique au module (mais pas les options communes GMT), puis se ferme.
-? or aucune arguments
Imprimez un message d'utilisation (aide) complet, y compris l'explication des options, puis
sorties.
--version
Imprimer la version GMT et quitter.
--show-datadir
Affichez le chemin complet vers le répertoire de partage GMT et quittez.
ASCII Format LA PRÉCISION
Les formats de sortie ASCII des données numériques sont contrôlés par les paramètres de votre gmt.conf
déposer. La longitude et la latitude sont formatées selon FORMAT_GEO_OUT, tandis que d'autres
les valeurs sont formatées selon FORMAT_FLOAT_OUT. Sachez que le format en vigueur peut
conduire à une perte de précision dans la sortie, ce qui peut conduire à divers problèmes en aval. Si
vous trouvez que la sortie n'est pas écrite avec suffisamment de précision, envisagez de passer en binaire
sortir (-bo si disponible) ou spécifiez plus de décimales à l'aide du paramètre FORMAT_FLOAT_OUT.
EXEMPLES
Supposons que data.g soit des données de gravité en mGal, échantillonnées tous les 1.5 km. Pour écrire son spectre de puissance,
en mGal**2-km, dans le fichier data.xpower, utilisez
gmt spectre1d data.g -S256 -D1.5 -Ndata
Supposons qu'en plus de data.g vous avez data.t, qui est la topographie en mètres échantillonnés à
les mêmes points que data.g. Pour estimer diverses caractéristiques de la fonction de transfert,
en considérant data.t comme entrée et data.g comme sortie, utilisez
coller data.t data.g | gmt spectrum1d -S256 -D1.5 -Ndata -C > results.txt
TUTORIAL
La sortie de spectrum1d est en unités de densité spectrale de puissance, et donc pour obtenir des unités de
au carré des données, vous devez diviser par delta_t, où delta_t est l'espacement des échantillons. (Il peut
être un facteur de 2 pi quelque part, aussi. Si vous voulez être sûr de la normalisation, vous pouvez
déterminer un facteur d'échelle à partir du théorème de Parseval : la somme des carrés de votre entrée
les données doivent être égales à la somme des carrés des sorties de spectrum1d, si vous êtes simplement
essayer d'obtenir un périodogramme. [Voir ci-dessous.])
Supposons que nous prenons simplement un ensemble de données, x(t), et calculons la transformée de Fourier discrète (DFT)
de l'ensemble des données en une seule fois. Appelez cela X(f). Supposons alors que nous formions X(f) fois le
conjugué complexe de X(f).
P_raw(f) = X(f) * X'(f), où le ' indique une conjugaison complexe.
P_raw est appelé le périodogramme. La somme des échantillons du périodogramme est égale à la somme
des échantillons des carrés de x(t), par le théorème de Parseval. (Si vous utilisez un sous-programme DFT
sur un ordinateur, la somme de P_raw est généralement égale à la somme de x au carré multipliée par M, où M est
le nombre d'échantillons dans x(t).)
Chaque estimation de X(f) est maintenant formée par une combinaison linéaire pondérée de tous les x(t)
valeurs. (Les pondérations sont parfois appelées « facteurs de twiddle » dans la littérature DFT.) Ainsi,
quelle que soit la distribution de probabilité pour les valeurs x(t), la probabilité
distribution pour les valeurs X(f) approche [complexe] gaussienne, par la limite centrale
Théorème. Cela signifie que la distribution de probabilité pour P_raw(f) se rapproche du chi carré
avec deux degrés de liberté. Cela se réduit à une distribution exponentielle, et la variance
de l'estimation de P_raw est proportionnelle au carré de la moyenne, c'est-à-dire la valeur attendue
valeur de P_raw.
En pratique si on forme P_raw, les estimations sont désespérément bruitées. Ainsi P_raw n'est pas
utile, et nous devons faire une sorte de lissage ou de moyenne pour obtenir une estimation utile,
P_utile(f).
Il existe plusieurs manières de procéder dans la littérature. L'une consiste à former P_raw et
puis lissez-le. Une autre consiste à former la fonction d'auto-covariance de x(t), lisse, conique et
le façonner, puis prendre la transformée de Fourier du lissé, effilé et façonné
auto-covariance. Une autre consiste à former un modèle paramétrique pour la structure d'auto-corrélation
dans x(t), puis calculez le spectre de ce modèle. Cette dernière approche est ce qui est fait dans
ce qu'on appelle "l'entropie maximale" ou "Berg" ou "Box-Jenkins" ou "ARMA" ou "ARIMA"
méthodes.
La méthode de Welch est une méthode éprouvée. Dans sa méthode, vous choisissez une longueur de segment,
-SN, de sorte que les estimations seront faites à partir de segments de longueur N. Les échantillons de fréquence (en
cycles par unité delta_t) de votre P_useful sera alors à k /(N * delta_t), où k est un
entier, et vous obtiendrez N échantillons (puisque le spectre est une fonction paire de f, seulement N/2
d'entre eux sont vraiment utiles). Si la longueur de l'ensemble de votre ensemble de données, x(t), est M échantillons
long, alors la variance de votre P_useful diminuera proportionnellement à N / M. Ainsi vous avez besoin
choisir N << M pour obtenir un bruit très faible et une confiance élevée dans P_useful. Il y a un
compromis ici ; voir ci-dessous.
Il y a une réduction supplémentaire de la variance dans le fait que la méthode de Welch utilise un Von Hann
fenêtre spectrale sur chaque échantillon de longueur N. Cela réduit les fuites des lobes latéraux et a le
effet de lissage du (N segment) périodogramme comme si le X(f) avait été convolué avec
[1/4, 1/2, 1/4] avant de former P_utile. Mais cela élargit légèrement la bande passante spectrale
de chaque estimation, car l'estimation à l'échantillon de fréquence k est maintenant un peu corrélé
avec l'estimation à la fréquence échantillon k+1. (Bien sûr, cela se produirait également si vous
formé P_raw puis lissé.)
Enfin, la méthode de Welch utilise également un traitement superposé. Puisque la fenêtre de Von Hann est
grand au milieu et se rétrécit à près de zéro aux extrémités, seul le milieu du segment de
longueur N contribue beaucoup à son estimation. Par conséquent, en prenant le segment de données suivant,
nous avançons uniquement dans la séquence x(t) N/2 points. De cette façon, le segment suivant obtient
grand poids où les segments de chaque côté auront peu de poids, et vice
versa. Cela double l'effet de lissage et garantit que (si N << M) presque tous les points
dans x(t) contribue avec un poids presque égal dans la réponse finale.
La méthode d'estimation spectrale de Welch a été largement utilisée et largement étudiée. C'est très
fiable et ses propriétés statistiques sont bien comprises. Il est fortement recommandé dans
des manuels tels que "Random Data: Analysis and Measurement Procedures" de Bendat et
Piersol.
Dans tous les problèmes d'estimation de paramètres à partir de données, il existe un compromis classique entre
résolution et écart. Si vous voulez essayer de tirer plus de résolution de vos données
défini, alors vous devez être prêt à accepter plus de bruit dans les estimations. Le même compromis
est évident ici dans la méthode de Welch. Si vous voulez avoir un bruit très faible dans le spectre
estimations, alors vous devez choisir N << M, et cela signifie que vous obtenez seulement N des échantillons de
le spectre, et la période la plus longue que vous pouvez résoudre est seulement N * delta_t. Donc tu vois
que la réduction du bruit abaisse le nombre d'échantillons spectraux et abaisse le plus long
période. A l'inverse, si vous choisissez N approchant M, alors vous approchez le périodogramme avec
ses très mauvaises propriétés statistiques, mais vous obtenez beaucoup d'échantillons et une grande fondamentale
période.
Les autres méthodes d'estimation spectrale peuvent également faire du bon travail. La méthode de Welch a été choisie
parce que la façon dont cela fonctionne, comment on peut le coder et ses effets sur les statistiques
les distributions, la résolution, les fuites dans les lobes secondaires, le biais, la variance, etc. sont tous facilement
entendu. Certaines des autres méthodes (par exemple, l'entropie maximale) ont tendance à cacher où certains des
ces compromis se produisent à l'intérieur d'une « boîte noire ».
Utilisez spectral1dgmt en ligne à l'aide des services onworks.net