2d Mobile Media Matlab


Ho bisogno di calcolare una media mobile su una serie di dati, all'interno di un ciclo for. Devo ottenere la media mobile più giorni N9. La matrice Im computing è 4 serie di 365 valori (M), che a sua volta sono valori medi di un altro insieme di dati. Voglio tracciare i valori medi dei miei dati con la media mobile in una trama. Ho cercato su google un po 'di medie e il comando conv movimento e trovato qualcosa che ho cercato di esecuzione nel mio codice .: Quindi, fondamentalmente, computo mia media e tracciare con una (sbagliata) media mobile. Ho scelto il valore di WTS destra fuori del sito MathWorks, in modo che non è corretto. (Fonte: mathworks. nlhelpeconmoving-media-trend-estimation. html) Il mio problema, però, è che non capisco che cosa questo WTS. Qualcuno potrebbe spiegare se ha qualcosa a che fare con i pesi dei valori: che non è valido in questo caso. Tutti i valori sono ponderati lo stesso. E se sto facendo questo tutto sbagliato, potrei avere un aiuto con esso miei più sinceri ringraziamenti. chiesto 23 settembre 14 alle 19:05 Utilizzando 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 tale vettore deve essere sempre uguale a uno. Se si desidera peso ogni valore in modo uniforme e fare una dimensione N del filtro in movimento, allora si vorrebbe fare Utilizzando l'argomento valido in conv porterà ad avere un minor numero di valori in Ms di quello che hai in M. Usa stesso se non vi dispiace gli effetti della zero padding. Se hai la casella degli strumenti di elaborazione del segnale è possibile utilizzare cconv se si vuole provare una media circolare in movimento. Qualcosa di simile si dovrebbe leggere la documentazione conv e cconv Per ulteriori informazioni, se si hanno né ricontattato already. Created il Mercoledì 8 Ottobre 2008 20:04 Ultimo aggiornamento il Giovedi, 14 marzo 2013 01:29 Scritto da Batuhan Osmanoglu Hits: 41481 Media mobile in MATLAB spesso mi trovo bisogno di una media dei dati devo ridurre il rumore un po '. Ho scritto funzioni paio di fare esattamente quello che voglio, ma matlabs costruiti in funzione di filtro funziona piuttosto buona. scrivere qui Ill circa 1D e 2D media dei dati. Filtro 1D può essere realizzato utilizzando la funzione di filtro. La funzione di filtro richiede almeno tre parametri di ingresso: il coefficiente numeratore per il filtro (b), il coefficiente denominatore del filtro (a), ei dati (X) naturalmente. Un filtro media mobile può essere definito semplicemente: Per i dati 2D possiamo usare la funzione filtro2 Matlabs. Per ulteriori informazioni su come funziona il filtro, è possibile digitare: Ecco una implementazione veloce e sporco di un 16 da 16 spostando filtro a media. Per prima cosa dobbiamo definire il filtro. Dal momento che tutto quello che vogliamo è uguale contributo di tutti i vicini possiamo semplicemente usare la funzione di quelli. Dividiamo tutto con 256 (1616), in quanto noi non vogliamo cambiare il livello generale (ampiezza) del segnale. Per applicare il filtro possiamo semplicemente dire quanto segue Di seguito sono riportati i risultati della fase di un interferogramma SAR. In questo caso Range è in asse Y e Azimuth è mappato sull'asse X. Il filtro è stato di 4 pixel di larghezza in zona e 16 pixel di larghezza in Azimuth. Using 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 3 - Day media mobile dal basso verso l'alto della matrice. Ho fornito il mio codice: Dato il seguente matrice A e la maschera: ho 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: L'uscita che desidero è riportata nella seguente tabella: Se avete suggerimenti, sarei molto grato. Grazie per colonna 2 della matrice A, sto calcolando la media mobile di 3 giorni come segue e ponendo il risultato nella colonna 4 della matrice A (ho rinominato matrice A come 39desiredOutput39 solo per l'illustrazione). La media di 3 giorni del 17, 14, 11 è 14, la 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 di 8, 5, 2 è 5. ci sono alcun valore nel fondo 2 righe per la colonna 4 perché il calcolo ai 3 giorni in movimento iniziale media sul fondo. Il 39valid39 uscita non verrà mostrato almeno fino al 17, 14, e 11. Speriamo che questo ha un senso ndash Aaron 12 Giugno 13 a 01:28 In generale, sarebbe utile se si desidera mostrare l'errore. In questo caso si sta facendo due cose sbagliate: in primo luogo il tuo convoluzione deve essere diviso per tre (o la lunghezza della media mobile) In secondo luogo, nota la dimensione del c. Non si può semplicemente inserire c in una. Il modo tipico di ottenere una media mobile sarebbe quella di utilizzare lo stesso: ma quello non assomigliare a ciò che si desidera. Invece si è costretti a utilizzare un paio di righe: 29 settembre 2013 media mobile da circonvoluzione cosa si sta muovendo media e ciò che è bene per come si sta muovendo la media fatto usando convoluzione media mobile è una semplice operazione usata di solito per sopprimere il rumore di un segnale: abbiamo impostato il valore di ciascun punto alla media dei valori nelle sue vicinanze. Con formula: Qui x è l'ingresso ed y è il segnale di uscita, mentre la dimensione della finestra è w, dovrebbe essere dispari. La formula sopra descrive un'operazione simmetrica: i campioni vengono prelevati da entrambi i lati del punto reale. Di seguito è riportato un esempio di vita reale. Il punto in cui la finestra è definito in realtà è rosso. I valori al di fuori x dovrebbero essere zeri: Per giocare e vedere gli effetti di media mobile, dare un'occhiata a questa dimostrazione interattiva. Come fare per circonvoluzione Come avrete riconosciuto, calcolando la media mobile semplice è simile alla convoluzione: in entrambi i casi una finestra viene fatto scorrere lungo il segnale e gli elementi della finestra sono riassunti. Quindi, fare un tentativo per fare la stessa cosa utilizzando convoluzione. Utilizzare i seguenti parametri: l'output desiderato è: Come primo approccio, cerchiamo ciò che si ottiene convolvendo segnale x dal seguente kernel k: L'uscita è esattamente tre volte più grande del previsto. Esso può essere anche visto che i valori di uscita sono la sintesi dei tre elementi nella finestra. E 'perché durante convoluzione la finestra viene fatto scorrere lungo, tutti gli elementi in esso sono moltiplicati per uno e poi riassunti: YK 1 cdot x 1 x 1 cdot cdot x Per ottenere i valori desiderati di y. l'uscita deve essere diviso per 3: da una formula tra cui la divisione: Ma non sarebbe ottimale per fare la divisione durante la circonvoluzione Ecco che arriva l'idea riorganizzando l'equazione: Così useremo i seguenti kernel k: In questo modo ci sarà ottenere il risultato desiderato: In generale: se vogliamo fare media mobile da convoluzione avere una dimensione della finestra di w. Si usa il seguente kernel k: una semplice funzione facendo la media mobile è: Un esempio d'uso è il seguente:

Comments