Friday 13 October 2017

Glidande Medelvärde Savitzky Golay


Denna klass innehåller metoder för utjämning av tvådimensionella data, dvs en yta, zfxy. Ett val av utjämningsmetod erbjuds. Savitzky-Golay filterutjämning. Smoothed data. Smoothed derivatives. Moving medelfönsterutjämning. Smoothed data. Klassen innehåller också metoder för. Interpolation Inom den jämnda data. See CurveSmooth för den endimensionella ekvivalenten av denna klass, dvs för kurvutjämning. Se ThreeDimensionalSmooth för den tredimensionella motsvarigheten till den här klassen. SAMMANFATTNING AV METODER. public SurfaceSmooth dubbel xData, dubbel yData, dubbel zData. public SurfaceSmooth double zData. public SurfaceSmooth dubbel xData, dubbel yData, Matrix zData. public SurfaceSmooth Matrix zData. public SurfaceSmooth float xData, float yData, float zData. public SurfaceSmooth float zData. public SurfaceSmooth lång xData, lång yData, lång zData. public SurfaceSmooth long zData. public SurfaceSmooth int xData, int yData, int zData. public SurfaceSmooth int zData. public SurfaceSmooth BigDecimal xData, Big Decimal yData, BigDecimal zData. public SurfaceSmooth BigDecimal zData. public SurfaceSmooth BigInteger xData, BigInteger yData, BigInteger zData. public dubbel plotMovingAverageY int xIndex. public SurfaceSmooth dubbel xData, dubbel yData, dubbel zData offentlig SurfaceSmooth dubbel xData, dubbel yData, Matrix zData public SurfaceSmooth Float xData, float yData, float zData allmänhet SurfaceSmooth long xData, lång yData, lång zData offentlig SurfaceSmooth int xData, int yData, int zData offentlig SurfaceSmooth BigDecimal xData, BigDecimal yData, BigDecimal zData offentlig SurfaceSmooth BigInteger xData, BigInteger yData, BigInteger zData Användning SurfaceSmooth ssm ny SurfaceSmooth xData, yData, zData Skapar en förekomst av SurfaceSmooth Dataen matas in som arrays av xy och z värdena, argument xData yData och zData för en yta, zfxy Data kan skrivas in som typ dubbel, flyt, lång, int , BigDecimal, BigInteger eller som någon lämplig datatyp via Matrix All data, förutom typer BigDecimal och BigInteger konverteras för att skriva dubbla innan bearbetningen BigInteger konverteras till BigDecimal. Flyttande genomsnittligt fönsterutjämning utförs i godtycklig precisionsräkning för BigDecimal och BigInteger-inmatad data. Savitzky-Golay-filtrering utförs i dubbel precisionsräkning för BigDecimal och BigInteger-inmatade data. Dataen är Beställt som stigande x och stigande y-värden före bearbetning. Bestämningen av data i matris z-argumentet zData ska vara as. where m är antalet x-värden i argumentet xData och n är antalet y-värden i argumentet yData dvs 2D array z argument zData ska dimensioneras som zData nm där n är antalet y yData värden och m är antalet x xData values. public SurfaceSmooth dubbla zData offentliga SurfaceSmooth Matrix zData offentliga SurfaceSmooth float zData offentliga SurfaceSmooth long zData offentliga SurfaceSmooth int zData offentliga SurfaceSmooth BigDecimal zData offentliga SurfaceSmooth BigInteger zData Användning SurfaceSmooth ssm new Su rfaceSmooth zData Skapar en förekomst av SurfaceSmooth Dataen matas in som en grupp av z-värden, argument zData för en yta, zfxy Eftersom inga x - eller y-värden matas in behandlas data som data samplas med lika x-värde och y-värdeintervall Värden av 0, 1, 2 till m -1 tilldelas mx-värdena Värdena på 0, 1, 2 till n -1 tilldelas nyvärdena. Data kan anges som typ dubbel, float, long, int, BigDecimal , BigInteger eller som någon lämplig datatyp via Matrix Alla data, utom typerna BigDecimal och BigInteger, konverteras för att skriva dubbla innan bearbetningen BigInteger konverteras till BigDecimal. Flyttande genomsnittligt fönsterutjämning utförs i godtycklig precisionsräkning för BigDecimal och BigInteger inmatade data Savitzky-Golay Filtrering utförs i dubbel precision aritmetik för BigDecimal och BigInteger inmatade data. SÖKNINGSMETODER. SAVITZKY-GOLAY FILTER METHODS. Savitzky-Golay Släta kurvor offentliga dubbla savitzkyGolay int sgFilterWidthx, int sgFilterWi Dthy offentliga dubbel savitzkyGolay int sgFilterWidth public double getsavitzkyGolaySmoothedValues ​​Användning smoothedData sgFilterWidthy Den här metoden returnerar de jämnde z-värdena för data som matas in via konstruktörargumenten med ett tvådimensionellt Savitzky-Golay-filter med bredd sgFilterWidthx-punkter i x-dimensionen och bredden sgFilterWidthy-punkter i y-dimensionen Standardvärdet för graden av passande polynom är 4 Detta värde kan återställas med metoden setSGpolyDeg. Använda smoothedData Denna metod returnerar de jämnde z-värdena för de data som matas in via konstruktörargumenten med en tvådimensionell Savitzky - Golay-filter med bredd sgFilterWidth-punkter i x-dimensionen och med samma bredd, sgFilterWidth-poäng i y-dimensionen Standardvärdet för graden av monteringspolynomet är 4 Detta värde kan återställas med setSGpolyDeg-metoden. Använda smoothedData Denna metod returnerar de jämna z-värdena om ovanstående Savitzky-Golay filtermetod redan är En kallad. Savitzky-Golay Slipade derivat offentliga dubbla savitzkyGolay int sgFilterWidthy, int sgFilterWidthy, int m, int n public double getSavitzkyGolayDerivatives Användning smoothedDataPlusDeriv sgFilterWidthy, m, n Denna metod returnerar de jämnde z-värdena och de släta derivaten för data som matas in via konstruktorn Argument med ett tvådimensionellt Savitzky-Golay-filter med bredd sgFilterWidthx-punkter i x-dimensionen och bredden sgFilterWidthy-punkter i y-dimensionen Argumenten m och n innehåller värdena för de nödvändiga orderna av derivatet, m och n De jämnda z-värdena returneras i ovanstående användning i smoothedDataPlusDeriv 0 returneras derivaten i smoothedDataPlusDeriv 1 Summan av mm och nn måste vara mindre än eller lika med graden av passande polynom. Standardvärdet för denna grad är 4 Detta värde kan återställas Använda metoden setSGpolyDegree. Usage smoothedData Denna metod returnerar Savitzky-Golay smoothed derivaten Savitzky - Golay-derivatmetoden måste redan ha kallats som den sista derivatmetoden och värdena på m och n kommer att vara det som användes i det senaste samtalet. Savitzky-Golay Filter offentliga dubbla getSGcoefficients Användning sgCoefficients Denna metod returnerar Savitzky-Golay-filterkoefficienterna, c Som används i utjämningen mw och nw är längden på filtret i respektive y - och x-riktningarna, ml och nl är antalet punkter som föregår datapunkten som filtret är i drift, zk, l i respektive y respektive x-riktningarna Och mu och nu är antalet punkter som följer efter datapunktet zk, l, i respektive y-riktningen. Om filtret används som ett utjämningsfilter sk, är l det jämnvärda värdet på datapunkten zk, l och C-värden som används är de som lagras i den nollgraden av den returnerade matrisen sgCoefficients Varje rad av sgCoefficients är arrayen av koefficienter cmwnw arrangerade linjärt som mw-blocken av rader var och en av längden nw Varje rad, när den appliceras på data Ger de slätade m, n-derivaten Den nittra raden, indexerna 0,0, ger det slätade zerot-derivatet, dvs de jämnda datavärdena, den andra raden, indexerna 0,1, ger derivaten. Det par av index som är associerade med varje rad kan Erhållas genom att anropa metoden getSGpolyIndices och de motsvarar indexerna för koefficienterna för monteringspolynomet se nedan. Standardvärdet för graden av monteringspolynomet är 4 Detta värde kan återställas med användning av setSGpolyDegree-metoden. Utjämningsmetoden, savitzkyGolay använder en Symmetriskt filter, iemlmu och nln u. public int getSGpolyIndices AnvändningsindexPairs Den här metoden returnerar paren av index för det passande polynomet se direkt ovan Värdet i index i 0 är det första indexet för polynomets ith-koefficient och är också kraften i Y i ith termen Värdet i index i 1 är det andra indexet för polynomets ith-koefficient och är också kraften i x i termen. Dessa returnerade par är också beställda att matcha raderna i den returnerade c-matrisen Se savitzkyGolayFilter-metoden above. public void setSGpolyDegree int grad public int getSGpolyDegree Användning Denna metod återställer graden av Savitzky-Golay-anpassningspolynomet. Standardvärdet är 4 om denna metod inte kallas. Användning Denna metod returnerar graden av Savitzky-Golay-anpassningspolynomet. Standardvärdet är 4.Statiska metoder för att returnera ett Savitzky-Golay-filter offentliga statiska dubbla savitzkyGolayFilter int nBackwardx, int nForwardx, int nBackwardy, int nForwardy, int polyDegree Användning sgCoefficients nForwardx , nBackwardx, nForwardx, polyDegree Denna metod returnerar koefficienterna c av ett tvådimensionellt Savitzky-Golay-filter med x-dimensioneringslängd, mw nBackWardx nForWardx 1 och y dimensionslängd, nw nBackWardy nForWardy 1, med ett passande polynom av graden, polyDegree A beskrivning av koefficienterna, c deras tillämpning och deras ordering inom den returnerade tvådimensionella matrisen, sgCoefficie Nts kan hittas ovan Argumenten nBackWardx ml och nBackWardy nl är antalet poäng som föregår datapunkten, där filtret fungerar, i respektive x - och y-dimensionerna och nForWardx mu och nForWardy nu är antalet punkter som följer data Peka i x - och y-dimensionerna respektive. public static int filterIndices int grad AnvändningsindexPairs Denna metod returnerar paren av index för ett passande polynom av graden. Värdet i indexerna i 0 är det första indexet för polynomens ith-koefficient och är även kraften i y i termen Värdet i indexerna 1 är det andra indexet för polynomens ith-koefficient och är också kraften i x i termens term Ett exempel på ett sådant passande polynom och dess koefficienter visas ovan Dessa returnerade par är också beställda för att matcha raderna i motsvarande c-matris. FLÄGG AVGÅENDE VÄNDSRÖDNINGEN public double movingAverage int windowWidthx, int windowWidthy public double movingAv delete int windowWidth public BigDecimal movingAverageAsBigDecimal int windowWidthx, int windowWidthy offentliga BigDecimal movingAverageAsBigDecimal int windowWidth public double getMovingAverageValues ​​offentliga BigDecimal getMovingAverageValuesAsBigDecimal Användning smoothedData windowWidthy Denna metod returnerar de jämnde z-värdena, för data som matas in via konstruktörargumenten, med ett glidande medelfönster av nw argument WindowWidthx poäng i x-dimensionen och mw argument windowWidthy poäng i y-dimensionen sk, l är det jämnaste värdet för datapunkten zk, l Det inmatade värdet för antalet punkter i fönstren justeras till nästa högre udda antal om ett jämnt tal har skrivits in Värdena för nlnuml och mu är avkortade på lämpligt sätt när de närmar sig data extremiteterna faller under eller över den första eller sista datapunkten. Den jämnda data returneras som typ dubbel. Användning av jämnderad data Som omedelbart ovanför För movingAverage windowWidthx, fönster Breddigt med ett fyrkantigt fönster, dvs windowWidthx windowWidth och windowWidthy windowWidth. Usage smoothedData windowWidthy Som ovan för movingAverage windowWidthx, windowWidthy med undantag för att den jämnda data returneras som typ BigDecimal Om data inmatades som typ BigDecimal eller BigInteger kommer utjämningen ha varit Utförs i godtycklig aritmetik. Användning smoothedData Som ovan för movingAverage windowWidthx, windowWidthy med ett fyrkantigt fönster, dvs windowWidthx windowWidth och windowWidthy windowWidth och med undantag för att den jämnda data returneras som typ BigDecimal Om data inmatades som typ BigDecimal eller BigInteger Kommer att ha utförts i godtycklig aritmetik. Användning smoothedData Den här metoden returnerar de jämnade z-värdena om ovanstående glidande medelfönstermetod redan har kallats. Använda smoothedData Den här metoden returnerar de jämnaste z-värdena om ovanstående glidande medelfönstermetod redan har kallats The glatt värden återkommer Ned som typ BigDecimal. EXTENT OF SMOOTHING. public dubbla utsträckningSavitzkyGolay offentliga dubbla utsträckningMovingAverage Dessa metoder returnerar värdet av funktionen där zi, j är det ursprungliga z-värdet av den första datapunkten, si, j är dess jämnvärde, Z min är minimivärdet för zi, jz max är maximivärdet för zi, j och n är antalet x-koordinater och m är antalet y-koordinater. Användningsgrad I denna metod si är j Savitzky - Golay glatt värde. Användningsgrad I denna metod si är j det glidande medelvärdet smoothed value. public dubbel interpolateSavitzkyGolay dubbel xi, dubbel yi allmän dubbelinterpoleringMovingAverage dubbel xi, dubbel yi Användning zi yi Denna metod returnerar det interpolerade värdet av z zi för den medföljande x argument xi och y argument yi värden för Savitzky-Golay slätad data Interpoleringsproceduren använder BiCubicSpline klassen A Savitzky-Golay utjämning metod måste ha kallats tidigare. Usage zi yi Denna metod returnerar interpolerade värdet på z zi för det medföljande x-argumentet xi och y-argumentet yi-värdena för den glidande genomsnittliga jämnda data Interpoleringsproceduren använder BiCubicSpline-klassen En glidande medelutjämningsmetod måste ha kallats tidigare. Savitzky-Golay public double plotSavitzkyGolayX double yValue public double plotSavitzkyGolayX int yIndex public double plotSavitzkyGolayY dubbel xValue public double plotSavitzkyGolayY int xIndex Användning Den här metoden visar en plot av både ursprungliga data och Savitzky-Golay glatt data för en sektion genom ytan parallell med x - axen till ett värde av y som levereras som argument yValue Värdet yValue måste vara ett av värdena som levereras i array yData via en Constructor. Usage Denna metod visar en plot av både originaldata och Savitzky-Golay-glättad data för en sektion genom ytan parallell med x - Axeln vid värdet av y vars index i matrisen yData inmatas via en Constructor är heltalet levererat som argumentet yIndex NB index börjar vid 0.Usage Denna metod visar en plot av både originaldata och Savitzky-Golay-glättad data för en sektion genom ytan parallell med y - axen till ett värde av x som tillfogas som argumentet xValue Värdet xValue måste Vara ett av värdena som levereras i arrayen xData via en Constructor. Usage Denna metod visar en plot av både originaldata och Savitzky-Golay-glättad data för en sektion genom ytan parallell med y - axen vid värdet av x vars Index i matrisen xData inmatad via en Constructor är heltalet levererat som argumentet xIndex NB-index börjar vid 0.Moving medelvärde offentliga dubbla plotMovingAverageX dubbel yValue offentliga dubbla plotMovingAverageX int yIndex offentliga dubbla plotMovingAverageY dubbel xValue offentliga dubbla plotMovingAverageY int xIndex Användning Denna metod visar en Plot av både de ursprungliga uppgifterna och den flytande genomsnittliga jämna dataen för en sektion genom ytan parallell med x - axen vid ett värde av y som tillfogas som argu ment yValue Värdet yValue måste vara ett av värdena som levereras i arrayen yData via en Constructor. Usage Denna metod visar en plot av både originaldata och flytande genomsnittlig glatt data för en sektion genom ytan parallell med x - axen vid värdet av y vars index i array yData inmatas via en Constructor är heltalet levererat som argumentet yIndex NB-index börjar vid 0.Usage Denna metod visar en plot av både ursprungliga data och den flytande genomsnittliga jämna data för en sektion genom ytan parallell med y - axen till ett värde av x som tillfogas som argumentet xValue Värdet xValue måste vara ett av värdena som matas in i arrayen xData via en Constructor. Usage Denna metod visar en plot av både originaldata och Flytta genomsnittlig jämndat data för en sektion genom ytan parallell med y - axen vid värdet av x vars index i arrayen xData inmatas via en Constructor är heltalet tillfogat som argumentet xIndex NB-index börjar vid 0.OTHER C LASSER ANVÄNDADE AV DENNA KLASS. Modellering avlägsnar kortsiktiga variationer eller ljud för att avslöja den viktiga underliggande, oförlåtna formen av data. Igor s Smidig operation utför box, binomial och Savitzky-Golay utjämning. De olika utjämningsalgoritmerna sammanfaller ingångsdata med olika koefficients. Smoothing är ett slags lågpassfilter. Typen av utjämning och mängden utjämning ändrar filterets frekvensrespons. Möjlig medelvärde aka Box-utjämning. Den enklaste formen av utjämning är det glidande medelvärdet som helt enkelt ersätter varje datavärde med Medelvärdet av närliggande värden För att undvika att skifta data är det bäst att genomsnittsa samma antal värden före och efter där medlet beräknas. I ekvationsform beräknas glidande medelvärde. En annan term för denna typ av utjämning är glidande medelvärde , Lådutjämning eller boxcar utjämning Det kan implementeras genom att samla ingångsdata med en lådformad puls med 2 M 1 värden som är lika med 1 2 M 1 Vi ringer Dessa värderar koefficienterna i utjämningskärnan. Bomomialutjämning. Binomialutjämning är ett gaussiskt filter Det sammanfaller dina data med normaliserade koefficienter som härrör från Pascal s-triangeln på en nivå som motsvarar utjämningsparametern. Algoritmen härleddes från en artikel av Marchand och Marmet 1983.Savitzky-Golay-utjämning. Savitzky-Golay-utjämning använder en annan uppsättning precomputerade koefficienter som är populära inom kemiområdet. Det är en typ av minsta kvadratpolynomialutjämning. Möjningen av utjämningen styrs av två parametrar polynomordningen och antalet poäng som används För att beräkna varje utjämnat utgångsvärde. Marchand, P och L Marmet, Binomial utjämningsfilter En väg för att undvika vissa fallgropar med minst kvadratpolynom utjämning, Rev Sci Instrum 54 1034-41, 1983.Savitzky, A och MJE Golay, utjämning och differentiering av Data genom förenklade procedurer för minsta kvadrater, Analytical Chemistry 36 1627-1639, 1964. Detta exempel visar hur man använder glidande medelfilter och resamp Ling för att isolera effekten av periodiska komponenter på tidstimmen vid timme temperaturavläsningar, samt avlägsna oönskat linjeljud från en spänningsmätning med öppen slinga. Exemplet visar också hur man mäter nivåerna av en klocksignal samtidigt som kanterna bibehålls Använda ett medianfilter Exemplet visar också hur man använder ett Hampel-filter för att ta bort stora outliers. Smoothing är hur vi upptäcker viktiga mönster i våra data samtidigt som vi lämnar ut saker som inte är viktiga, dvs brus. Vi använder filtrering för att utföra denna utjämning. Målet med utjämning är För att producera långsamma värdeförändringar så att det blir lättare att se trender i våra data. Ibland när du granskar inmatningsdata kan du önska att jämna data för att se en trend i signalen. I vårt exempel har vi en uppsättning temperaturmätningar I Celsius tas varje timme på Logans flygplats för hela januari månad 2011. Notera att vi visuellt kan se vilken effekt dagtid har på temperaturmätningarna Om du bara är intresserad I den dagliga temperaturvariationen över månaden bidrar timlängdsfluktuationerna bara med ljud, vilket kan göra det svårt att skilja de dagliga variationerna. För att ta bort effekten av tiden på dagen skulle vi nu vilja släta våra data genom att använda ett glidande medelfilter. Ett rörligt medelfilter. I sin enklaste form tar ett glidande medelfilter med längd N genomsnittet av varje N på varandra följande prover av vågformen. För att tillämpa ett glidande medelfilter till varje datapunkt konstruerar vi våra koefficienter i vårt filter så att varje Punkten är lika viktad och bidrar med 1 24 till det totala genomsnittet. Detta ger oss medeltemperaturen över varje 24-timmarsperiod. Filter Delay. Not att den filtrerade utsignalen är försenad med cirka tolv timmar Detta beror på det faktum att vårt glidande medelfilter har En fördröjning. Ett nytt symmetriskt filter med längd N kommer att ha en fördröjning av N-1 2-prov. Vi kan redovisa denna fördröjning manuellt. Utdragande medelskillnader. Alternativt kan vi också använda det glidande medelfiltret till obtai Efter en bättre uppskattning av hur tidpunkten för dagen påverkar den totala temperaturen För att göra det här, dra först och främst de jämnda data från timmars temperaturmätningar. Därefter segmentera de olika uppgifterna i dagar och ta medeltalet över alla 31 dagar i månaden. Extraktionstopp Envelope. Sometimes vi skulle också vilja ha en jämn varierande uppskattning av hur höga och låga av vår temperatursignal ändras dagligen. För att göra detta kan vi använda kuvertfunktionen för att ansluta extrema höga och låga detekterade över en delmängd av 24-timmarsperioden i I det här exemplet ser vi till att det finns minst 16 timmar mellan varje extremt hög och extremt låg. Vi kan också få en känsla av hur höga och låga trender är genom att ta medeltalet mellan de två ytterligheterna. Vägt rörande medelfilter. Övriga typer av rörelser Genomsnittliga filter viktar inte varje prov lika. Ett annat vanligt filter följer binomial expansion. Denna typ av filter approximerar en normal kurva för stora värden på n. Det är användbart för filtrering ut högfrekventa ljud för små n För att hitta koefficienterna för binomialfiltret, konvolvera med sig själv och sedan iterativt sammankoppla utgången med ett föreskrivet antal gånger. I det här exemplet använder du fem totala iterationer. Ett annat filter som liknar det gaussiska expansionsfiltret är Det exponentiella glidande medelfiltret Denna typ av viktat glidande medelfilter är lätt att konstruera och kräver inte en stor fönsterstorlek. Du justerar ett exponentiellt vägt glidande medelfilter med en alfaparameter mellan noll och en. Ett högre värde på alfa kommer att ha mindre utjämning. Samma in på avläsningarna för en dag. Sälj ditt land.

No comments:

Post a Comment