# Insticksprogram, anpassningar och filter

## Hantera insticksprogram

Insticksprogram tillhandahåller tillägg till &kst;s funktioner. Normalt levereras &kst; med ett omfattande urval av inbyggda insticksprogram. Dessutom tillåter ett enkelt programmeringsgränssnitt för insticksprogram att lätt skapa insticksprogram från tredje part.

Insticksprogram i &kst; består oftast av en objekt- och en .desktop-fil. För insticksprogram tillgängliga i hela systemet ska objekt- och .desktop-filerna lagras i `/usr/lib/kde3/` och `/usr/share/services/kst` (det kan dock variera beroende på hur systemet är inställt).

## Inbyggda insticksprogram

### Översikt

Insticksprogram i Kst är kraftfulla verktyg som kan utföra en mängd uppgifter, som dataanpassning, interpolering, statistik och signalbehandling, inklusive periodogram, korrelering, faltning, filter, etc. För närvarande finns det fler än 25 inbyggda insticksprogram tillgängliga i &kst;.

### Använda inbyggda insticksprogram

Alla insticksprogram kan skapas med Data Nytt insticksprogram... eller från datahanteringen, och alla dataobjekt som resulterar från insticksprogram kan ses i datahanteringen.

För att snabbt använda insticksprogram för anpassning och filtrering av en datamängd, kan du högerklicka på datadiagrammet i alla muslägen, och välja undermenyn Anpassa eller Filtrera i den sammanhangsberoende menyn som visas.

Följande avsnitt beskriver syftet, nyckelalgoritmer eller formler som används för att utföra beräkningar, och indata och utdata för varje insticksprogram.

## Insticksprogram för anpassning

Kst tillhandahåller många algoritmer för att utföra dataanpassning. Alla insticksprogram för anpassning ger en vektor med bäst anpassade parametrar, kovarianser, och χ²/ν. Dessa värden visas i dialogrutan Visa anpassningsresultat från menyn Data.

### Anpassning av alla icke-linjära funktioner

Insticksprogrammet används för att anpassa en datamängd till en minsta-kvadratkurva med användning av Levenberg-Marquardts algoritm.

Icke-linjär anpassning
Icke-linjär anpassning

#### Indata

X-fält: (vektor)

  Indatamängdens X-fält

Y-fält: (vektor)

  Indatamängdens Y-fält

Formel y=: (sträng)

  Formeln för kurvan som används för anpassning av datamängden

  Standardsträngen är `a*x^3 + b*x^2 - c*x +d`

Parametrar (sträng)

  Använd en sträng för att ange parametrarna som representerar bokstäver i anpassningsformeln. Insticksprogrammet ger därefter anpassade värden för dessa parametrar som resultat.

  Standardsträngen är `a, b, c, d`, vilket motsvarar standardformelns sträng.

Initialvärden: (sträng)

  Använd en sträng för att ange en initial gissning

  Standardsträngen är `1, 1, 1, 1`

Tolerans (skalär)

  Tolerans är ett tal som ange anpassningens noggrannhet. När noggrannheten når toleransvärdet stoppar kurvanpassningen.

  Standardtoleransen är `1e-4`.

Max iterationer (skalär)

  Ange maximalt antal iterationer för att ange när kurvanpassningen ska stoppa.

  Standardantalet maximala iterationer är `2`.

#### Utdata

Y-anpassad: (vektor)

  Y-värden för den anpassade kurvan

Rester: (vektor)

  Fältet med rester

Parametrar: (vektor)

  De bäst anpassade värdena för modellparametrarna du angav som indata.

Kovarians: (vektor)

  Kovariansmatrisen för modellparametrarna, som returneras rad för rad i vektorn.

χ²/ν: (skalär)

  Summan av kvadraterna av resterna, dividerat med frihetsgraderna

### Viktad exponentiell anpassning

Insticksprogrammet Viktad exponentiell anpassning utför en viktad minsta kvadrat anpassning till en exponentiell modell:

Den ursprungliga uppskattningen `a=1,0`, `=0`, och `b=0` används. Därefter utför insticksprogrammet iterationer mot lösningen till en noggrannhet på `1,0e-4` har uppnåtts eller 500 iterationer har utförts.

Insticksprogram - Viktad exponentiell anpassning

#### Indata

X-fält (vektor)

  Fältet med X-värden för datapunkterna som ska anpassas.

Y-fält (vektor)

  Fältet med Y-värden för datapunkterna som ska anpassas.

Vikt-fält (vektor)

  Fältet med vikter att använda för anpassningen.

#### Utdata

Y-anpassad: (vektor)

  Fältet med anpassade Y-värden.

Rester (vektor)

  Fältet med rester.

Parametrar (vektor)

  Parametrarna för bästa anpassning `a`, , och `b`.

Kovarians: (vektor)

  Kovariansmatrisen för modellparametrarna, som returneras rad för rad i vektorn.

χ²/ν: (skalär)

  Viktade summan av kvadraterna av resterna, dividerat med frihetsgraderna.

### Exponentiell anpassning

