Tuesday 17 October 2017

Octave Glidande Medelvärde Funktion


Vägt Flyttande Average. In svar på detta inlägg av Luca Delucchi. En online metod att göra wma dvs där du kan lägga till ett enda värde på en gång med ett expinential fönster som väger nyare händelser starkare än mindre nyfiken fungerar som this. xmean t 1 Exp -1 tau xmean txt tau. this ger dig en wma av xt Tau är något som längden på minneshändelserna längre än tau kommer inte att komma ihåg så bra. Senast den 10 08 2007 om 09 19 schrieb Luca Delucchi. Hi, jag Kan göra en funktion på Viktad Flyttande Medelvärde där värdet är i automatiskt läge Detta är min idé y y1, y2, y3, y4, y5 funktion wma y y1 2 y2 y3 4 y2 2 y3 y4 4 etc etc slutfunktion Jag kunde inte upprepa formeln y1 2 y2 y3 4 eftersom om den långa vektorn är annorlunda måste jag ändra funktionen men har bara en formel som använder formeln för alla vektorvärden Jag hoppas jag har fått en tydlig förklaring Luca Help-oktavlistan dold email. Det är inte en oktav sak, men en signalbehandling sak En FIR ändlig input response fil ter bestäms av vektorn av koefficienterna, så om filtret har längd 4, skulle utsignalen vara något som ytb 1 x 2 x t-1 b 3 x t 2 b 4 x t 3. Så när b 1 , 4 4, det är bara genomsnittet av de fyra sista elementen. I oktav kan du använda funktionsfiltret för att göra exakt det, om x är din signal kan du helt enkelt göra y filter b, 1, xP S Detta är nästan detsamma som Sren s förslag att använda konvertering med hjälp av conv-funktionen. Den enda skillnaden som jag tror är att filtret kommer att ge samma effekt som conv, men trunkeras till längden av x. On 8 10 07 skrev Luca Delucchi dold email 2007 8 10 , Schirmacher, Rolf dold email Filter med ett FIR-filter Koefficienter skulle vara b 1 1 1 1 4.What är det här ledsen men jag är nybörjare av oktav .----- Original meddelande ----- Från Luca Delucchi mailto hidden email Skickat fredag ​​10 augusti 2007 9 20:00 Till oktav Ämne Viktat Flyttande medelvärde Hej, jag kan göra en funktion på Viktad Flyttande Medelvärde där värdet är i automatiskt läge det här är min idé Y y1, y2, y3, y4, y5 funktion wma y y1 2 y2 y3 4 y2 2 y3 y4 4 etc etc slutfunktion Jag kunde inte upprepa formeln y1 2 y2 y3 4 eftersom om den långa vektorn är annorlunda måste jag ändra funktion men har bara en formel som använder formeln för alla vektorvärden Jag hoppas jag har fått en tydlig förklaring Luca Help-oktavlistan dold email. In svar på detta inlägg av Luca Delucchi. Hi kan jag göra en funktion på Weighted Flyttande medelvärde där värdet är i automatiskt läge här min idé. Y y1, y2, y3, y4, y5 funktion wma y y1 2 y2 y3 4 y2 2 y3 y4 4 etc etc slutfunktion. Jag kunde inte upprepa formeln y1 2 y2 y3 4 eftersom om den långa vektorn är annorlunda måste jag ändra funktionen men har bara en formel som använder formeln för alla vektorvärden. Du måste tänka på dina data på ett annat sätt om du vill använda Matlab-oktaven effektivt. Data är representerade som vektorer eller matriser, och du borde göra det alla operationer på hela data --- tänk på element y1, y2, etc men hellre hantera hela vektorn y Du måste blanda upp vektorelement från olika positioner, så du måste konstruera förskjutna versioner av vektorn För Exemplet, y 2 slutet är vektorn vars första element är det andra elementet i y. När du gör det på så sätt tvingar det dig att känna igen olika problem som blir svepade under teppet annars, till exempel, vad betyder det viktade medlet för y1, som inte har en tidigare datapunkt. En metod kan vara att duplicera te första och sista punkten. temp y 1 yy sluten genomsnittlig temp 1 slut-2 2 temp 2 slut-1 temp 3 slutet 4.or ge upp och erkänna att du bara kan beräkna medelvärdet på en delmängd av poäng. slutet 2 2 y 2 slut-1 y 3 slutet 4. Det finns en oktavfunktion kallad filter som kan tillämpa godtyckligt linjärt filter det är ganska komplicerat eftersom det tillåter linjär återkoppling som du inte är intresserad av så att du använder en specifik form av En återkopplingsvektor b 1 0 0 0 0 0.average filter 1 2 1 4,1, y. Slutligen har Octave några filter som är inbyggda i min favorit är Savitzky-Golay 2-ögonblickligt bevarandefilter.31 Signalbehandling. Detta kapitel beskriver signalbehandlingen och de snabba Fourier-transformfunktionerna som finns tillgängliga i Octave Fast Fourier-transformer beräknas med FFTW - eller FFTPACK-biblioteken beroende på hur Octave är inbyggd den diskreta Fourier-transformen av A med en Fast Fourier Transform FFT-algoritm. FFT beräknas längs det första icke - singleton dimensionen av arrayen Således om x är en matris, fft xc Omdirigerar FFT för varje kolumn med x. Om det kallas med två argument, förväntas n vara ett heltal som anger antalet element i x som ska användas eller en tom matris för att ange att dess värde ska ignoreras om n är större än dimensionen längs vilken FFT beräknas, sedan x-storlek och vadderas med nollor Annars, om n är mindre än den dimension längs vilken FFT beräknas, är x avkortad. Om det kallas med tre argument är dim ett heltal som anger dimensionen Av matrisen längs vilken FFT utförs på den inversa diskreta Fourier-transformen av A med användning av en Fast Fourier-transform-FFT-algoritm. Den inverse FFT beräknas längs den första icke-singeldimensionen av arrayen. Således, om x är en matris, beräknar fftx Invers FFT för varje kolumn med x. Om det kallas med två argument förväntas n vara ett heltal som anger antalet element i x som ska användas eller en tom matris för att ange att dess värde bör ignoreras om n är större än dimensionen alon G som den inverse FFT beräknas, så x-storlek och vadderas med nollor Annars, om n är mindre än den dimension längs vilken den inverse FFT beräknas, är x avkortad. Om det kallas med tre argument är dim ett heltal som anger Dimensionen av matrisen längs vilken den inverse FFT utförs på den tvådimensionella diskreta Fourier-transformen av A med användning av en Fast Fourier-transform-FFT-algoritm. De frivilliga argumenten m och n kan användas anger antalet rader och kolumner A för att använda om antingen Av dessa är större än storleken på AA är storlek och vadderad med nollor. Om A är en mångdimensionell matris, behandlas varje tvådimensionell delmatris av A, den inverse tvådimensionella diskreta Fourier-transformen av A med användning av en snabb Fourier Transform FFT-algoritmen. De valfria argumenten m och n kan användas anger antal rader och kolumner A som ska användas om endera av dessa är större än storleken på AA är storlek och vadderad med nollor. Om A är en multidimension Onalmatris, är varje tvådimensionell undermatris av A behandlad separatelyp den N-dimensionala diskreta Fourier-transformen av A med användning av en Fast Fourier Transform FFT-algoritm. Den valfria vektorgradsstorleken kan användas ange dimensionerna för den matris som ska användas Om ett element av storlek är mindre än motsvarande dimension av A, sedan dimensioneras A avknippas innan FFT utföres. Om ett element av storlek är större än motsvarande dimensioneras A, så ändras A och vadderas med zerosputt den inversa N-dimensionella diskret Fourier-transformation av A med en snabb Fourier-transform-FFT-algoritm. Den valfria vektorgradsstorleken kan användas ange dimensionerna för arrayen som ska användas. Om ett element av storlek är mindre än motsvarande dimension av A, avkortas dimensionen av A innan du utför den inverse FFT I annat fall, om ett element av storlek är större än motsvarande dimension, så ändras A och polstras med nollor. Octave använder FFTW lib raries för att utföra FFT-beräkningar När Octave startar och initialiserar FFTW-biblioteken, läser de en systembreddfil på ett Unix-system, det är typiskt etc fftw visdom som innehåller information som är användbar för att påskynda FFT-beräkningar. Denna information kallas visdom System - bred fil tillåter visdom att delas mellan alla applikationer med hjälp av FFTW-biblioteken. Använd fftw-funktionen för att generera och spara visdom Med hjälp av de verktyg som tillhandahålls tillsammans med FFTW-biblioteken fftw-visdom på Unix-system kan du till och med lägga till visdom genererad av Octave till system-wide visdomsfil. Hantera FFTW-visdomsdata. Visdomsdata kan användas för att påskynda beräkningen av FFT-enheterna betydligt, men innebär en initial kostnad vid beräkningen. När FFTW-bibliotek initieras läser de en systembredd visdomsfil typiskt i etc fww visdom, så att visdom delas mellan andra applikationer än oktav Alternativt kan fftw-funktionen användas för att importera visdom. Exempelvis kommer du att spara t den befintliga visdomen som används av Octave till strängvisheten Denna sträng kan sedan sparas i en fil och återställas med respektive spara och lastkommandon. Den befintliga visdomen kan återimporteras enligt följande. Om visdom är en tom sträng, så används visdom Rensas. Vid beräkningen av Fourier-transformer genereras ytterligare visdom Modet där denna visdom genereras styrs också av fftw-funktionen. Det finns fem olika sätt på vilka visdom kan behandlas. Anger att ingen körtidsmätning av optimala sätt att beräkna en viss utförs och en enkel heuristisk används för att välja en förmodligen suboptimal plan Fördelen med denna metod är att det finns liten eller ingen överhuvud i planens generering, vilket är lämpligt för en Fourier-transform som kommer att beräknas en gång. I det här fallet beaktas en rad algoritmer för att utföra transformen och det bästa är valt utifrån deras exekveringstid. Liksom att mäta men en bredare rang e av algoritmer anses. Liksom mäta men alla möjliga algoritmer som kan användas för att behandla transformen anses. As algoritmens körtidsmätning kan vara dyr, är det en kompromiss där åtgärden används för omvandlingar upp till storleken på 8192 och utöver det som uppskattningsmetoden används. Standardmetoden är uppskattning Den nuvarande metoden kan ställas in med. or inställd med användning. Notera att beräkna visdom kommer att gå vilse vid omstart av oktav. Visdomsdata kan dock laddas om det sparas till en fil som beskrivs ovan. Sparade visdomsfiler ska inte användas på olika plattformar eftersom de inte kommer att vara effektiva och beräkningen av visdomen är förlorad. Antalet trådar som används för att beräkna planerna och genomföra transformerna kan ställas in med. Observera att oktav måste sammanställas med multi-threaded FFTW-stöd för denna funktion Antalet processorer som är tillgängliga för den aktuella processen används per default. Convolve två vektorer med FFT för computation. c ff tconv xy returnerar en vektor med längd lika med längd x längd y - 1 Om x och y är koefficientvektorerna för två polynomier är returvärdet koefficientvektorn för produktpolynomet. Beräkningen använder FFT genom att anropa funktionen fftfilt If det valfria argumentet n är angivet, en N-punkt FFT används. Filter x med FIR-filteret b med FFT. Om x är en matris, filtrera varje kolumn i matrisen. Given det valfria tredje argumentet, n fftfilt använder överlappningen - add metod för att filtrera x med b med en N-punkt FFT FFT-storleken måste vara en jämn effekt på 2 och måste vara större än eller lika med längden på b Om det angivna n inte uppfyller dessa kriterier justeras det automatiskt Till det närmaste värdet som gör. Koppla ett 1-D digitalt filter till data x. filter returnerar lösningen till följande linjära, tidsinvesterande skillnadsekvation. Där N längd a -1 och M längd b -1 Resultatet beräknas över den första icke-singleton-dimensionen av x eller över dim, om den levereras. En equ ekvivalent form av ekvationen är. där ca 1 och dba 1. Om det fjärde argumentet s tillhandahålls tas det som systemets initiala tillstånd och det slutliga tillståndet returneras som sf. Statvektorn är en kolumnvektor vars längd är lika med längden på den längsta koefficientvektorn minus en Om si inte levereras är den ursprungliga tillståndsvektorn inställd på alla nollor. När det gäller Z-transformen är y resultatet av att den diskreta tidssignalen x passerar genom ett system som kännetecknas av genom följande rationella systemfunktion. Använd 2-D FIR-filtret b till x. Om argumentformen anges, returnera en matris med önskad form. Möjliga värden är. pad x med nollor på alla sidor innan filtering. unpadded x default. Trim x efter filtrering så kant effekter är inte inkluderade. Notera detta är bara en variation på konvolvering, med parametrarna omvända och b roterade 180 grader. Återställ komplexa frekvenssvaret h för det rationella IIR-filtret, vars täljare och nämnare koefficienter är b och a respekt ively. Svaret utvärderas vid n vinkelfrekvenser mellan 0 och 2 pi. Utgångsvärdet w är en vektor av frekvenserna. Om en utelämnas antas nämnaren vara 1 detta motsvarar ett enkelt FIR-filter. Om n är Utelämnas, antas ett värde av 512 För snabbast beräkning bör n ingå i ett litet antal små primer. Om det fjärde argumentet är helt utelämnat svaret utvärderas vid frekvenser mellan 0 och pi. Evaluera svaret vid de specifika frekvenserna i Vektorn w Värdena för w mäts i radianer. Återställ frekvenser i Hz istället för radianer med antagande av samplingsfrekvens Fs Om du utvärderar svaret vid specifika frekvenser w, bör dessa frekvenser begäras i Hz istället för radianer. Släpp magneten och fasen Svaret på h istället för att returnera dem. Släpp magniteten och fasresponsen av h. Om det frivilliga freqnorm-argumentet är sant är frekvensvektorn w i enheter med normaliserade radianer. Om freqnorm är falskt eller ej ges, är w mätt i Hertzpute sinc-funktionen. Återställ sin pi x pi x. Unwrap radianfaser genom att lägga multiplar av 2 pi som lämpligt för att ta bort hopp som är större än tol. tol som standard till pi. Unwrap fungerar längs dimensioneringen dim. Om dim är ospecificerad är det som standard till den första icke-singleton-dimensionen. Ange en ARCH-regressionsmodell till tidsserien y med hjälp av scoringsalgoritmen i Engles ursprungliga ARCH paper. in vilket et är N 0, ht ges en tidsserievektor y upp till tiden t-1 och en matris med vanliga regressorer x upp till t Ordningen för regression av restvariansen anges av p. Om den kallas arkfit ykp med ett positivt heltal k passar en ARCH kp-process, dvs gör ovanstående med t-raden av x som ges av. Också kan man ange antalet iterationer om uppdateringsfaktorns gamma och initialvärdena a0 och b0 för scoringsalgoritmen. Simulera en ARCH-sekvens av längd t med AR-koefficienterna b och CH-koefficienterna a. Resultatet följer följande Modellen. som en given y upp till tiden t-1 är N 0, ht med. För en linjär regression modell. perform ett Lagrange Multiplikator LM-test av nollhypotesen om ingen villkorlig heteroscedascity mot alternativet för CH pI e är modellen given upp till t-1 och x upp till tet Är N 0, ht with. and noll är en 1 ap 0. Om det andra argumentet är ett skalärt heltal, utför k det samma testet i en linjär autoregressmodell av orderkie with. as t-raden av x. Under noll har LM ungefär en chisquarefördelning med p frihetsgrader och pval är p - värdet 1 minus CDF för denna fördelning vid testets LM. Om inget utmatningsargument anges, visas p-värdet. Återställ en Simulering av ARMA-modellen. ARMA-modellen definieras av. I vilken k är längden på vektorn al är längden på vektorn b och e är Gaussiskt vitt brus med varians v Funktionen returnerar en vektor med längden t. Den valfria parametern n anger antalet dummy xi som används för initialisering, dvs en sekvens av längd tn genereras och xn 1 tn är returneras Om n utelämnas används n 100. Ange en tidsserievektor y returnera en matris med de i den första kolumnen och de första k-fördröjda värdena för y i de andra kolumnerna. Med andra ord, för tk 1, yt -1 , yt - k är resultatens t-rad. Den resulterande matrisen kan användas som en regressormatris i autogressioner. Återställ filterkoefficienterna för ett Bartlett-triangulärt fönstret med längd m. För en definition av Bartlettfönstret, se, t. ex. AV Oppenheim RW Schafer, Discrete-Time Signal Processing. Återställ filterkoefficienterna för ett Blackman-fönster med längd m. Om det frivilliga argumentet periodiskt anges, returneras den periodiska formen av fönstret. Detta motsvarar fönstret med längd m 1 med den sista koefficienten borttagen Den frivilliga argumentets symmetriska motsvarar att inte ange ett andra argument. För en definition av Blackman-fönstret, se t. ex. AV Oppenheim RW Schafer, Discrete-Time Signal Processing. Om x är en vektor, tar detrend xp bort bästa passformen av ett polynom av eller der p från data x. Om x är en matris, gör detrend xp samma för varje kolumn i x. Det andra argumentet p är valfritt Om det inte är angivet antas ett värde av 1. Detta motsvarar att en linjär trend avlägsnas. Ordningen av polynomet kan också ges som en sträng, i vilket fall p måste vara antingen konstant motsvarar p 0 eller linjär motsvarar p 1. Återställ estimatorn d för differentieringsparametern för en integrerad tidsserie. Frekvenserna från 2 Pi vid, 2 pi b T används för uppskattningen Om b utelämnas används intervallet 2 pi T, 2 pi a T Om både b och a utelämnas används en 0 5 sqrt T och b 1 5 sqrt T , där T är provstorleken Om x är en matris, beräknas differenseringsparametern för varje kolumn. Estimatorerna för alla frekvenser i de intervaller som beskrivs ovan returneras i dd. Värdet på d är helt enkelt medelvärdet av dd. Reference PJ Brockwell RA Davis tidsserie teori och metoder Springer 1987.Performa ett steg i Durbin-Levinson-algoritmen. Vec tor c anger autocovariances gamma0, gammat från lag 0 till t oldphi anger koefficienterna baserade på ct -1 och oldv specificerar motsvarande fel. Om oldphi och oldv utelämnas utförs alla steg från 1 till t av algoritmen. Perform ett skifte av vektorn x för användning med fft - och ifft-funktionerna för att flytta frekvensen 0 till mitten av vektorn eller matrisen. Om x är en vektor av N-element som motsvarar N-tidsproverna åtskilda av dt då fftshift fft X motsvarar frekvenser. Om x är en matris håller det samma för rader och kolumner Om x är en matris, håller samma längs varje dimension. Det frivilliga dimargumentet kan användas för att begränsa den dimension som permutationen uppstår. Undo funktionen för fftshift-funktionen. För jämn längd x är fftshift sin egen invers, men ojämna längder skiljer sig något mellan de fraktionerade skillnaderna 1-L dx där L betecknar lagoperatören och d är större än -1. Återställ filterkoefficienterna för en Hammingfönster av längd h m. Om det frivilliga argumentet periodiskt ges, återges den periodiska formen av fönstret. Detta motsvarar fönstret med längd m 1 med den sista koefficienten borttagen. Den frivilliga argumentets symmetriska motsvarar att inte ange ett andra argument. För en definition av Hamming-fönstret se t. ex. AV Oppenheim RW Schafer, Diskret-tids-signalbehandling. Återställ filterkoefficienterna för ett Hanning-fönster med längd m. Om det frivilliga argumentet periodiskt anges, returneras den periodiska formen av fönstret. Detta motsvarar Fönstret med längd m 1 med den sista koefficienten borttagen Den frivilliga argumentets symmetriska motsvarar att inte ange ett andra argument. För en definition av Hanning-fönstret, se t. ex. AV Oppenheim RW Schafer, Diskretidssignalbehandling. Ändra Hurst-parametern för Prov x via den återkallade räckvidden statistiken. Om x är en matris, beräknas parametern för varje kolumn. Återställ Piecewise Cubic Hermite Interpolating Polynomial Pchip av poäng x och y. Om det kallas med två argument, returnera den styckvisa polynomial pp som kan användas med ppval för att utvärdera polynomet vid specifika punkter. När det kallas med ett tredje inmatningsargument, utvärderar pchip pchippolynomet vid punkterna xi. Den tredje anropsformen är ekvivalent till ppval pchip xy, xi. Variabeln x måste vara en strikt monotonisk vektor antingen öka eller minska längden ny kan vara antingen en vektor eller array Om y är en vektor måste den ha samma längd n som x Om y är en array då måste storleken på y ha formen s1 s2, sk n Arrayen formas internt till en matris där den ledande dimensionen ges av s1 s2 sk och varje rad i denna matris behandlas separat. Observera att detta är exakt motsatt till interp1 men görs för MATLAB-kompatibilitet. Återställ periodogramets effektspektraldensitet av x. De möjliga ingångarna är. datavektor Om x är verkligt värderas ett ensidigt spektrum uppskattas. Om x är komplext värderat eller anger intervallet tvärsatt hela spektret är est imated. window viktdata Om fönstret är tomt eller ospecificerat används ett standard rektangulärt fönster Annars används fönstret på signalen x vinna innan beräkningen av periodogrammet Fönsterdata måste vara en vektor med samma längd som x. number av frekvensfack Standardvärdet är 256 eller nästa högre effekt av 2 större än längden på x max 256, 2 nextpow2 längd x Om nfft är större än längden på ingången kommer x att vara nollpolderad till längden av nfft. sampling rate The standard är 1.range av spektrumsidigt beräknar spektrum från tvåsidigt beräknat spektrum. Den valfria andra utgången w är normaliserade vinkelfrekvenser För en ensidig beräkning är w i intervallet 0, pi om nfft är jämn och 0, pi om nfft Likaså är för en tvåsidig beräkning w inom intervallet 0, 2 pi eller 0, 2 pi beroende på nfft. Om en samplingsfrekvens anges, Fs då kommer utgångsfrekvenserna f att ligga i intervallet 0, Fs 2 Eller 0, Fs 2 för ensidiga beräkningar För dubbelsidig beräkning s intervallet blir 0, Fs. When kallas utan utgångar, periodogrammet plottas omedelbart i det aktuella bildfönstret. Återställ en sineton av frekvensfrekvens med en längd av sek sekunder vid samplingsfrekvens och med amplitudförstärkare. Argumenten ffq och Amplituden kan vara vektorer med gemensam storlek. Standardvärdena är hastighet 8000, sek 1 och amplitud 64.Returnera en m-elementvektor med det första elementet som ges av sin 2 pi id -1 n. Standardvärdet för d är 0 och Standardvärdet för n är m. Återställ spektraldensitetsberäkningen givet en vektor av autokravstangenter c Fönsternamn vinst och bandbredd, b. Fönstret namn, t ex triangel eller rektangel används för att söka efter en funktion som kallas win lw. If vinsten är utelämnad , Triangelfönstret används. Om b utelämnas används 1 kvadratlängd x. Återställ spektraldensitetsestimatorn med en datav vektor x fönsternamn vinst och bandbredd, b. Fönstret namn, t. ex. triangel eller rektangel används för att söka efter En funktion som heter win sw. If vinsten är utelämnad används triangelfönstret. Om b är omi tted används 1 sqrt längd x. Return Spencer s 15-punkts glidande medelvärde för varje kolumn av xpute kortvarig Fourier-transformen av vektorn x med numcoef-koefficienter genom att tillämpa ett fönster med vinnande datapunkter och en ökning av inkpoäng. Före beräknar Fourier-transformen används ett av följande fönster. Fönstnamnen kan överföras som strängar eller av wintypenummer. Följande standardvärden används för ospecificerade argument vinner 80, inkl 24, numcoef 64 och wintype 1.y stft X returnerar de absoluta värdena för Fourier-koefficienterna i enlighet med numcoef-positiva frekvenser. yc stft x returnerar hela STFT-matrisen y och en 3-elementvektor c som innehåller fönsterstorleken, inkrementet och fönstertypen, vilket behövs av syntesfunktionsputen en signal från dess kortvariga Fouriertransform y och ett 3-element vektor c specificerar fönsterstorlek, inkrement och fönstertyp. Värdena y och c kan härledas av. Fatta en AR p-modell med Yule-Walker uppskattningar ges en vektor c av autocovariances gamma0, gammap. Returnerar AR-koefficienterna, en och variansen av vitt brus, v. vektoriserat glidande medelvärde. y filter 1 10, 1, 10, 1, x. Detta förutsätter att värdena vid negativ tid x 0, x -1, etc är alla noll Så, till exempel, Det första värdet av y skulle vara x 1 10. På fredagen den 7 maj, 2010 klockan 3 33, skrev Tim Rueth gömt email jag tittade på både conv och filter men kan inte räkna ut hur man gör ett glidande medelvärde med dem Kanske Jag förstår inte funktionerna för input vars korrekt. Säg att jag har en matris, en rand 1100 Kan du berätta för mig hur jag använder conv och filtrerar till t ake, säg det 10-dagars glidande medlet, med en vikt på 0 5 .----- Original Meddelande ----- Från Andy Buckle mailto dold email skickat torsdag 6 maj 2010 12 06 Till dold email Cc dold email Ämne Re vektoriserad glidande genomsnittlig conv är också en m-fil, men den har bara ett fåtal ifs då kallar det filter för att få jobbet gjort vilket är en okt fil Andy den 6 maj 2010 klockan 6 28 AM, Tim Rueth dolda email skrev Vet någon hur man tar ett dagars viktat glidande medelvärde av en vektor utan att använda en för-loop Jag tittade på M-koden för movavg och den använder en för-loop så jag m guessar där förmodligen isn Tack för att du visade hur du använder filter för att göra ett enkelt glidande medelvärde. Jag implementerade koden och det överensstämmer med movavg x, 10,10,0, som beräknar ett 10-dagars enkelt glidande medelvärde. Det är bara en skillnad i de första 9 talen på grund av antagna värden för negativ tid movavg beräknar en run-i n period Som du kanske kommer ihåg, försöker jag använda filter för att undvika movavg s forloop. Nu, vad jag försöker göra är ett viktat glidande medelvärde, som är lika med alfaparametern för movavg När alfa 0 är det enkelt att flytta genomsnitt och håller med om filter Om jag ändrar alfa till 1 antar jag att få en linjär MA Här är koden i movavg m som gör vikten ledningen är antalet dagar till medelvärdet, lika med 10 i ovanstående fall. led 1 bly alfa Justera vikterna till lika med 1 bly lead sum lead. Så för en 10-dagars linjärt vägd rörlig genomsnittlig ledning 10, alfa 1 de föregående 9 dagarna och dagens dag bör viktas enligt följande 1 55, 2 55, 3 55 10 55, med största vikt 10 55 applicerad på den aktuella dagen Så, jag försökte ett enkelt testfall med bara en 2-dagars MA på en 6-element vektor. middagen 2 alfa 1 len 6 a rand 1 len. Beräkna MA genom att använda movavg ma movavg a, madays, madays, alfa. Beräkna MA genom att använda filter sopa 1 madays alpha normsweep sopsumma sopa f filter normsweep, 1, det är rörelser och filterresultat som liknar, men inte lika jag antar att jag inte har argumenten för filterkorrigering, men jag kan inte räkna ut vad Jag gjorde fel I synnerhet är jag inte säker på vad det andra argumentet för filteret är tänkt att göra Hjälp. Jag är inte säker på vad du menar med viktning av 0 5, men att göra ett enkelt 10-dagars genomsnitt, det är ett filter. 1 10 1, 10, 1, x. Detta förutsätter att värdena vid negativ tid x 0, x -1, etc är alla noll. Således skulle till exempel det första värdet av y vara x 1 10. På fredagen, maj 7, 2010 klockan 33, skrev Tim Rueth dold email, jag tittade på både conv och filter, men kan inte räkna ut hur man gör ett glidande medelvärde med dem. Kanske kan jag inte förstå funktionerna för inmatningen vars korrekt. Säg att Jag har en matris, en rand 1100 Kan du berätta för mig hur jag använder sammankoppling och filtrering för att ta, säg det 10-dagars glidande medlet, med en vikt av 0 5 .----- Original Meddelande ---- - Från Andy Buckle mailto dold email skickat torsdag 6 maj 2010 12 06 Till dold email Cc hidden email Ämne Re vectorized moving average conv är också en m-fil, men den har bara ett fåtal ifs då kallar det filter för att få jobbet Gjort vilket är en okt fil Andy den 6 maj 2010 klockan 6 28, Tim Rueth dold email skrev Vet någon hur man tar ett dagars viktat glidande medelvärde av en vektor utan att använda en för-loop jag tittade på M-kod för movavg och det använder en för-loop, så jag m gissar där förmodligen inte, men jag trodde att jag skulle kolla Thanks - Tim Help-oktavlistan dold email - andy buckle. Your filter code below works just Bra jämfört med vad jag hade gjort, förutom ett antal initiala dagar, på grund av vilka värden som antas under negativ tid som jag hade använt följande kod ndays är antalet dagar som ska användas vid beräkning av exponentiell glidande medelvärde av Datadata är en kolumnvektordata-repmatdata 1, ndays, 1 dataupprepningsdata 1 ndays gånger vid t han börjar med data för negativa tidsvärden alpha 2 ndays 1 n length data avg nollor n, 1 avg 1 data 1.Den ovanstående instruktionen är allt du behöver för att uppfinna tidigare minne för negativa värden. Du borde göra samma för filterfunktionen, men Jag kunde inte säga hur man gör det offhand. for jag 2 n ao avg i-1 avg i alfa data i - ao än trim av inlöningsperiod för negativa tidsvärden longma longma lmadays 1 end. I don t förstå ovanstående Instruktion Vad är longma. For små värden på ndays är antalet initiala dagar där det är avvikelse med din filterimplementering minimal, men för större värden av ndays växer antalet initiala dagar av avvikelse uppenbarligen på grund av karaktären av en exponentiell MA med långvarigt minne Obs, jag lägger till liknande negativa tidvärden på vektorens framsida när jag använder filter också. Jag är inte säker på vad som är konventionen när det gäller att beräkna exponentiella glidmedel för punkter i data där ndays når tillbaka till negativ tid Tack igen .-- Francesco Potort ricercatore Röst 39 050 315 3058 på 2111 ISTI - Area della ricerca CNR Fax 39 050 315 2040 via G Moruzzi 1, I-56124 Pisa Email dolda e-post entré 20, 1: a våningen, rum C71 Web Help-oktav E-postlista dold email. I kan inte kontrollera det just nu, men om jag minns rätt är det 4: e argumentet att filtrera initiala villkor. Så, om du vill att ditt första villkor ska vara det första värdet av data, tror jag att kommandot skulle vara. b alfa ett 1, alfa-1 s filter b, a, x, x 1. Det behöver bara vara ett element i det här fallet eftersom det enda initiala villkoret du behöver är s0.On den 13 maj 2010 kl 21 AM, Francesco Potort dold email skrev. Din filterkod nedan fungerar bara bra i jämförelse med vad jag hade gjort, förutom ett antal initiala dagar, på grund av vilka värden som antas under negativ tid som jag hade använt följande kod ndays är Antalet dagar som ska användas vid beräkning av exponentiellt rörligt medelvärde för datadata är en kolumnvektardata repmat data 1, ndays, 1 data upprepad data 1 ndays gånger i början av data för negativa tidsvärden alpha 2 ndays 1 n längd data avg nollor n, 1 avg 1 data 1.Denna instruktion är allt du behöver för att uppfinna tidigare minne För negativa värden Du borde göra samma för filterfunktionen, men jag kunde inte säga hur man gör det offhand. for jag 2 n ao avg i-1 avg i ao alfa data i - ao än trim av inlöningsperioden för negativ tidsvärden longma longma lmadays 1 end. I don t förstå ovanstående instruktion Vad är longma. For små värden på ndays är antalet initiala dagar där det är avvikelse med din filterimplementation minimal, men för större värden av ndays, numret of initial days of discrepancy grows obviously, due to the nature of an exponential MA having a long-tail memory Note, I add similar negative time values to the front of the vector when using filter as well I m just not sure what is the convention when it comes to calculating exponential moving averages for points in data where ndays reaches back into negative time Thanks again.-- Francesco Potort ricercatore Voice 39 050 315 3058 op 2111 ISTI - Area della ricerca CNR Fax 39 050 315 2040 via G Moruzzi 1, I-56124 Pisa Email hidden email entrance 20, 1st floor, room C71 Web. In reply to this post by Francesco Potort. The last instruction with longma should have read avg avg n 1 end which effectively trims off the computed values from negative time But, as you say, it looks like I didn t need to do this because the history is completely captured in avg 1 data 1 , so no need to compute a run-in time Thanks Francesco. Sherman had found that I can set the initial condition by specifying a 4th parameter in filter equal to the first data point I tried this, and got very similar but not quite exact results when compared to the for-loop below with no negative time values But this small difference dissipated within ndays and isn t a big deal Thanks Sherman. In summary, to calculate the exponential moving average of data for ndays , the following code. alpha 2 ndays 1 n length data avg zeros n,1 avg 1 data 1 for i 2 n ao avg i-1 avg i ao alpha data i - ao endfor. is close, but not quite equal to. alpha 2 ndays 1 avg filter alpha, 1 alpha-1 , data, data 1.for roughly the first ndays of avg.-----Original Message----- From Francesco Potort mailto hidden email Sent Wednesday, May 12, 2010 11 22 PM To hidden email Cc Octave-ML James Sherman Jr Subject Re vectorized moving average Your filter code below works just fine when compared to what I had been doing, except for a number of initial days, due to what values are assumed in negative time I had been using the following code ndays is the number of days to be used when computing the exponential moving average of data data is a column vector data repmat data 1 , ndays, 1 data repeat data 1 ndays times at the beginning of data for negative time values alpha 2 ndays 1 n length data avg zeros n,1 avg 1 data 1 The above instruc tion is all you need to invent past memory for negative values You should do the same for the filter function, but I could not say how to do it offhand for i 2 n ao avg i-1 avg i ao alpha data i - ao endfor trim off run-in period for negative time values longma longma lmadays 1 end I don t understand the above instruction What is longma For small values of ndays, the number of initial days where there s a discrepancy with your filter implementation is minimal, but for larger values of ndays, the number of initial days of discrepancy grows obviously, due to the nature of an exponential MA having a long-tail memory Note, I add similar negative time values to the front of the vector when using filter as well I m just not sure what is the convention when it comes to calculating exponential moving averages for points in data where ndays reaches back into negative time Thanks again -- Francesco Potort ricercatore Voice 39 050 315 3058 op 2111 ISTI - Area della ricerca CNR Fax 39 050 315 2 040 via G Moruzzi 1, I-56124 Pisa Email hidden email entrance 20, 1st floor, room C71 Web. So, this bugged me, so I looked a bit at the filter function, and I think I found where the mistake was in my initial suggestion The initial condition vector has to do with the internal states of the filter not the negative time outputs of the filter at least not directly , so to get what I think is exactly what your code with the for loop, the filter line should be. avg filter alpha, 1 alpha-1 , data, data 1 1-alpha. It is rather unintuitive why the 1-alpha term needs to be there, and I don t know if there s much interest in it, but it shouldn t be that hard probably I just need to crack open my signals and systems book to write a function to calculate the those initial conditions that the filter function expects just giving the outputs and inputs from negative time. On Thu, May 13, 2010 at 8 38 PM, Tim Rueth hidden email wrote The last instruction with longma should have read avg avg n 1 end which effectively trims off the computed values from negative time But, as you say, it looks like I didn t need to do this because the history is completely captured in avg 1 data 1 , so no need to compute a run-in time Thanks Francesco. Sherman had found that I can set the initial condition by specifying a 4th parameter in filter equal to the first data point I tried this, and got very similar but not quite exact results when compared to the for-loop below with no negative time values But this small difference dissipated within ndays and isn t a big deal Thanks Sherman. In summary, to calculate the exponential moving average of data for ndays , the following code. alpha 2 ndays 1 n length data avg zeros n,1 avg 1 data 1.for i 2 n ao avg i-1 avg i ao alpha data i - ao. is close, but not quite equal to. alpha 2 ndays 1 avg filter alpha, 1 alpha-1 , data, data 1.for roughly the first ndays of avg.-----Original Message----- From Francesco Potort mailto hidden email Sent Wednesday, May 12, 2010 11 22 PM To hidden email. Cc Octave-ML James Sherman Jr Subject Re vectorized moving average. Your filter code below works just fine when compared to what I had been doing, except for a number of initial days, due to what values are assumed in negative time I had been using the following code ndays is the number of days to be used when computing the exponential moving average of data data is a column vector data repmat data 1 , ndays, 1 data repeat data 1 ndays times at the beginning of data for negative time values alpha 2 ndays 1 n length data avg zeros n,1 avg 1 data 1 The above instruction is all you need to invent past memory for negative values You should do the same for the filter function, but I could not say how to do it offhand for i 2 n ao avg i-1 avg i ao alpha data i - ao endfor trim off run-in period for negative time values longma longma lmadays 1 end I don t understand the above instruction What is longma For small values of ndays, the number of initial days wh ere there s a discrepancy with your filter implementation is minimal, but for larger values of ndays, the number of initial days of discrepancy grows obviously, due to the nature of an exponential MA having a long-tail memory Note, I add similar negative time values to the front of the vector when using filter as well I m just not sure what is the convention when it comes to calculating exponential moving averages for points in data where ndays reaches back into negative time Thanks again -- Francesco Potort ricercatore Voice 39 050 315 3058 op 2111 ISTI - Area della ricerca CNR Fax 39 050 315 2040 via G Moruzzi 1, I-56124 Pisa Email hidden email entrance 20, 1st floor, room C71 Web. So, this bugged me, so I looked a bit at the filter function, and I think I found where the mistake was in my initial suggestion The initial condition vector has to do with the internal states of the filter not the negative time outputs of the filter at least not directly , so to get what I think is exactly what your code with the for loop, the filter line should be. avg filter alpha, 1 alpha-1 , data, data 1 1-alpha. It is rather unintuitive why the 1-alpha term needs to be there, and I don t know if there s much interest in it, but it shouldn t be that hard probably I just need to crack open my signals and systems book to write a function to calculate the those initial conditions that the filter function expects just giving the outputs and inputs from negative time. On Thu, May 13, 2010 at 8 38 PM, Tim Rueth hidden email wrote The last instruction with longma should have read avg avg n 1 end which effectively trims off the computed values from negative time But, as you say, it looks like I didn t need to do this because the history is completely captured in avg 1 data 1 , so no need to compute a run-in time Thanks Francesco. Sherman had found that I can set the initial condition by specifying a 4th parameter in filter equal to the first data point I tried this, and got very similar but no t quite exact results when compared to the for-loop below with no negative time values But this small difference dissipated within ndays and isn t a big deal Thanks Sherman. In summary, to calculate the exponential moving average of data for ndays , the following code. alpha 2 ndays 1 n length data avg zeros n,1 avg 1 data 1.for i 2 n ao avg i-1 avg i ao alpha data i - ao. is close, but not quite equal to. alpha 2 ndays 1 avg filter alpha, 1 alpha-1 , data, data 1.for roughly the first ndays of avg.

No comments:

Post a Comment