Moving Media Filtro Con Matlab


Scarica movAv. m (vedi anche movAv2 - una versione aggiornata che consente ponderazione) Descrizione 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 codice qui fornisce un bell'esempio di gestione di indici all'interno di cicli, che possono essere fonte di confusione per cominciare. Ive ha deliberatamente mantenuto il codice breve e semplice per mantenere questo processo chiaro. movAv esegue una media mobile semplice che può essere utilizzato per recuperare i dati rumorosi in alcune situazioni. Esso funziona prendendo una media dell'ingresso (y) su una finestra temporale scorrevole, la cui dimensione è specificato da n. La grande n è, maggiore è la quantità di arrotondamento l'effetto di n è relativo alla lunghezza del vettore d'ingresso y. ed efficace (beh, quasi) crea un filtro passa-basso frequenza - vedere la sezione esempi e considerazioni. Poiché la quantità di smoothing fornite da ciascun valore di n è relativo alla lunghezza del vettore di ingresso, le sue sempre valore collaudo valori diversi per vedere cosa appropriata. Ricordate, inoltre, che n punti si perdono su ogni media se n è 100, i primi 99 punti del vettore di input dont contenere dati sufficienti per una media 100 pt. Ciò può essere evitato un po 'per medie impilamento, per esempio, il codice e grafico seguente confronta diverse medie finestra lunghezza. Si noti come liscia 1010pt viene confrontato con un singolo media 20pt. In entrambi i casi 20 punti di dati vengono persi in totale. Creare Xaxis x1: 0,01: 5 Generare noiseReps rumore 4 repmat rumore (randn (1, ceil (Numel (x) noiseReps)), noiseReps, 1) rimodellare rumore (rumore, 1, la lunghezza (rumore) noiseReps) Genera YData yexp rumore ( x) 10noise (1: lunghezza (x)) perfrom medie: y2 movAv (y, 10) 10 pt Y3 movAv (Y2, 10) 1010 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, a6) leggenda (dati grezzi, 10pt media mobile, 1010pt, 20pt, 40pt, 100 pt) xlabel (x) ylabel ( y) titolo (Confronto di medie mobili) codice movAv. m funzione di uscita run-through movAv (y, n) La prima riga definisce le funzioni di nome, ingressi e uscite. L'ingresso x deve essere un vettore di dati per eseguire la media on, n dovrebbe essere il numero di punti per eseguire la media su uscita conterrà i dati medi restituiti dalla funzione. Uscita Preallocare outputNaN (1, Numel (y)) Trovare il punto medio di n punto medio rotondo (n2) Il principale lavoro della funzione avviene nel ciclo for, ma prima di iniziare due cose sono preparati. In primo luogo l'uscita viene pre-ripartito come NaNs, questo è servito due scopi. Innanzitutto preallocazione è generalmente buona pratica in quanto riduce il giocoleria memoria Matlab ha a che fare, in secondo luogo, lo rende molto facile disporre i dati medi in un output della stessa dimensione del vettore di ingresso. Questo significa che le stesse xaxis possono essere usati successivamente per entrambi, che è conveniente per la stampa, in alternativa i NaNs possono essere rimossi successivamente in una linea di codice (Uscita (La variabile punto medio viene utilizzato per allineare i dati del vettore di uscita. Se n 10, 10 punti saranno persi perché, per i primi 9 punti del vettore di input, c'è neanche dati sufficienti per prendere una media di 10 punti. Come l'uscita sarà più breve l'ingresso, ha bisogno di essere allineato correttamente. punto medio sarà essere usato così una pari quantità di dati viene perso all'inizio e alla fine, e l'ingresso è mantenuto allineato con l'uscita dai buffer NaN create quando preallocare uscita di 1:. lunghezza (y) - n Trova intervallo di indice di prendere media sopra (a: b) vietare Calcolare significa uscita (amidPoint) media (y (a: b)) fine nel ciclo for in sé, è preso un medio su ogni segmento consecutivo dell'ingresso il ciclo verrà eseguito per una che è.. definita come 1 fino alla lunghezza dell'ingresso (y), meno i dati che verranno persi (n). Se l'ingresso è lungo 100 punti ed n è 10, il ciclo viene eseguito da (a) da 1 a 90. Questa intende un fornisce il primo indice del segmento da mediare. Il secondo indice (b) è semplicemente un-1. Così alla prima iterazione, a1. n10. così b Ottobre 11-01. La prima media viene determinata per y (a: b). o x (1,10). La media di questo segmento, che è un singolo valore, viene memorizzato in uscita all'indice amidPoint. o 156. Nella seconda iterazione, a2. b 210-1 11. quindi la media è ripreso x (2,11) e conservato in uscita (7). L'ultima iterazione del ciclo per un ingresso di lunghezza 100, A91. b 9010-1 100 quindi la media è ripreso x (91: 100) e memorizzato in uscita (95). Questo lascia uscita con un totale di n (10) i valori NaN all'indice (1: 5) e (96: 100). Esempi e considerazioni medie mobili sono utili in alcune situazioni, ma theyre non sempre la scelta migliore. Ecco due esempi in cui non stanno necessariamente ottimali. calibrazione microfono Questo insieme di dati rappresenta i livelli di ogni frequenza prodotta da un altoparlante e registrato da un microfono con una risposta lineare noto. L'uscita del diffusore varia con la frequenza, ma può correggere questa variazione con i dati di calibrazione - l'uscita può essere regolata in livello per tener conto delle fluttuazioni calibrazione. Si noti che i dati grezzi è rumoroso - questo significa che una piccola variazione di frequenza sembra richiedere una grande, irregolare, cambiamento nel livello di spiegare. E 'realistico O è un prodotto dell'ambiente di registrazione sua ragionevole in questo caso ad applicare una media mobile che leviga la curva levelfrequency di fornire una curva di calibrazione che è leggermente meno irregolare. Ma perché isnt questo ottimale in questo esempio più dati sarebbero meglio - più calibrazioni piste media insieme avrebbe distrutto il rumore del sistema (fino a quando il suo caso) e di fornire una curva con meno sottile dettagli persi. La media mobile può approssimare solo questo, e potrà cancellare alcuni avvallamenti più alta frequenza e picchi dalla curva che realmente esistono. onde sinusoidali Uso di una media mobile su onde sinusoidali evidenzia due punti: la questione generale della scelta di un numero ragionevole di punti per eseguire la media. La sua semplice, ma ci sono metodi più efficaci di analisi dei segnali di media dei segnali oscillanti nel dominio del tempo. In questo grafico, l'onda sinusoidale originale è tracciata in blu. Il rumore è aggiunto e tracciata come la 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 non lo togliere il disturbo del tutto, dove, come un maggior numero di punti cominciano a perdere i dettagli di ampiezza come media si estende su diverse fasi (ricordate le oscilates onda intorno allo zero, e dire (-1 1) 0).Un approccio alternativo sarebbe quello di realizzare un filtro passa-basso che può essere applicato al segnale nel dominio della frequenza. Im non andando a entrare nei dettagli in quanto va oltre la portata di questo articolo, ma come il rumore è di frequenza notevolmente superiore alla onde frequenza fondamentale, sarebbe abbastanza facile, in questo caso per la costruzione di un filtro passa-basso che rimuoverà l'alta frequenza noise. Moving resultmovingmean media Function (dati, finestra, fioca, opzione) calcola una media mobile centrata dei dati di matrice dati utilizzando una dimensione della finestra specificata nella finestra nella dimensione fioca, utilizzando l'algoritmo specificato in opzione. Dim e l'opzione sono ingressi opzionali e sarà di default 1. Dim e opzionali ingressi opzionali possono essere saltati del tutto o si può sostituire con un. Per esempio movingmean (dati, finestra) darà gli stessi risultati come movingmean (dati, finestra, 1,1) o movingmean (dati, la finestra ,, 1). Ingresso dimensione della matrice dei dati e la dimensione è limitata solo dalla dimensione massima della matrice per la piattaforma. Finestra deve essere un numero intero e deve essere dispari. Se la finestra è anche in questo caso viene arrotondato al successivo numero più basso dispari. Funzione calcola la media mobile incorpora un punto centrale e (finestra-1) 2 elementi prima e dopo nella dimensione specificata. Ai bordi della matrice il numero di elementi prima o dopo vengono ridotti in modo che la dimensione effettiva finestra è inferiore alla finestra specificata. La funzione viene suddiviso in due parti, un algoritmo 1d-2d e un algoritmo 3d. Questo è stato fatto per ottimizzare la velocità soluzione, soprattutto in matrici più piccole (cioè 1000 x 1). Inoltre, diversi algoritmi differenti al problema 1D-2D e 3D sono forniti come in alcuni casi, l'algoritmo di default non è il più veloce. Questo accade in genere quando la matrice è molto ampia (cioè 100 x 100000 o 10 x 1000 x 1000) e la media mobile si sta calcolato nella dimensione più corta. La dimensione in cui l'algoritmo predefinito è più lenta dipenderà dal computer. MATLAB 7.8 (R2009a) tag per questo file il login per etichettare i file. Effettua il login per aggiungere un commento o valutazione. Commenti e voti (8) Le offerte funzione con le estremità di clipping la finale o portano parte della finestra e la transizione a un iniziale o finale media mobile invece di uno centrato. Per andare con l'esempio che ha dato nel tuo commento, se la dimensione della finestra è di 3 poi in un centro di 1 i dati di medie funzione ai punti 1 e 2 in un centro di 2 punti 1, 2, e 3 sono in media in un centro di 9 punti 8, 9, e 10 sono in media e in un centro di 10 (lascia supporre il vettore dispone di 10 voci) i punti 9 e 10 sono in media. Come gestisce movingmean con le estremità fa iniziare con una dimensione della finestra che comprende solo punto 1 a 1, poi 3 punti al punto 2, quindi aumentando di dimensioni della finestra fino a quando le dimensioni della finestra è quella specificata nella funzione di ingresso Grazie. Nizza e semplice. Grazie. Buon lavoro Molto utile, come ha detto Stephan Wolf. Proprio quello che mi è stato lookin per. media mobile centrata in grado di lavorare in una trama su tutta la larghezza, senza dover cercare dimensione di finestra del filtro e spostando l'inizio. Grande accelerando il ritmo di MathWorks di ingegneria e scienza è lo sviluppatore leader di software per il calcolo matematico per gli ingegneri e scientists. Moving media Filter (filtro MA) Caricamento in corso. Il filtro media mobile è un semplice filtro passa-basso FIR (Finite Impulse Response) comunemente usato per lisciare una serie di campionati datasignal. Prende M campioni di ingresso alla volta e prendere la media di questi M-campioni e produce un singolo punto di uscita. Si tratta di una struttura molto semplice LPF (Filtro passa basso), che viene portata di mano per gli scienziati e gli ingegneri di filtrare componente rumoroso indesiderati dai dati previsti. Come la lunghezza del filtro aumenta (il parametro M) la scorrevolezza degli aumenti di uscita, mentre le transizioni taglienti nei dati sono fatte sempre più smussato. Questo implica che il filtro ha un'eccellente risposta nel dominio del tempo, ma una risposta in frequenza scarsa. Il filtro MA svolgere tre funzioni importanti: 1) Ci vogliono punti di ingresso M, calcola la media di questi M-points e produce un unico punto di uscita 2) A causa delle computationcalculations coinvolti. il filtro introduce una quantità definita di ritardo 3) Il filtro agisce come un filtro passa basso (con scarsa risposta nel dominio di frequenza e una buona risposta nel dominio del tempo). Codice Matlab: A seguito di codice MATLAB simula la risposta nel dominio del tempo di un M-punto mobile filtro media e traccia anche la risposta in frequenza per varie lunghezze di filtro. Time Domain Risposta: Al primo trama, abbiamo l'ingresso che sta succedendo nel filtro media mobile. L'ingresso è rumoroso e l'obiettivo è di ridurre il rumore. La figura seguente è la risposta di uscita di un punto 3 Moving Average filtro. Si può dedurre dalla figura che il 3 punti Moving filtro media non ha fatto molto a filtrare il rumore. Aumentiamo i rubinetti filtro a 51 punti e possiamo vedere che il rumore in uscita è ridotta molto, che è rappresentato nella figura seguente. Aumentiamo i rubinetti ulteriormente a 101 e 501 e si può osservare che, anche-se il rumore è quasi zero, le transizioni siano smussati su drasticamente (osservare il pendio sulla lati del segnale e confrontarle con la transizione muro ideale il nostro ingresso). Risposta in frequenza: Dalla risposta in frequenza si può affermare che il roll-off è molto lento e l'attenuazione banda di arresto non è buona. Tenuto conto di questa banda di attenuazione di arresto, in modo chiaro, il filtro media mobile non può separare una banda di frequenze da un'altra. Come sappiamo che una buona prestazione nei risultati dominio del tempo in scarso rendimento nel dominio della frequenza, e viceversa. In breve, la media mobile è un eccezionale buon filtro smoothing (l'azione nel dominio del tempo), ma un filtro passa-basso eccezionalmente avverse (l'azione nel dominio della frequenza) Link esterni: Libri consigliati: Sidebar primaria

Comments