Insticksprogrammet Exponentiell anpassning har identisk funktion som insticksprogrammet Viktad exponentiell anpassning, med undantaget att viktningsvärdet `wi` är lika med `1` för alla indexvärden `i`. Som ett resultat, finns inte indatavärdet Vikter (vektor).

### Viktad gaussisk anpassning

Insticksprogrammet Viktad gaussisk anpassning utför en viktad icke-linjär minsta kvadrat anpassning till en Gaussisk modell:

Den ursprungliga uppskattningen `a=`(maximum av Y-värdena), `=`(medelvärde av X-värdena), och `=`(mittpunkten för X-värdena) används. Därefter utför insticksprogrammet iterationer mot lösningen till en noggrannhet på `1,0e-4` har uppnåtts eller 500 iterationer har utförts.

Insticksprogram - Gaussisk anpassning

#### Indata

X-fält (vektor)

  Fältet med X-värden för datapunkterna som ska anpassas.

Y-fält (vektor)

  Fältet med Y-värden för datapunkterna som ska anpassas.

Vikt-fält (vektor)

  Fältet med vikter att använda för anpassningen.

#### Utdata

Y-anpassad (vektor)

  Fältet med anpassade Y-värden.

Rester (vektor)

  Fältet med rester.

Parametrar (vektor)

  Parametrarna för bästa anpassning , , och `a`.

Kovarians (vektor)

  Kovariansmatrisen för modellparametrarna, som returneras rad för rad i vektorn.

χ²/ν (skalär)

  Viktade summan av kvadraterna av resterna, dividerat med frihetsgraderna.

### Gaussisk anpassning

Insticksprogrammet Gaussisk anpassning har identisk funktion som insticksprogrammet Viktad gaussisk anpassning, med undantaget att viktningsvärdet `wi` är lika med `1` för alla indexvärden `i`. Som ett resultat, finns inte indatavärdet Vikter (vektor).

### Viktad gradientanpassning

Insticksprogrammet Viktad gradientanpassning utför en viktad minsta kvadrat anpassning till en modell med rät linje utan en konstantterm:

Den bästa anpassningen hittas genom att minimera viktade summan av kvadratiska rester:

för `b`, där `wi` är vikten för index `i`.

Insticksprogram - Gradientanpassning

#### Indata

X-fält (vektor)

  Fältet med X-värden för datapunkterna som ska anpassas.

Y-fält (vektor)

  Fältet med Y-värden för datapunkterna som ska anpassas.

Vikt-fält (vektor)

  Fältet med vikter som ska användas vid anpassningen.

#### Utdata

Y-anpassad (vektor)

  Fältet med Y-värden för punkterna som representerar linjen med bäst anpassning.

Rester (vektor)

  Fältet med rester, eller skillnader mellan Y-värden för linjen med bäst anpassning och Y-värden för datapunkterna.

Parametrar (vektor)

  Parametern `b` för den bästa anpassningen.

Kovarians (vektor)

  Den uppskattade kovariansmatrisen, returnerad rad för rad, med början på rad 0.

Y-låg (vektor)

  Motsvarande värden i Y-anpassad minus standardavvikelsen för funktionen med bästa anpassning vid motsvarande X-värde.

Y-hög (vektor)

  Motsvarande värden i Y-anpassad plus standardavvikelsen för funktionen med bästa anpassning vid motsvarande X-värde.

χ²/ν (skalär)

  Värdet på summan av kvadraterna för resterna, dividerat med frihetsgraderna.

### Gradientanpassning

Insticksprogrammet Gradientanpassning har identisk funktion som insticksprogrammet Viktad gradientanpassning, med undantaget att viktningsvärdet `wi` är lika med `1` för alla indexvärden `i`. Som ett resultat, finns inte indatavärdet Vikter (vektor).

### Viktad linjäranpassning

Insticksprogrammet Viktad linjäranpassning utför en viktad minsta kvadrat anpassning till en modell med rät linje.

Den bästa anpassningen hittas genom att minimera viktade summan av kvadratiska rester:

för `a` och `b`, där `wi` är vikten för indexet `i`.

Insticksprogram - Linjäranpassning

#### Indata

X-fält (vektor)

  Fältet med X-värden för datapunkterna som ska anpassas.

Y-fält (vektor)

  Fältet med Y-värden för datapunkterna som ska anpassas.

Vikt-fält (vektor)

  Fältet med vikter som ska användas vid anpassningen.

#### Utdata

Y-anpassad (vektor)

  Fältet med Y-värden för punkterna som representerar linjen med bäst anpassning.

Rester (vektor)

  Fältet med rester, eller skillnader mellan Y-värden för linjen med bäst anpassning och Y-värden för datapunkterna.

Parametrar (vektor)

  Parametrarna `a` och `b` för den bästa anpassningen.

Kovarians (vektor)

  Den uppskattade kovariansmatrisen, returnerad rad för rad, med början på rad 0.

Y-låg (vektor)

  Motsvarande värden i Y-anpassad minus standardavvikelsen för funktionen med bästa anpassning vid motsvarande X-värde.

