Monday 18 September 2017

Moving Media Filtro Matlab Code


Ho bisogno di calcolare una media mobile su una serie di dati, all'interno di un ciclo for devo ottenere la media mobile su N 9 giorni La matrice I m di calcolo in è di 4 serie di 365 valori di M, che di per sé sono valori medi di un altro insieme di dati che voglio per tracciare i valori medi dei miei dati con la media mobile in una plot. I googled un po 'di medie e il comando conv movimento e trovato qualcosa che ho cercato di attuare nella mia code. So fondamentalmente, computo mia media e la trama con una media mobile sbagliato ho preso il valore wts destra fuori del sito MathWorks, così che è fonte non corretta mio problema, però, è che non capisco che cosa questo WTS è qualcuno potrebbe spiegare se ha qualcosa a che fare con i pesi del valori che non sono validi in questo caso Tutti i valori sono ponderati al same. And se sto facendo questo tutto sbagliato, ho potuto avere un aiuto con it. My sincera thanks. asked 23 14 settembre al 19 05.Using conv è un ottimo modo per implementare una media mobile Nel codice che si sta utilizzando, wts è quanto si sta pesando ogni valore come avete indovinato la somma di quel vettore deve essere sempre uguale a uno Se si desidera peso ogni valore in modo uniforme e fare un filtro di dimensione N in movimento poi si vorrebbe do. Using l'argomento valido in conv porterà ad avere un minor numero di valori in Ms di quanto fatto in M ​​usa stesso se don t mente gli effetti di riempimento pari a zero Se hai la casella degli strumenti di elaborazione del segnale si può usare se si cconv consiglia di provare un movimento Qualcosa media circolare like. You dovrebbe leggere la documentazione conv e cconv per ulteriori informazioni, se si rifugio t already. You possono utilizzare il filtro per trovare una media in esecuzione senza utilizzare un ciclo for questo esempio viene trovata la media in esecuzione di un 16 - element vettore, utilizzando una dimensione della finestra di 5,2 liscia come parte della curva Toolbox Fitting, che è disponibile nella maggior parte cases. yy lisciare y leviga i dati nella colonna vettore y utilizzando un media mobile filtrare i risultati vengono restituiti nel vettore colonna aa il arco di default per la media mobile è 5.UTILIZZO MATLAB, come posso trovare la media mobile di 3 giorni di una determinata colonna di una matrice e aggiungere la media mobile a quella matrice sto cercando di calcolare la media mobile di 3 giorni dal basso alla cima della matrice che ho fornito il mio code. Given la seguente matrice ae mask. I hanno provato l'attuazione del comando di conv ma sto ricevendo un errore Ecco il comando conv ho cercato di utilizzare al 2 ° colonna della matrice a. La uscita che desidero è riportata nella seguente matrix. If avete suggerimenti, sarei molto grato Grazie you. For colonna 2 della matrice a, sto calcolando la media mobile di 3 giorni come segue e ponendo il risultato nella colonna 4 di matrice a ho rinominato matrice a come desiredOutput solo per l'illustrazione la media di 3 giorni del 17, 14, 11 è 14 alla media di 3 giorni del 14, 11, 8 è 11 alla media di 3 giorni di 11, 8, 5 è 8 e la media di 3 giorni 8, 5, 2 è 5 non ci sono alcun valore nel fondo 2 righe per la colonna 4 perché il calcolo ai 3 giorni in movimento iniziale media in basso l'uscita valida non verrà mostrato almeno fino al 17, 14, e 11 Speriamo che questo ha un senso Aaron 12 giugno 13 a 1 28.In generale sarebbe utile se si desidera mostrare l'errore In questo caso si sta facendo due cose wrong. First tuo convoluzione deve essere diviso per tre o la lunghezza del average. Second in movimento, notare la dimensione del c È possibile c non solo in forma in un il modo tipico di ottenere una media mobile sarebbe quella di utilizzare same. but che doesn t sembrano quello che want. Instead sei costretti ad utilizzare un paio di lines. Download movAv m vedi anche movAv2 - una versione aggiornata che consente weighting. Description Matlab include funzioni chiamate movavg e tsmovavg serie temporale media mobile nella casella degli strumenti finanziari, movAv è stato progettato per replicare la funzionalità di base di questi il qui il codice fornisce un buon esempio di gestione di indici all'interno di cicli, che possono essere fonte di confusione per cominciare io ho volutamente mantenuto il codice breve e semplice per mantenere questo processo clear. movAv esegue una media mobile semplice che può essere utilizzato per recuperare i dati rumorosi in alcuni situazioni funziona prendendo un media dell'ingresso y sopra una finestra temporale scorrevole, la cui dimensione è specificata da n maggiore n è, maggiore è la quantità di arrotondamento l'effetto di n è relativo alla lunghezza del vettore di ingresso y ed efficacemente bene, sorta di crea un filtro passa-basso frequenza - vedere gli esempi e le considerazioni section. Because la quantità di smoothing fornite da ciascun valore di n è relativo alla lunghezza del vettore di ingresso, s sempre la pena testando valori diversi per vedere quello che s opportuno anche ricordare che n punti si perdono su ogni media se n è 100, i primi 99 punti del vettore di input don t contengono dati sufficienti per una media 100 pt Ciò può essere evitato un po 'per le medie di impilamento, per esempio, il codice e grafico sottostante confrontare una serie di diverse medie finestra lunghezza Notate come liscia 10 10pt è paragonato a una singola media 20pt in entrambi i casi 20 punti di dati sono persi in totale. Creare Xaxis x 1 0 01 5 Generare noiseReps rumore 4 rumore repmat randn 1, Numel ceil x noiseReps, noiseReps, 1 rumore rimodellare rumore, 1, noiseReps rumore lunghezza generare YData rumore y exp x 10 rumore 1 lunghezza media x perfrom y2 movAv y, 10 10 pt Y3 movAv Y2, 10 10 10 pt Y4 movAv y, 20 20 pt Y5 movAv y, 40 40 pt Y6 movAv y, 100 100 pt figura trama trama x, y, y2, y3, Y4, Y5, y6 leggenda raw dati, 10pt media mobile, 10 10pt, 20pt, 40pt, 100 pt xlabel x ylabel titolo y Confronto di movimento averages. movAv m codice funzione run-attraverso l'uscita movAv y, n la prima riga definisce il nome di funzione s, ingressi e uscite l'ingresso x dovrebbe essere un vettore di dati per eseguire la media su, n dovrebbe essere il numero di punti per eseguire la media di uscita conterrà i dati medi restituiti dalla funzione uscita Preallocare NaN 1, Numel y trovare il punto medio di n punto medio rotonda n 2 il lavoro principale della funzione avviene nel ciclo for, ma prima di iniziare due cose sono preparate in primo luogo l'uscita è pre-assegnati come NaNs, questo è servito due scopi Innanzitutto preallocazione è generalmente buona pratica in quanto riduce la memoria giocoleria Matlab ha fare, in secondo luogo, lo rende molto facile disporre i dati medi in un output della stessa dimensione del vettore di ingresso Questo significa la stessa xaxis può essere utilizzato successivamente per entrambi, che è conveniente per la stampa, in alternativa i NaNs può essere rimosso successivamente in una linea di uscita codice variabile output. The punto medio saranno utilizzati per allineare i dati del vettore di uscita Se n 10, 10 punti sarà perso perché, per i primi 9 punti del vettore di input, ci isn t dati sufficienti per prendere una media di 10 punti come l'uscita sarà più breve l'ingresso, ha bisogno di essere allineato correttamente punto centrale sarà utilizzato in modo una pari quantità di dati viene perso all'inizio e alla fine, e l'ingresso è mantenuta allineata con l'uscita dal NaN buffer creati quando preallocare output. for un 1 lunghezza y - n Trova gamma indice di prendere media oltre Abban Calcolare uscita media un punto medio significare yab finale nel ciclo for in sé, è preso un medio su ogni segmento consecutivo dell'ingresso il ciclo verrà eseguito una che è definita come 1 fino alla lunghezza dell'input y, meno i dati che verranno persi n Se l'ingresso è lungo 100 punti ed n è 10, il ciclo viene eseguito da un 1 ad 90.This significa fornisce il primo indice del segmento da mediare il secondo indice b è semplicemente un n-1 così alla prima iterazione, un 1 n 10 così b 11-1 10 il primo media viene determinata yab o x 1 10 la media di questo segmento, che è un singolo valore, viene memorizzato in uscita a indicizzare un punto medio o 1 5 6.On la seconda iterazione, a 2 b 2 10-1 11 così viene presa la media sul x 2 11 e memorizzato in uscita 7 Sulla ultima iterazione del ciclo per un ingresso di lunghezza 100, un 91 b 90 10-1 100 così la media viene rilevata x 91 100 e memorizzato in uscita 95 Questo lascia uscita con un totale di n 10 valori NaN all'indice 1 5 e 96 100.Examples e considerazioni medie mobili sono utili in alcune situazioni, ma non ri sempre la scelta migliore Ecco due esempi in cui non è necessariamente calibrazione optimal. Microphone Questo insieme di dati rappresenta i livelli di ogni frequenza prodotta da un altoparlante e registrato da un microfono con una risposta lineare nota l'uscita del diffusore varia con la frequenza, ma siamo in grado di correggere questa variazione con i dati di calibrazione - l'uscita può essere regolata in livello per tener conto delle fluttuazioni del calibration. Notice che le prime dati è rumoroso - questo significa che una piccola variazione di frequenza sembra richiedere una grande, irregolare, cambiamento nel livello di spiegare E` realistica O è un prodotto dell'ambiente di registrazione 's ragionevole in questo caso ad applicare una media mobile che leviga la curva di frequenza livello per fornire una curva di calibrazione che è leggermente meno irregolare Ma perché isn t questo ottimale in questi dati example. More sarebbe meglio - più calibrazioni piste media insieme distruggerebbe il rumore nel sistema finché s casuale e fornire una curva con meno sottile dettaglio perse la media mobile può approssimare solo questo, e potrà cancellare alcuni avvallamenti più alta frequenza e picchi della curva che veramente fanno le onde exist. Sine Uso di una media mobile su onde sinusoidali mette in evidenza due points. The questione generale di scegliere un numero ragionevole di punti per eseguire la media over. It s semplice, ma ci sono metodi più efficaci di analisi del segnale di una media di segnali oscillanti nel tempo domain. In questo grafico, l'onda sinusoidale originale è tracciata in blu rumore viene aggiunto e tracciata come curva arancione Una media mobile viene eseguita a diversi numeri di punti per vedere se l'onda originale può essere recuperato 5 e 10 punti di risultati ragionevoli, ma don t rimuovere il rumore del tutto, dove come un maggior numero di punti iniziano a perdere particolare ampiezza come media estende su diverse fasi ricordano le oscilates onda intorno allo zero, e significano -1 1 0.An approccio alternativo sarebbe quello di realizzare un filtro passa-basso che può essere applicato al segnale nel dominio della frequenza i m non andare andare nel dettaglio in quanto va oltre lo scopo di questo articolo, ma il rumore è frequenza nettamente superiore ai onde di frequenza fondamentale, sarebbe abbastanza facile in questo caso per costruire un filtro passa-basso che rimuove il rumore ad alta frequenza.

No comments:

Post a Comment