Aceasta este comanda spectrum1dgmt care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
spectrum1d - Calculați spectre automate [și încrucișate] dintr-una [sau două] serii temporale
REZUMAT
spectrul1d [ tabel ] segment_size] [ [xycnpago] ] [ dt ] [ [h|m] ] [ [tulpina_nume ] ] [ ] [
] [ -b] [ -d] [ -f] [ -g] [ -h] [ -i]
Notă: Nu este permis niciun spațiu între indicatorul opțiunii și argumentele asociate.
DESCRIERE
spectrul1d citește valorile X [și Y] din prima [și a doua] coloană la intrarea standard
[sau fișier x[y].]. Aceste valori sunt tratate ca serii temporale X(t) [Y(t)] eșantionate la egal
intervale distanțate dt unități în afară. Poate exista orice număr de linii de intrare. spectrul1d
va crea fișiere care conțin estimări ale densității spectrale auto [și încrucișate] de către Welch
metoda de mediere a ansamblului a mai multor ferestre suprapuse, folosind eroarea standard
estimări de la Bendat şi Piersol.
Fișierele de ieșire au 3 coloane: f sau w, p și e. f sau w este frecvența sau lungimea de undă,
p este estimarea densității spectrale și e este dimensiunea barei de eroare a unei abateri standard.
Aceste fișiere sunt denumite pe baza tulpina_nume. Dacă -C este utilizată opțiunea, până la opt fișiere sunt
creată; altfel se scrie doar una (xpower). Fișierele (care sunt ASCII, cu excepția cazului în care -bo is
set) sunt după cum urmează:
tulpina_nume.xpower
Densitatea spectrală de putere a lui X(t). Unități de X * X * dt.
tulpina_nume.yputere
Densitatea spectrală de putere a lui Y(t). Unități de Y * Y * dt.
tulpina_nume.cputere
Densitatea spectrală de putere a ieșirii coerente. Unități la fel ca ypower.
tulpina_nume.npower
Densitatea spectrală de putere a zgomotului de ieșire. Unități la fel ca ypower.
tulpina_nume.câştig
Spectrul de câștig sau modulul funcției de transfer. Unități de (Y / X).
tulpina_nume.fază
Spectrul de fază sau faza funcției de transfer. Unitățile sunt radiani.
tulpina_nume.admite
Spectrul de admitere sau o parte reală a funcției de transfer. Unități de (Y / X).
tulpina_nume.coh
Spectrul de coerență (pătrat) sau coeficientul de corelație liniară în funcție de
frecvență. Număr fără dimensiune în [0, 1]. Raportul semnal-zgomot (SNR) este coh /
(1 - coh). SNR = 1 când coh = 0.5.
În plus, va fi scris un singur fișier cu toate cele de mai sus ca coloane individuale
stdout (cu excepția cazului în care este dezactivat prin -T).
NECESARE ARGUMENTE
-Ssegment_size]
segment_size este un număr radix-2 de mostre pe fereastră pentru media ansamblului. The
cea mai mică frecvență estimată este 1.0/(segment_size * dt), în timp ce cel mai mare este
1.0/(2 * dt). O eroare standard în densitatea spectrală a puterii este de aproximativ 1.0/
sqrt(n_date / segment_size), astfel, dacă segment_size = 256, aveți nevoie de 25,600 de date pentru a obține
o bară de eroare standard de 10%. Barele de eroare interspectrale sunt mai mari și mai mari
complicat, fiind o funcție și a coerenței.
OPTIONAL ARGUMENTE
tabel Unul sau mai multe ASCII (sau binar, vezi -bi) fișiere care conțin eșantioane X(t) [Y(t)] în
primele 1 [sau 2] coloane. Dacă nu sunt specificate fișiere, spectrul1d va citi din
intrare standard.
-C[xycnpago]
Citiți primele două coloane de intrare ca mostre din două serii temporale, X(t) și Y(t).
Considerați Y(t) ca ieșire și X(t) ca intrare într-un sistem liniar cu zgomot.
Estimați funcția optimă de răspuns în frecvență prin cele mai mici pătrate, astfel încât
ieșirea de zgomot este redusă la minimum și ieșirea coerentă și ieșirea de zgomot sunt
necorelat. Opțional, specificați până la 8 litere din set { x y c n p a g o }
în orice ordine, pentru a crea numai acele fișiere de ieșire în loc de [toate] implicite. x =
xpower, y = yputere, c = cputere, n = nputere, p = faza, a = admit, g = câștig, o =
coh.
-Ddt dt Setați distanța dintre eșantioane în seria temporală [Implicit = 1].
-L Lasă tendința în pace. În mod implicit, o tendință liniară va fi eliminată înainte de
transforma. Alternativ, anexați m pentru a elimina doar valoarea medie sau h pentru a elimina
valoare mijlocie.
-N[tulpina_nume]
Furnizați un nume alternativ care să fie folosit pentru fișierele de ieșire [Implicit = „spectru”].
Dacă nu dați niciun argument, scrierea fișierelor de ieșire individuale va dezactiva.
-V[nivel] (Mai mult ...)
Selectați nivelul de verbozitate [c].
-T Dezactivați scrierea unui singur fișier de rezultate compus în stdout.
-W Scrieți mai degrabă lungimea de undă decât frecvența în coloana 1 a fișierului [fișierelor] de ieșire [implicit =
frecvență, (cicluri / dt)].
-bi[ncols][t] (Mai mult ...)
Selectați intrarea binară nativă. [Implicit este 2 coloane de intrare].
-bo[ncols][tip] (Mai mult ...)
Selectați ieșirea binară nativă. [Implicit este 2 coloane de ieșire].
-d[i|o]nu există date (Mai mult ...)
Înlocuiți coloanele de intrare egale nu există date cu NaN și faceți invers la ieșire.
-f[i|o]colinfo (Mai mult ...)
Specificați tipurile de date ale coloanelor de intrare și/sau de ieșire.
-g[a]x|y|d|X|Y|D|[cu]z[+|-]decalaj[U] (Mai mult ...)
Determinați golurile de date și întreruperile de linie.
-h[i|o][n][+c][+d][+rremarcă][+rtitlu] (Mai mult ...)
Omite sau produce înregistrări antet.
-icol[l][sscară][ocompensa][,...] (Mai mult ...)
Selectați coloanele de intrare (0 este prima coloană).
-^ or doar -
Imprimă un mesaj scurt despre sintaxa comenzii, apoi iese (NOTĂ: pe Windows
foloseste doar -).
-+ or doar +
Imprimați un mesaj extins de utilizare (ajutor), inclusiv explicația oricăruia
opțiunea specifică modulului (dar nu opțiunile comune GMT), apoi iese.
-? or Nu. argumente
Apoi imprimați un mesaj complet de utilizare (ajutor), inclusiv explicația opțiunilor
iesirile.
--versiune
Tipăriți versiunea GMT și ieșiți.
--show-datadir
Imprimați calea completă către directorul de partajare GMT și ieșiți.
ASCII FORMAT PRECIZIE
Formatele de ieșire ASCII ale datelor numerice sunt controlate de parametrii din dvs gmt.conf
fişier. Longitudinea și latitudinea sunt formatate conform FORMAT_GEO_OUT, în timp ce altele
valorile sunt formatate conform FORMAT_FLOAT_OUT. Fiți conștienți de faptul că formatul efectiv poate
duce la pierderea preciziei la ieșire, ceea ce poate duce la diverse probleme în aval. Dacă
descoperiți că rezultatul nu este scris cu suficientă precizie, luați în considerare trecerea la binar
ieșire (-bo dacă este disponibil) sau specificați mai multe zecimale utilizând setarea FORMAT_FLOAT_OUT.
EXEMPLE
Să presupunem că data.g este datele gravitaționale în mGal, eșantionate la fiecare 1.5 km. Pentru a-și scrie spectrul de putere,
în mGal**2-km, la fișierul data.xpower, folosiți
gmt spectrum1d data.g -S256 -D1.5 -Ndata
Să presupunem că, în plus față de data.g, aveți data.t, care este topografia în metri eșantionați la
aceleași puncte ca și datele.g. Pentru a estima diferite caracteristici ale funcției de transfer,
luând în considerare data.t ca intrare și data.g ca ieșire, utilizare
paste data.t data.g | gmt spectrum1d -S256 -D1.5 -Ndata -C > results.txt
TUTORIAL
Ieșirea spectrum1d este în unități de densitate spectrală de putere și astfel pentru a obține unități de
data-squared trebuie să împărțiți la delta_t, unde delta_t este distanța dintre eșantioane. (Poate
fi un factor de 2 pi undeva, de asemenea. Dacă vrei să fii sigur de normalizare, poți
determinați un factor de scară din teorema lui Parseval: suma pătratelor intrării dvs
datele ar trebui să fie egale cu suma pătratelor ieșirilor de la spectrum1d, dacă sunteți pur și simplu
încercând să obțin o parodogramă. [Vezi mai jos.])
Să presupunem că pur și simplu luăm un set de date, x(t) și calculăm transformata Fourier discretă (DFT)
a întregului set de date dintr-o singură mișcare. Numiți acest lucru X(f). Atunci să presupunem că formăm X(f) ori
conjugat complex al lui X(f).
P_raw(f) = X(f) * X'(f), unde ' indică conjugarea complexă.
P_raw se numește periodogramă. Suma probelor parogramei este egală cu suma
a eșantioanelor pătratelor lui x(t), prin teorema lui Parseval. (Dacă utilizați o subrutină DFT
pe un computer, de obicei, suma lui P_raw este egală cu suma lui x pătrat, ori M, unde M este
numărul de mostre în x(t).)
Fiecare estimare a lui X(f) este acum formată dintr-o combinație liniară ponderată a tuturor x(t)
valorile. (Greutățile sunt uneori numite „factori twiddle” în literatura DFT.) Deci,
indiferent care este distribuția de probabilitate pentru valorile x(t), probabilitatea
distribuția pentru valorile X(f) se apropie de [complex] Gaussian, prin Limita Centrală
Teorema. Aceasta înseamnă că distribuția de probabilitate pentru P_raw(f) se apropie de chi-pătrat
cu două grade de libertate. Aceasta se reduce la o distribuție exponențială și varianța
a estimării lui P_raw este proporțională cu pătratul mediei, adică cea așteptată
valoarea lui P_raw.
În practică, dacă formăm P_raw, estimările sunt iremediabil de zgomotoase. Astfel P_raw nu este
util și trebuie să facem un fel de netezire sau mediere pentru a obține o estimare utilă,
P_util(f).
Există mai multe moduri diferite de a face acest lucru în literatură. Una este de a forma P_raw și
apoi netezește-l. Un altul este de a forma funcția de auto-covarianță a lui x(t), neted, conic și
modelați-o și apoi luați transformata Fourier a netezitei, conice și modelate
auto-covarianta. O alta este formarea unui model parametric pentru structura de auto-corelare
în x(t), apoi calculați spectrul acelui model. Această ultimă abordare este ceea ce se face în
ceea ce se numește „entropia maximă” sau „Berg” sau „Box-Jenkins” sau „ARMA” sau „ARIMA”
metode.
Metoda lui Welch este o metodă încercată și adevărată. În metoda lui, alegi o lungime de segment,
-SN, astfel încât estimările se vor face din segmente de lungime N. Eșantioanele de frecvență (în
cicluri per unitate delta_t) ale dvs. P_useful va fi atunci la k /(N * delta_t), Unde k este o
întreg și veți obține N mostre (deoarece spectrul este o funcție uniformă a f, numai N/2
dintre ele sunt cu adevărat utile). Dacă lungimea întregului set de date, x(t), este M probe
lung, atunci varianța în P_useful dvs. va scădea proporțional cu N / M. Astfel ai nevoie
a alege N << M pentru a obține un zgomot foarte scăzut și o încredere ridicată în P_useful. Este un
compromis aici; Vezi mai jos.
Există o reducere suplimentară a varianței prin faptul că metoda lui Welch folosește un Von Hann
fereastra spectrală pe fiecare probă de lungime N. Acest lucru reduce scurgerile din lobii laterali și are
efect de netezire a (N segment) parodogramă ca și cum X(f) ar fi fost convoluat cu
[1/4, 1/2, 1/4] înainte de formarea P_utilă. Dar acest lucru mărește puțin lățimea de bandă spectrală
a fiecărei estimări, deoarece estimarea la frecvență eșantion k acum este puțin corelat
cu estimarea la frecvenţa eşantion k+1. (Desigur, acest lucru s-ar întâmpla și dacă pur și simplu
a format P_raw și apoi a netezit-o.)
În cele din urmă, metoda lui Welch folosește și procesarea suprapusă. Din moment ce fereastra Von Hann este
mare la mijloc și se îngustează până aproape de zero la capete, doar la mijlocul segmentului de
lungime N contribuie mult la estimarea sa. Prin urmare, luând următorul segment de date,
avansăm numai în secvența x(t). N/2 puncte. În acest fel, următorul segment devine
greutate mare în cazul în care segmentele de pe ambele părți ale acestuia vor obține o greutate mică și viciu
invers. Acest lucru dublează efectul de netezire și asigură că (dacă N << M) aproape fiecare punct
în x(t) contribuie cu o pondere aproape egală în răspunsul final.
Metoda lui Welch de estimare spectrală a fost utilizată pe scară largă și studiată pe scară largă. Este foarte
fiabil și proprietățile sale statistice sunt bine înțelese. Este foarte recomandat în
manuale precum „Random Data: Analysis and Measurement Procedures” de Bendat și
Piersol.
În toate problemele de estimare a parametrilor din date, există un compromis clasic între
rezoluție și variație. Dacă doriți să încercați să strângeți mai multă rezoluție din datele dvs
stabilit, atunci trebuie să fiți dispus să acceptați mai mult zgomot în estimări. Același compromis
este evident aici în metoda lui Welch. Dacă doriți să aveți zgomot foarte scăzut în spectral
estimări, atunci trebuie să alegi N << M, iar asta înseamnă că primești doar N mostre de
spectrul și cea mai lungă perioadă pe care o puteți rezolva este doar N * delta_t. Deci vezi
că reducerea zgomotului scade numărul de probe spectrale și scade cel mai lung
perioadă. Dimpotrivă, dacă alegi N se apropie M, apoi abordezi parodograma cu
proprietățile sale statistice sunt foarte proaste, dar obțineți o mulțime de mostre și o bază mare
perioadă.
Celelalte metode de estimare spectrală, de asemenea, pot face o treabă bună. A fost selectată metoda lui Welch
pentru că modul în care funcționează, cum se poate codifica și efectele sale asupra statisticilor
distribuțiile, rezoluția, scurgerile din lobii laterali, părtinirea, varianța etc. sunt toate ușor
înțeles. Unele dintre celelalte metode (de ex. Entropia maximă) tind să ascundă unde unele dintre ele
aceste compromisuri au loc într-o „cutie neagră”.
Utilizați spectrum1dgmt online folosind serviciile onworks.net