Y-hög (vektor)

  Motsvarande värden i Y-anpassad plus standardavvikelsen för funktionen med bästa anpassning vid motsvarande X-värde.

χ²/ν (skalär)

  Värdet på summan av kvadraterna för resterna, dividerat med frihetsgraderna.

### Linjäranpassning

Insticksprogrammet Linjäranpassning har identisk funktion som insticksprogrammet Viktad linjäranpassning, med undantaget att viktningsvärdet `wi` är lika med `1` för alla indexvärden `i`. Som ett resultat, finns inte indatavärdet Vikter (vektor).

### Viktad Lorentz-anpassning

Insticksprogrammet Viktad Lorentz-anpassning utför en viktad icke-linjär minsta kvadrat anpassning till en Lorentz-modell:

Den ursprungliga uppskattningen `a=`(maximum av Y-värdena), `x0=`(medelvärde av X-värdena), och `=`(mittpunkten för X-värdena) används. Därefter utför insticksprogrammet iterationer mot lösningen till en noggrannhet på `1,0e-4` har uppnåtts eller 500 iterationer har utförts.

Insticksprogram - Lorentz-anpassning

#### Indata

X-fält (vektor)

  Fältet med X-värden för datapunkterna som ska anpassas.

Y-fält (vektor)

  Fältet med Y-värden för datapunkterna som ska anpassas.

Vikt-fält (vektor)

  Fältet med vikter att använda för anpassningen.

#### Utdata

Y-anpassad (vektor)

  Fältet med anpassade Y-värden.

Rester (vektor)

  Fältet med rester.

Parametrar (vektor)

  Parametrarna för bästa anpassning `x0`, , och `a`.

Kovarians (vektor)

  Kovariansmatrisen för modellparametrarna, som returneras rad för rad i vektorn.

χ²/ν (skalär)

  Viktade summan av kvadraterna av resterna, dividerat med frihetsgraderna.

### Lorentz-anpassning

Insticksprogrammet Lorentz-anpassning har identisk funktion som insticksprogrammet Viktad Lorentz-anpassning, med undantaget att viktningsvärdet `wi` är lika med `1` för alla indexvärden `i`. Som ett resultat, finns inte indatavärdet Vikter (vektor).

### Viktad polynomanpassning

Insticksprogrammet Viktad polynomanpassning utför en viktad minsta kvadrat anpassning till en polynommodell:

där `n` är polynommodellens ordning.

Insticksprogram - Polynomanpassning

#### Indata

X-fält (vektor)

  Fältet med X-värden för datapunkterna som ska anpassas.

Y-fält (vektor)

  Fältet med Y-värden för datapunkterna som ska anpassas.

Vikt-fält (vektor)

  Fältet med vikter att använda för anpassningen.

Ordning (skalär)

  Ordningen, eller graden, på polynommodellen som ska användas.

#### Utdata

Y-anpassad (vektor)

  Fältet med anpassade Y-värden.

Rester (vektor)

  Fältet med rester.

Parametrar (vektor)

  Parametrarna för bästa anpassning `c0`, `c1`,..., `cn`.

Kovarians (vektor)

  Kovariansmatrisen för modellparametrarna, som returneras rad för rad i vektorn.

χ²/ν (skalär)

  Viktade summan av kvadraterna av resterna, dividerat med frihetsgraderna.

### Polynomanpassning

Insticksprogrammet Polynomanpassning har identisk funktion som insticksprogrammet Viktad polynomanpassning, med undantaget att viktningsvärdet `wi` är lika med `1` för alla indexvärden `i`. Som ett resultat, finns inte indatavärdet Vikter (vektor).

### Viktad sinusformad anpassning

Insticksprogrammet Viktad sinusformad anpassning utför en viktad minsta kvadrat anpassning till en sinusformad modell:

där `T` är angiven period, och `n=2+2H`, där `H` är angivet antal övertoner.

Insticksprogram - Sinusformad anpassning

#### Indata

X-fält (vektor)

  Fältet med X-värden för datapunkterna som ska anpassas.

Y-fält (vektor)

  Fältet med Y-värden för datapunkterna som ska anpassas.

Vikt-fält (vektor)

  Fältet med vikter att använda för anpassningen.

Övertoner (skalär)

  Antal övertoner i sinusformen som ska anpassas.

Period (skalär)

  Perioden för sinusformen som ska anpassas.

#### Utdata

Y-anpassad (vektor)

  Fältet med anpassade Y-värden.

Rester (vektor)

  Fältet med rester.

Parametrar (vektor)

  Parametrarna för bästa anpassning `c0`, `c1`,..., `cn`.

Kovarians (vektor)

  Kovariansmatrisen för modellparametrarna, som returneras rad för rad i vektorn.

χ²/ν (skalär)

  Viktade summan av kvadraterna av resterna, dividerat med frihetsgraderna.

### Sinusformad anpassning

Insticksprogrammet Sinusformad anpassning har identisk funktion som insticksprogrammet Viktad sinusformad anpassning, med undantaget att viktningsvärdet `wi` är lika med `1` för alla indexvärden `i`. Som ett resultat, finns inte indatavärdet Vikter (vektor).

