Dit is het commando spectrum1dgmt dat kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator
PROGRAMMA:
NAAM
spectrum1d - Bereken auto- [en kruis-] spectra van één [of twee] tijdreeksen
KORTE INHOUD
spectrum1d [ tafel ] segmentgrootte] [ [xycnpago] ] [ dt ] [ [h|m] ] [ [naam_stem ] ] [ ] [
] [ -b] [ -d] [ -f] [ -g] [ -h] [ -i]
Opmerking: Er is geen spatie toegestaan tussen de optievlag en de bijbehorende argumenten.
PRODUCTBESCHRIJVING
spectrum1d leest X [en Y]-waarden uit de eerste [en tweede] kolommen op standaardinvoer
[of x[y]bestand]. Deze waarden worden behandeld als tijdreeksen X(t) [Y(t)] bemonsterd op gelijk
intervallen gespreid dt eenheden uit elkaar. Er kan een willekeurig aantal invoerregels zijn. spectrum1d
zal bestand [s] maken met auto- [en cross-] spectrale dichtheidsschattingen door Welch's
methode van ensemblemiddeling van meerdere overlappende vensters, met behulp van standaardfout
schattingen van Bendat en Piersol.
De uitvoerbestanden hebben 3 kolommen: f of w, p en e. f of w is de frequentie of golflengte,
p is de schatting van de spectrale dichtheid en e is de enige standaarddeviatiefoutbalkgrootte.
Deze bestanden worden genoemd op basis van naam_stem. Indien de -C optie wordt gebruikt, zijn er maximaal acht bestanden
gemaakt; anders wordt er slechts één (xpower) geschreven. De bestanden (die ASCII zijn tenzij -bo is
set) zijn als volgt:
naam_stem.xkracht
Spectrale vermogensdichtheid van X(t). Eenheden van X * X * dt.
naam_stem.ykracht
Spectrale vermogensdichtheid van Y(t). Eenheden van Y * Y * dt.
naam_stem.cmacht
Spectrale vermogensdichtheid van de coherente output. Eenheden hetzelfde als ypower.
naam_stem.nkracht
Spectrale vermogensdichtheid van de ruisoutput. Eenheden hetzelfde als ypower.
naam_stem.verdienen
Versterkingsspectrum of modulus van de overdrachtsfunctie. Eenheden van (Y / X).
naam_stem.fase
Fasespectrum, of fase van de overdrachtsfunctie. Eenheden zijn radialen.
naam_stem.toegeven
Toelatingsspectrum, of reëel deel van de overdrachtsfunctie. Eenheden van (Y / X).
naam_stem.coh
(Kwadrat) coherentiespectrum, of lineaire correlatiecoëfficiënt als functie van
frequentie. Dimensieloos getal in [0, 1]. De signaal-ruisverhouding (SNR) is coh /
(1 - koh). SNR = 1 wanneer coh = 0.5.
Bovendien wordt een enkel bestand met al het bovenstaande als afzonderlijke kolommen geschreven naar
stdout (tenzij uitgeschakeld via -T).
VERPLICHT ARGUMENTEN
-Ssegmentgrootte]
segmentgrootte is een radix-2 aantal monsters per venster voor ensemblemiddeling. De
kleinste geschatte frequentie is 1.0/(segmentgrootte * dt), terwijl de grootste is
1.0/(2 * dt). Een standaardfout in spectrale vermogensdichtheid is ongeveer 1.0 /
kwark(n_gegevens / segmentgrootte), dus indien segmentgrootte = 256, je hebt 25,600 gegevens nodig om
een standaardfoutbalk van 10%. Cross-spectrale foutbalken zijn groter en meer
gecompliceerd, omdat het ook een functie is van de coherentie.
OPTIONELE ARGUMENTEN
tafel Een of meer ASCII (of binaire, zie -bi) bestanden met X(t) [Y(t)]-samples in de
eerste 1 [of 2] kolommen. Als er geen bestanden zijn opgegeven, spectrum1d zal lezen van
standaard invoer.
-C[xycnpago]
Lees de eerste twee invoerkolommen als voorbeelden van twee tijdreeksen, X(t) en Y(t).
Beschouw Y(t) als de output en X(t) de input in een lineair systeem met ruis.
Schat de optimale frequentieresponsfunctie met de kleinste kwadraten, zodat de
ruisoutput wordt geminimaliseerd en de coherente output en de ruisoutput zijn
ongecorreleerd. Geef optioneel maximaal 8 letters op uit de set { x y c n p a g o }
in willekeurige volgorde om alleen die uitvoerbestanden te maken in plaats van de standaard [alle]. x =
xkracht, y = macht, c = macht, n = nmacht, p = fase, a = toegeven, g = winst, o =
Ko.
-Ddt dt Stel de afstand tussen steekproeven in de tijdreeks in [Standaard = 1].
-L Laat de trend met rust. Standaard wordt een lineaire trend verwijderd voordat de
transformeren. Alternatief, voeg m om gewoon de gemiddelde waarde te verwijderen of h om de
middenwaarde.
-N[naam_stem]
Geef een alternatieve naamstam op die moet worden gebruikt voor uitvoerbestanden [Standaard = "spectrum"].
Als u geen argument geeft, wordt het schrijven van individuele uitvoerbestanden uitgeschakeld.
-V[niveau] (meer ...)
Selecteer breedsprakigheidsniveau [c].
-T Schakel het schrijven van een enkel samengesteld resultatenbestand naar stdout uit.
-W Schrijf Golflengte in plaats van frequentie in kolom 1 van het uitvoerbestand [s] [Standaard =
frequentie, (cycli / dt)].
-bi[ncols][T] (meer ...)
Selecteer native binaire invoer. [Standaard is 2 invoerkolommen].
-bo[ncols][ type dan: ] (meer ...)
Selecteer native binaire uitvoer. [Standaard is 2 uitvoerkolommen].
-d[i|o]geen informatie (meer ...)
Vervang invoerkolommen die gelijk zijn aan geen informatie met NaN en doe het omgekeerde bij uitvoer.
-f[i|o]colinfo (meer ...)
Specificeer gegevenstypen van invoer- en/of uitvoerkolommen.
-g[a]x|y|d|X|Y|D|[col]z[+|-]kloof[U] (meer ...)
Bepaal hiaten in de gegevens en regeleinden.
-h[i|o][n][+c][+d][+ropmerking][+rtitel] (meer ...)
Koprecord(s) overslaan of produceren.
-icols[l][sschaal][Ocompenseren][,...] (meer ...)
Selecteer invoerkolommen (0 is de eerste kolom).
-^ or voor slechts -
Druk een kort bericht af over de syntaxis van de opdracht en sluit vervolgens af (OPMERKING: op Windows
gebruik gewoon -).
-+ or voor slechts +
Druk een uitgebreid gebruiks(help)bericht af, inclusief de uitleg van eventuele
module-specifieke optie (maar niet de algemene GMT-opties), en wordt vervolgens afgesloten.
-? or geen argumenten
Druk een volledig gebruiks(help)bericht af, inclusief de uitleg van de opties, dan
uitgangen.
--versie
GMT-versie afdrukken en afsluiten.
--show-datadir
Druk het volledige pad af naar de GMT-sharedirectory en sluit af.
ASCII FORMAT PRECISION
De ASCII-uitvoerformaten van numerieke gegevens worden bestuurd door parameters in uw gmt.conf
het dossier. Lengte- en breedtegraad zijn opgemaakt volgens FORMAT_GEO_OUT, terwijl andere
waarden zijn opgemaakt volgens FORMAT_FLOAT_OUT. Houd er rekening mee dat het huidige formaat kan
leiden tot verlies van precisie in de uitvoer, wat stroomafwaarts tot verschillende problemen kan leiden. Indien
je vindt dat de uitvoer niet met voldoende precisie is geschreven, overweeg dan om over te schakelen naar binair
uitvoer (-bo indien beschikbaar) of geef meer decimalen op met de instelling FORMAT_FLOAT_OUT.
Voorbeelden
Stel dat data.g zwaartekrachtgegevens zijn in mGal, elke 1.5 km bemonsterd. Om het vermogensspectrum te schrijven,
in mGal**2-km, naar het bestand data.xpower, gebruik
gmt spectrum1d data.g -S256 -D1.5 -Ndata
Stel dat u naast data.g ook data.t heeft, wat topografie is in meters gesampled op
dezelfde punten als data.g. Om verschillende kenmerken van de overdrachtsfunctie te schatten,
beschouwend data.t als input en data.g als output, gebruik
plak data.t data.g | gmt spectrum1d -S256 -D1.5 -Ndata -C > resultaten.txt
TUTORIAL
De uitvoer van spectrum1d is in eenheden van spectrale vermogensdichtheid, en dus om eenheden van te krijgen
data-kwadraat moet je delen door delta_t, waarbij delta_t de steekproefafstand is. (Er kan
ergens ook een factor 2 pi zijn. Als u zeker wilt zijn van de normalisatie, kunt u:
bepaal een schaalfactor uit de stelling van Parseval: de som van de kwadraten van je invoer
gegevens moeten gelijk zijn aan de som van de kwadraten van de uitgangen van spectrum1d, als je gewoon bent
proberen om een periodogram te krijgen. [Zie onder.])
Stel dat we gewoon een dataset, x(t), nemen en de discrete Fourier-transformatie (DFT) berekenen
van de gehele dataset in één keer. Noem dit X(f). Stel dan dat we X(f) maal de . vormen
complexe conjugaat van X(f).
P_raw(f) = X(f) * X'(f), waarbij de ' complexe vervoeging aangeeft.
P_raw wordt het periodogram genoemd. De som van de steekproeven van het periodogram is gelijk aan de som
van de steekproeven van de vierkanten van x(t), door de stelling van Parseval. (Als u een DFT-subroutine gebruikt)
op een computer is de som van P_raw meestal gelijk aan de som van x-kwadraat, maal M, waarbij M is
het aantal steekproeven in x(t).)
Elke schatting van X(f) wordt nu gevormd door een gewogen lineaire combinatie van alle x(t)
waarden. (De gewichten worden in de DFT-literatuur soms "twiddle-factoren" genoemd.)
wat de kansverdeling voor de x(t)-waarden ook is, de kans
distributie voor de X(f)-waarden benadert [complex] Gaussiaans, door de centrale limiet
Stelling. Dit betekent dat de kansverdeling voor P_raw(f) chi-kwadraat benadert
met twee vrijheidsgraden. Dat reduceert tot een exponentiële verdeling, en de variantie
van de schatting van P_raw is evenredig met het kwadraat van het gemiddelde, dat wil zeggen, de verwachte
waarde van P_raw.
In de praktijk als we P_raw vormen, zijn de schattingen hopeloos luidruchtig. Dus P_raw is niet
nuttig, en we moeten een soort van afvlakking of middeling doen om een bruikbare schatting te krijgen,
P_nuttig(f).
In de literatuur zijn er verschillende manieren om dit te doen. Een daarvan is om P_raw te vormen en
strijk het dan glad. Een andere is het vormen van de auto-covariantiefunctie van x(t), smooth, taper en
vorm het, en neem dan de Fourier-transformatie van de afgevlakte, taps toelopende en gevormde
auto-covariantie. Een andere is het vormen van een parametrisch model voor de autocorrelatiestructuur
in x(t), bereken dan het spectrum van dat model. Deze laatste benadering is wat wordt gedaan in
wat de "maximale entropie" of "Berg" of "Box-Jenkins" of "ARMA" of "ARIMA" wordt genoemd
werkwijzen.
De methode van Welch is een beproefde methode. Bij zijn methode kies je een segmentlengte,
-SN, zodat schattingen worden gemaakt op basis van lengtesegmenten N. De frequentiesamples (in
cycles per delta_t unit) van je P_useful zal dan op . zijn k /(N * delta_t), waar k is een
geheel getal, en je krijgt N samples (aangezien het spectrum een even functie is van f, enkel en alleen N/2
van hen zijn echt nuttig). Als de lengte van uw gehele dataset, x(t), is M monsters
lang, dan zal de variantie in uw P_useful afnemen in verhouding tot N / M. Dus je moet
kiezen N << M om zeer weinig ruis en veel vertrouwen in P_nuttig te krijgen. Er is een
afweging hier; zie onder.
Er is een extra reductie in variantie doordat Welch's methode gebruik maakt van een Von Hann
spectraal venster op elk monster van lengte N. Dit vermindert lekkage van de zijkwab en heeft de
effect van het gladstrijken van de (N segment) periodogram alsof de X(f) is geconvolueerd met
[1/4, 1/2, 1/4] voordat P_nuttig wordt gevormd. Maar dit vergroot de spectrale bandbreedte enigszins
van elke schatting, omdat de schatting bij frequentiesteekproef k is nu een beetje gecorreleerd
met de schatting bij frequentiemonster k+1. (Dit zou natuurlijk ook gebeuren als je gewoon
vormde P_raw en maakte het vervolgens glad.)
Ten slotte maakt de methode van Welch ook gebruik van overlappende verwerking. Aangezien het Von Hann-venster is
groot in het midden en loopt taps toe tot bijna nul aan de uiteinden, alleen het midden van het segment van
lengte N draagt veel bij aan zijn schatting. Daarom, bij het nemen van het volgende gegevenssegment,
we gaan alleen verder in de x(t)-reeks N/2 punten. Op deze manier krijgt het volgende segment
groot gewicht waarbij de segmenten aan weerszijden weinig gewicht krijgen, en vice
omgekeerd. Dit verdubbelt het gladmakende effect en zorgt ervoor dat (als N << M) bijna elk punt
in x(t) draagt met bijna hetzelfde gewicht bij aan het uiteindelijke antwoord.
Welch's methode van spectrale schatting is op grote schaal gebruikt en uitgebreid bestudeerd. Het is erg
betrouwbaar en de statistische eigenschappen ervan worden goed begrepen. Het wordt ten zeerste aanbevolen in
leerboeken als "Random Data: Analysis and Measurement Procedures" van Bendat en
Piersol.
Bij alle problemen met het schatten van parameters uit gegevens, is er een klassieke afweging tussen:
resolutie en variantie. Als u meer resolutie uit uw gegevens wilt halen
ingesteld, dan moet je bereid zijn meer ruis in de schattingen te accepteren. Dezelfde afweging
is hier duidelijk in de methode van Welch. Als u een zeer lage ruis in de spectra wilt hebben
schattingen, dan moet je kiezen N << M, en dit betekent dat je alleen N monsters van
het spectrum, en de langste periode die je kunt oplossen is alleen N * delta_t. Dus je ziet
dat het verminderen van de ruis het aantal spectrale monsters verlaagt en het langst verlaagt
punt uit. Omgekeerd, als u ervoor kiest: N naderen M, dan nadert u het periodogram met
zijn zeer slechte statistische eigenschappen, maar je krijgt veel steekproeven en een grote fundamentele
periode.
De andere spectrale schattingsmethoden kunnen ook goed werk leveren. Welch's methode werd gekozen
omdat de manier waarop het werkt, hoe men het kan coderen en de effecten ervan op de statistieken
distributies, resolutie, zijloblekkage, bias, variantie, etc. zijn allemaal gemakkelijk
begrepen. Sommige van de andere methoden (bijv. Maximale entropie) hebben de neiging om te verbergen waar sommige van
deze afwegingen vinden plaats in een "zwarte doos".
Gebruik spectrum1dgmt online met onworks.net-services