## Insticksprogram för interpolering

Interpolering är ett sätt att skapa nya datapunkter i en datamängd. Alla insticksprogram för interpolering i Kst använder två vektorer, x och y, och önskade värden x'. De bestämmer därefter interpoleringsfunktionerna som passar in på x och y, och utvärderar funktioner för att få motsvarande värden av y' (interpolerad y) för varje värde i x'.

### Akima-splineinterpolering

Insticksprogrammet Akima-splineinterpolering skapar en icke-avrundad Akima-splineinterpolering för datamängden som tillhandahålls, med naturliga gränsvillkor.

Insticksprogram - Akima-splineinterpolering

#### Indata

X-fält (vektor)

  Insticksprogram - Redigera differential med fast stegFältet med X-värden för datapunkterna som interpoleringen ska skapas för.

Y-fält (vektor)

  Fältet med Y-värden för datapunkterna som interpoleringen ska skapas för.

X'-fält (vektor)

  Fältet med X-värden där interpolerade Y-värden önskas.

#### Utdata

Y-interpolerat (vektor)

  De interpolerade Y-värdena.

### Periodisk Akima-splineinterpolering

Insticksprogrammet Periodisk Akima-splineinterpolering skapar en icke-avrundad Akima-splineinterpolering för datamängden som tillhandahålls, med periodiska gränsvillkor. Indata och utdataalternativen är samma som de i Akima-splineinterpolering.

### Kubisk splineinterpolering

Differential (vektor)Insticksprogrammet Kubisk splineinterpolering skapar en kubisk splineinterpolering för datamängden som tillhandahålls, med naturliga gränsvillkor. Indata och utdataalternativen är samma som de i Akima-splineinterpolering.

### Periodisk kubisk splineinterpolering

Insticksprogrammet ger differentialvärden för varje tidssteg som resultat.Insticksprogrammet Periodisk kubisk splineinterpolering skapar en kubisk splineinterpolering för datamängden som tillhandahålls, med periodiska gränsvillkor. Indata och utdataalternativen är samma som de i Akima-splineinterpolering.

### Linjärinterpolering

Insticksprogrammet Polynominterpolering skapar en polynominterpolering för datamängden som tillhandahålls. Antal termer i polynomet som används är lika med antal punkter i datamängden som tillhandahålls. Indata och utdataalternativen är samma som de i Akima-splineinterpolering.

### Polynominterpolering

Insticksprogrammet Polynominterpolering skapar en polynominterpolering för datamängden som tillhandahålls. Antal termer i polynomet som används är lika med antal punkter i datamängden som tillhandahålls. Indata och utdataalternativen är samma som de i Akima-splineinterpolering.

## Insticksprogram för filtrering

Kst har mängder av inbyggda filter.

### Generellt filter

Insticksprogrammet filtrerar en datamängd genom att använda en bilinjär transformeringsformel.

#### Indata

Y (vektor)

  Fältet med värden att filtrera

Samplingsintervall (s) (skalär)

  Tidsperioder för sampling av indatavektorn, invers av samplingsfrekvens

Täljare och Nämnare (ökande ordning) (sträng)

  En sträng av tal åtskilda med kommatecken för att ange polynomkoefficienter som täljare och nämnare i transformeringsformeln. Om du till exempel har polynomet 2*z^2 + 3*z + 5, ska du ange strängen 2,3,5. Klicka på ikonen Skapa sträng för att skapa en sträng med värdet 2,3,5.

#### Utdata

Filtrerad (vektor)

  Ett fält med filtrerad data

### Bandpassfilter

Insticksprogrammet Butterworth bandpassfilter filtrerar en datamängd genom att beräkna Fouriertransformen av data och skala spektralamplituderna genom att använda följande funktion, G(f):

Bandpassformel

där `f` är frekvensen, `fc` är centrumfrekvensen att filtrera omkring, `b` är bandbredden för passbandet, och `n` är Butterworthfiltrets ordning. Den inversa Fouriertransformen beräknas därefter med de skalade spektralamplituderna för att skapa en filtrerad datamängd.

Insticksprogram - Bandpassfilter

#### Indata

Y (vektor)

  Fältet med värden att filtrera.

Ordning (skalär)

  Ordningen för Butterworth filtret som ska användas.

Centrumfrekvens, samplingsfrekvens (skalär)

  Frekvensen att filtrera omkring.

Bandbredd (skalär)

  Bredden på bandpassområdet. Det ska vara skillnaden mellan önskad hög skärningsfrekvens och låg skärningsfrekvens.

#### Utdata

Filtrerad (vektor)

  Fältet med filtrerade datavärden.

### Bandstoppfilter

Insticksprogrammet Butterworth bandstoppfilter tar bort signaler i ett givet frekvensområde från en datavektor. Alternativen är samma som de i bandpassfiltret, utom att skalningsfunktionen G(f) som används nu anges av:

Bandstoppformel

### Högpassfilter

Insticksprogrammet Butterworth högpassfilter tar bort signaler under en given skärningsfrekvens från en datavektor. Det gör det genom att beräkna Fouriertransformen av data och skala om spektralamplituderna med följande funktione, G(f):

Högpassformel

där `f` är frekvensen, `fc` är högfrekventa skärningspunkten, och `n` är Butterworthfiltrets ordning. Den inversa Fouriertransformen beräknas därefter med de nya filtrerade frekvenssvaren.

Insticksprogram - Högpass

#### Indata

Y (vektor)

  Fältet med värden att filtrera.

Ordning (skalär)

  Ordningen för Butterworth filtret som ska användas.

Skärningsfrekvens, samplingsfrekvens (skalär)

  Skärningsfrekvensen (`fc`).

#### Utdata

Filtrerad (vektor)

  Fältet med filtrerade datavärden.

### Lågpassfilter

Insticksprogrammet Butterworth lågpassfilter tar bort signaler ovanför en given skärningsfrekvens från en datavektor. Alternativen är samma som de i högpassfiltret, utom att skalningsfunktionen G(f) som används nu anges av:

Formel för automatisk korrelering

### Toppborttagningsfilter

Insticksprogrammet används för att hitta och ta bort toppar i en datamängd.

Insticksprogram - Redigera toppborttagningsfilter

#### Indata

Indatavektor Y

  Välj datavektorn som behöver utjämnas.

Indataskalär - Spacing:

  Anger topparnas bredd.

Indataskalär - NSigma:

  Om värdet hos en datapunkt varierar från angränsande datapunkter med mer än NSigma gånger, räknas den som en topp.

#### Utdata

Utdatavektor - Despiked

  Insticksprogrammet ger som utdata en utjämnad datamängd med alla angivna toppar borttagna,

## Insticksprogram för signalbehandling

Kst tillhandahåller diverse insticksprogram för att hjälpa dig att enkelt behandla signaler.

### Automatisk korrelering

Insticksprogrammet Automatisk korrelering beräknar korrelationsvärden mellan en serie (vektor), och en fördröjd version av sig själv, med användning av fördröjningsvärden från `floor(-(N-1)/2)` till `floor((N-1)/2)`, där `N` är antal punkter i datamängden. Tidsvektorn är inte indata eftersom det antas att data samplas med lika tidsintervall. Korrelationsvärdet `r` vid fördröjningen `k` är:

Formel för automatisk korrelering

Insticksprogram - Automatisk korrelering

#### Indata

X-fält (vektor)

  Fältet `x` med värden som korrelationsvärden ska beräknas för.

#### Utdata

Stegnummer (vektor)

  Fältet med steg, eller fördröjningsvärden.

Korrelationsvärde (vektor)

  Fältet med korrelationsvärden beräknade med motsvarande stegnummer i stegnummervektorn.

### Korskorrelering

Insticksprogrammet Korskorrelering beräknar korrelationsvärden mellan två serier (vektorer) `x` och `y`, med användning av fördröjningsvärden från `floor(-(N-1)/2)` till `floor((N-1)/2)`, där `N` är antal element i den längsta vektorn. Den kortare vektorn fylls ut med `0` till den längre vektorns längd. Tidsvektorn är inte indata eftersom det antas att data samplas med lika tidsintervall. Korrelationsvärdet `r` vid fördröjningen `k` är:

Formel för korskorrelering

Insticksprogram - Korskorrelering

#### Indata

Fält ett (vektor)

  Fältet `x` som används i formeln för korskorrelering.

Fält två (vektor)

  Fältet `y` som används i formeln för korskorrelering.

#### Utdata

Stegvärde (vektor)

  Fältet med steg, eller fördröjningsvärden.

Korrelationsvärde (vektor)

  Fältet med korrelationsvärden beräknade med motsvarande stegnummer i stegvärdesvektorn.

### Korseffektspektrum

Insticksprogrammet Korseffektspektrum använder två vektorer och beräknar FFT av deras korskorrelation.

Insticksprogram - Korseffektspektrum

#### Indata

Vektor ett och två

  De två vektorerna som används för att beräkna korseffektspektrum

FFT-längd = 2^

  Se FFT-alternativ för Spektrum

Samplingsfrekvens

  Se FFT-alternativ för Spektrum

#### Utdata

Korsspektrum: Real (vektor)

  Realdelen av det beräknade korseffektspektrat.

Korsspektrum: Imaginär (vektor)

  Imaginärdelen av det beräknade korseffektspektrat.

Frekvens (vektor)

  Frekvensvektorn för korseffektspektrats utdata.

### Faltning

Insticksprogrammet Faltning skapar faltningen av en vektor med en annan. Faltningen av två funktioner `f` och `g` ges av:

Vektorernas ordning spelar ingen roll, eftersom `f*g=g*f`. Dessutom behöver inte vektorerna vara av samma storlek, eftersom insticksprogrammet automatiskt interpolerar den kortaste vektorn till den större längden.

Insticksprogram - Faltning

#### Indata

Fält ett (vektor)

  Ett av paret med fält som ska användas för faltningen.

Fält två (vektor)

  Ett av paret med fält som ska användas för faltningen.

#### Utdata

Faltad (vektor)

  Faltningen av de två indatavektorerna.

### Avfaltning

Insticksprogrammet Avfaltning skapar avfaltningen av en vektor med en annan. Avfaltning är inversen av faltning. Givet den faltade vektorn `h` och en annan vektor `g`, ges avfaltningen `f` av:

Vektorerna behöver inte vara av samma storlek, eftersom insticksprogrammet automatiskt extrapolerar den kortare vektorn. Den kortare vektorn antas vara svarsfunktionen `g`.

Insticksprogram - Avfaltning

#### Indata

Fält ett (vektor)

  Ett av paret med fält som ska användas för avfaltningen.

Fält två (vektor)

  Ett av paret med fält som ska användas för avfaltningen.

#### Utdata

Avfaltning (vektor)

  Avfaltningen av de två indatavektorerna.

### Periodogram

Insticksprogrammet Periodogram skapar ett periodogram av en given datamängd. Ett periodogram är en uppskattning av en signals spektraltäthet.

Insticksprogram - Periodogram

#### Indata

Tidsfält (vektor)

  Fältet med tidsvärden för datapunkterna som interpoleringen ska skapas för.

Datafält (vektor)

  Fältet med datavärden, beroende på tidsvärdena, för datapunkterna som interpoleringen ska skapas för.

Översamplingsfaktor (skalär)

  Faktorn att översampla med.

Medelfaktor för Nyquist-frekvens (skalär)

  Medelfaktor för Nyquist-frekvens.

#### Utdata

Frekvens (vektor)

  Frekvensvektorn.

Periodogram (vektor)

  Vektorn med frekvenssvar för periodogrammet.

### Fas

Insticksprogrammet beräknar fasvärdet för varje datapunkt i en tidserie med indata.

Insticksprogram - Redigera fas

#### Indata

Indatavektor

  Vektorn att skifta

Förskjutningsvärde (antal punkter, negativt tillåts)

  Ange enheter att förskjuta. Positiva förskjutningsvärden ger förskjutning åt höger eller framåt. Negativa förskjutningsvärden ger förskjutning åt vänster eller bakåt.

#### Utdata

Förskjuten vektor

  Utmatning av den ursprungliga vektorn efter förskjutning med enheterna som anges ovan.

### Fas

Insticksprogrammet beräknar fasvärdet för varje datapunkt i en tidserie med indata.

Insticksprogram - Redigera fas

#### Indata

Tidfält (vektor)

  Ett fält med tidvärden

Indatafält (vektor)

  Indatamängd som motsvarar tidfältet

Period (skalär)

  Ställer in tidseriens period.

Nollfas (skalär)

  Ställer in tiden för nollfasen.

#### Utdata

Fasfält (vektor)

  Ett fält med fasvärden som motsvarar indatavärden.

Utdatafält (vektor)

  Utmatning av ursprunglig datamängd med värden sorterade enligt fasfältet.

### Dela

FörskjutInsticksprogrammet Dela tar en indatavektor och delar upp den i två vektorer. Vartannat element i indatavektorn placeras i en utdatavektor, medan alla andra element i indatavektorn placeras i en annan utdatavektor.

Insticksprogram - Dela

#### Indata

Fält (vektor)

  Fältet med värden som ska delas.

#### Utdata

Udda fält (vektor)

  Fältet som innehåller den udda delen av indatafältet (dvs. det innehåller det första elementet i indatafältet).

Jämnt fält (vektor)

  Vektorn vars diagram behöver förskjutasFältet som innehåller den jämna delen av indatafältet (dvs. det innehåller inte det första elementet i indatafältet).

Skillnadsfält (vektor)

  Förskjutningsvärde (antal punkter, negativt tillåts)Fältet som innehåller elementen från det udda fältet minus respektive element i det jämna fältet.

Indexfält (vektor)

  Ett indexfält med samma längd som de tre övriga utdatafälten.

### Tillägg av brus

Insticksprogrammet Tillägg av brus lägger till en Gaussisk slumpvariabel till varje element i indatavektorn. Gauss-distributionen som används har medelvärdet `0` och angiven standardavvikelse. Frekvensfunktionen för en Gaussisk slumpvariabel är:

Insticksprogram - Tillägg av brus

#### Indata

Fält (vektor)

  Fältet med element där slumpmässigt brus ska läggas till.

Sigma (skalär)

  Standardavvikelsen som ska användas för Gauss-fördelningen.

#### Utdata

Utdatafält (vektor)

  Fältet med element där Gaussiskt brus har lagts till.

### Område

Insticksprogrammet Område delar upp element i en enstaka datavektor i områden av angiven storlek. Värdet för varje område är medelvärdet för elementen som tillhör området. Om områdesstorleken till exempel är `3`, och indatavektorn är `[9,2,7,3,4,74,5,322,444,2,1]`, blir områden i utdata `[6,27,257]`. Observera att eventuella element som finns kvar i slutet på indatavektorn som inte skapar ett fullständigt område (i det här fallet elementen `2` och `1`), bortses helt enkelt ifrån.

Insticksprogram - Område

#### Indata

Indatavektor (vektor)

  Vektorn att dela upp i områden.

Områdesstorlek (skalär)

  Storleken (antal element) att använda för varje område.

#### Utdata

Områden (vektor)

  Fältet med medelvärden för varje område.

### Synkrona områden

Insticksprogrammet grupperar datapunkter i en angiven del av ett X-Y diagram i ett angivet antal områden.

Insticksprogram - Redigera synkrona områden

#### Indata

X-in (vektor)

  X-värden för en mängd datapunkter

Y-in (vektor)

  Y-värden för en mängd datapunkter

Antal områden (skalär)

  Anger antalet områden som används för att gruppera datapunkterna

X min, X max (skalär)

  Anger minimala och maximala X-värden för en mängd datapunkter för att ange intervallet av datapunkter som ska indelas i områden.

#### Utdata

X-ut (vektor)

  X-värden efter indelning i områden. Vektorn X-ut består av medianvärdet av X-element i varje område.

Y-ut (vektor)

  Y-värden efter indelning i områden. Vektorn Y-ut består av medelvärdet av Y-element i varje område.

Y-fel (vektor)

  Vektorn består av Y-värdenas standardavvikelse i varje område.

N (vektor)

  N-vektorn består av antalet datapunkter i varje område.

## Insticksprogram för matematisk kalkyl

Förskjuten vektor

### Kumulativ summa (integral)

Utmatning av den ursprungliga vektorn efter förskjutning med enheterna som anges ovan.

#### Indata

Indatavektor

  Vektorn som används för att beräkna den kumulativa summan.

Skalningsfaktor (tidssteg) (skalär)

  Intervallstorleken för varje steg av den kumulativa summans beräkning

#### Utdata

Kumulativ summa (vektor)

  Fältet lagrar värden av den kumulativa summan för varje steg.

### Differential med fast steg

Insticksprogrammet beräknar differentialvärden med avseende på tid för en indatavektor. När tidssteget blir mindre, når utdatavektorn värdet av dx/dt, där x är indatavektorn.

Insticksprogram - Redigera differential med fast steg

#### Indata

Indatavektor

  Datavektorn vars differential ska räknas ut

Tidsteg (skalär)

  Ange tidsstegets storlek mellan två angränsande värden i indatavektorn.

#### Utdata

Differential (vektor)

  Insticksprogrammet ger differentialvärden för varje tidsteg som resultat.

### Områdesavbildning

Områdesavbildning kan skapa ytkonturdiagram av en funktion med två variabler.

Insticksprogram - Områdesavbildning

#### Inställningar

X,Y,Z (vektor)

  X- och Y-vektor används för att ange värden för de två oberoende variablerna i funktionen, och Z-vektorn anger värden för den beroende variabeln.

X- och Y-områden

  Ange intervall av X- och Y-värden.

Antal X- och Y-områden

  Ange upplösning i antal rutor för områdesavbildningens resultat.

#### Utdata

Områdesavbildning

  Områdesavbildning är en matris vars värden kan användas för att skapa ytkonturdiagrammet av en Z-vektor.

Träffavbildning

  Träffavbildning är en matris vars värden bestäms av antal punkter i varje X/Y-område, och dess avbildning anger positioner där Z-värden har placerats i X/Y-planet.

## Insticksprogram för statistik

### Statistik

Insticksprogrammet Statistik beräknar statistik för en given datamängd förutom de som automatiskt beräknas av &kst;. De flesta utdataskalärerna är namngivna på så sätt att värdena de representerar bör vara uppenbara. Standardformler används för att beräkna de statistiska värdena.

Insticksprogram - Statistik

#### Indata

Datafält (vektor)

  Datafältet vars statistiska värden ska beräknas.

#### Utdata

Medelvärde (skalär)

  Medelvärdet av datavärdena.

Minimum (skalär)

  Minimala värdet som hittades i datafältet.

Maximum (skalär)

  Maximala värdet som hittades i datafältet.

Varians (skalär)

  Datamängdens varians.

Standardavvikelse (skalär)

  Datamängdens standardavvikelse.

Median (skalär)

  Datamängdens median.

Absolutavvikelse (skalär)

  Datamängdens absolutavvikelse.

Snedhet (skalär)

  Datamängdens skevhet.

Excess (skalär)

  Datamängdens excess.

## Använda insticksprogram via Kst-skript

### Översikt

Insticksprogram kan också skapas och redigeras via Kst-skript. Se information i klassen Plugin i skriptkapitlet.

Använd följande syntax för att skapa ett nytt insticksprogram:

    plugin = new Plugin(Kst.pluginManager.modules["Plugin Name"])
    // "Plugin Name" måste skrivas in på exakt samma sätt som visas under Skapa insticksprogram i Datahantering.

För att ange indatavärden till insticksprogrammet

    plugin.setInput(indataindex, indatavärden);

Du måste validera insticksprogrammet innan du kan få utdata från det. Använd följande metod för att validera insticksprogrammet:

    plugin.validate();

Utdatavärden lagras i Kst som en objektsamling. För att hämta utdata från insticksprogrammet måste du ange dess index:

    v = plugin.outputs[utdataindex];

För att veta index för indata och utdata, titta i ordningen som indata och utdata visas i dialogrutorna i insticksprogrammets användargränssnitt.

Nedan visas två exempel på användning av insticksprogram via Kst-skript

### Exempel

#### Kst-skript för statistikinsticksprogram

    p = new Plugin(Kst.pluginManager.modules["Statistics"]); // skapa ett nytt statistikinsticksprogram
    p.tagNmae = "Stat";                         // detta är insticksprogrammets namn i datahanteringen
    p.setInput(0, "x");                        // x är namnet på vektorn vars olika
                                               // statistikvärden behövs
    p.validate();                                 // validera insticksprogrammet
    s = new Scalar();
    s = p.outputs[0];                        // hämta första utdata från insticksprogrammet, dvs. medelvärdet av x
    s.value                                        // värdet av s skrivs ut på skärmen, t.ex. -4,12232621329268

#### Funktion i Kst-skript för att använda insticksprogram för interpolering

Alla insticksprogram för interpolering i Kst har samma indata och utdata. Därför, istället för att skiva en stor mängd liknande kod för att ange indata och hämta utdata för olika interpoleringsmetoder, kan vi skriva en funktion i Kst-skript som gör det.

Följande är en funktion i Kst-skript som behöver tre vektorer: x, y, ix, och en sträng som indata. Funktionen använder strängen för att ange ett insticksprogram för interpolering, och utför det angivna interpoleringsmetoden för x- och y-vektorerna för att få interpolerade y-värden för ix-vektorn. Därefter ritar funktionen upp y mot x, och interpolerad y mot ix.

    // intplFuction.js
    function intpl(x,y,ix,intpl)
    {
       // x är en vektor använd som X-fält i insticksprogram för interpolering
       // y är en vektor använd som Y-fält
       // ix är en vektor använd som X'-fält
       // intpl är en sträng använd för att ange namnet
       // på ett specifikt insticksprogram för interpolering, såsom "Interpolation akima spline".

      // skapa ett nytt insticksprogram för interpolering
     pl = new Plugin(Kst.pluginManager.modules[intpl]);
     pl.tagName = intpl+"plugin";

      // ange insticksprogrammets indata
     pl.setInput(0,x);
     pl.setInput(1,y);
     pl.setInput(2,ix);

     pl.validate(); // validera insticksprogrammet

    iy=pl.outputs[0]; // hämtar utdata från insticksprogrammet
    iy.tagName = "interpolerad_y"; // kalla det interpolerad_y i datahanteringen

    // öppna ett nytt fönster för att rita upp x mot y och ix mot interpolerad_y;
    w=new Window();
    p=new Plot(w);
    c1 = new Curve(x,y);
    c1.tagName = "y";
    c2 = new Curve(ix,iy);
    c2.tagName = "interpolated_y";
    p.curves.append(c1);
    p.curves.append(c2);
    p.xAxis.label = "X";
    p.yAxis.label = "Y";

    // redigera kurvornas inställningar, som linjestil, punktstil, etc.
    // för att göra det lättare att skilja de båda kurvorna åt
    c1.hasPoints = true;
    c1.pointStyle = 3;
    c1.lineStyle =1;
    c1.lineWidth = 2;
    c2.hasPoints = true;
    c2.pointStyle = 0;
    c2.lineWidth = 1;

    // lägg till en förklaring
    l = new Legend(w);
    l.fontSize=5;
    l.addCurve(c1);
    l.addCurve(c2);

    }

Låt oss titta på ett exempel av hur funktionen ovan används. Spara först skriptet ovan i en fil som heter `intplFunction.js` i din hemkatalog. Öppna därefter en ny textfil, och kopiera de följande raderna till den. Spara därefter filen som `intplTest.js` i din hemkatalog.

    // intplTest.js

    // skapa två vektorer, x och y, med y = sin(x) and x = {-10,-9,-8...0...8,9,10}
    x = new Vector();
    x.tagName = "x";
    y = new Vector();
    y.tagName = "y";
    x.resize(21);
    y.resize(21);
    var k=-10;
    for(var i=0; i<21;i++)
    { x[i]=k;
      y[i]=Math.sin(x[i]);
      k++;
    }

    // skapa vektorn ix: ix={-10,-9.75,-9.25,-9,...0...9,9.25,9,75,10}
    ix=new Vector();
    ix.tagName = "ix";
    ix.resize(81);
    var k=-10;
    for(var i=0; i<81 i++)
    {
      ix[i]=k;
      k = k+0.25;

    }

    // ladda skriptet med funktionen intpl
    loadScript('/home/vyiwen/intplFunction.js');

    // anropa funktionen intplintpl(x,y,ix,"Interpolation cubic spline");

Öppna Kst och ladda `intplTest.js` in java-terminalen så här: `loadScript('/home/vyiwen/intplTest.js');`

Efter att ha laddad skriptet, bör du se diagrammen nedan:

Exempel på interpolering
Exempel på interpolering