Non esattamente una media mobile, ma più come un filtro passa-basso: Considerate di avere gli ultimi 20 campioni aggiunti in una variabile, lo chiamano SUM. Si raggiunge quindi un nuovo campione, e si desidera aggiungere al SUM, ma prima è necessario sottrarre il valore più vecchio memorizzato in SUM. Non avete i precedenti 20 valori, quindi si assume che sia la media degli ultimi 20, che è, SUM20. In questo modo, la versione aggiornata del SUM con l'ultimo campione non sia: SUM lt - SUM - SUM20 NEWSAMPLE La pseudo significa sarà SUM20. Naturalmente, se si sceglie un valore diverso per n, per esempio N2K, la matematica coinvolti sarebbe più semplice e veloce: SUM lt - SUM - SUMgtgtk NEWSAMPLE Anche in questo caso, non si tratta di una media mobile, ma può benissimo soddisfare gli stessi requisiti . Il comportamento di questo la matematica è semplice: si attiva come un filtro passa-basso 1 polo. La risposta al gradino sarà una funzione esponenziale digitalizzato, e la costante di tempo è un po 'sotto nSAMPLETIME. Spero che questo aiuti, ----- Messaggio originale ----- Da: microcontrollori PIC lista di discussione mailto: PICLIST-HvpawkHQRZp23lw5opublic. gmane. org En nombre de Robert Mash Enviado el: Jueves, 18 de septiembre de 2003 17:09 Para : PICLIST-HvpawkHQRZp23lw5opublic. gmane. org Asunto: PIC in movimento filtro media esiste un modo per fare un campione n media mobile senza memorizzare n campioni che voglio fare una media mobile a 20 campioni. Ho bisogno di mettere da parte 20 locationsvariables per questo compito Esiste un modo impermeabile - suggerimento piclist: Per lasciare il PICList mailto: piclist-unsubscribe-request-XnYjCi86RQ8qNwGfFDJpublic. gmane. org - piclist suggerimento: Per lasciare il PICList mailto: piclist - unsubscribe-request-XnYjCi86RQ8qNwGfFDJpublic. gmane. org 2003-09-18 15:57:03 UTC Quello è una buona idea. Grazie ----- Messaggio originale ----- Da: Alvaro Deibe Diaz ltadeibe-5zoOUvexkpublic. gmane. orggt A: ltPICLIST-HvpawkHQRZp23lw5opublic. gmane. orggt Sent: Giovedi 18 settembre, 2003 11:44 Oggetto: Re: PIC movimento post filtro medio di Alvaro Diaz Deibe Considerate di avere gli ultimi 20 campioni aggiunti in una variabile, lo chiamano SUM. Si raggiunge quindi un nuovo campione, e si desidera aggiungere al SUM, ma prima è necessario sottrarre il valore più vecchio memorizzato in SUM. Non avete i precedenti 20 valori, quindi si assume che sia la media degli ultimi 20, che è, SUM20. In questo modo, la versione aggiornata del SUM con l'ultimo campione riassumerebbe SUM lt - - SUM20 NEWSAMPLE La pseudo significa sarà SUM20. Naturalmente, se si sceglie un valore diverso per n, per esempio N2K, la somma LT - SUM - SUMgtgtk NEWSAMPLE Anche in questo caso, non si tratta di una media mobile, ma può benissimo soddisfare gli stessi requisiti. Il comportamento di questo la matematica è semplice: si attiva come un filtro passa-basso 1 polo. La risposta al gradino sarà una funzione esponenziale digitalizzato, e la costante di tempo è un po 'sotto nSAMPLETIME. Spero che questo aiuti, Alvaro Deibe. ----- Messaggio originale ----- En nombre de Robert Mash Enviado el jueves:, 18 de septiembre de 2003 17:09 Asunto: PIC muovendo filtro media Esiste un modo per fare un campione n media mobile senza memorizzare n campioni che voglio fare una media mobile a 20 campioni. Ho bisogno di mettere da parte 20 locationsvariables per questo compito Esiste un modo impermeabile Robert Mash - suggerimento piclist: Per lasciare il PICList - suggerimento piclist: Per lasciare il PICList - suggerimento piclist: Per lasciare il PICList mailto: piclist-unsubscribe - request-XnYjCi86RQ8qNwGfFDJpublic. gmane. org 2003-09-18 16:22:53 UTC post by Robert Mash Questo è una buona idea. Grazie Ho fatto qualcosa di simile in AVR. Mi stavo 7200 letture di supporto al secondo, e avevo bisogno di una media di più di loro tanto quanto quattro secondi, con il minimo impatto di memoria, come avevo anche per adattarsi 20 buffer di serie nel mio ram. 28K di memoria non era un'opzione, ho dovuto farlo sui 512 byte di RAM interna. quello che ho fatto è stato implementare livelli di dati. 16 letture sono state sommate, poi ruotato, in modo da formare una voce secondo strato. a quel punto, i dati strato superiore viene scaricato. non appena sono disponibili, 16 voci secondo strato sono mescolati in un terzo strato e il secondo strato è dumping, e così via. quando il segnale è scomparso, quindi vorrei media qualsiasi dato era rimasto, e l'uscita di un singolo cuscinetto. la cosa più divertente è stato, ho avuto anche per convertirli da polare in formato rettangolare così ho potuto fare la media realisticamente. la media di tre cuscinetti sembra facile, 89,90,91 è ovviamente 90, ma provate 359,0,1. il risultato normale di 180 è ovviamente sbagliato. velocità era anche un problema. Nel frattempo, al ranch, otto porte seriali a 4800 baud full duplex sono interrompermi e la nona è in esecuzione a 115200, anche full duplex, e pacchettizzazione e de-packetizing dati IM tra i buffer. i 4800 UART baud erano max3100s parlare con me attraverso spi, in modo da aggiungere un altro paio di buffer per spi dentro e fuori, e gli interrupt associati. gli ultimi due buffer seriali erano per un canale di comando interno, che ho dovuto analizzare per il controllo del flusso, e le impostazioni della porta. ognuno dei canali seriali nove avevano xonxoff, o rtscts flusso di controllo pure. era una piccola macchina piuttosto impegnativa. - Piclist suggerimento: Per lasciare il PICList mailto: piclist-unsubscribe-request-XnYjCi86RQ8qNwGfFDJpublic. gmane. org 2003-09-18 16:05:42 UTC Ho fatto qualcosa di simile ad un programma di controllo del magazzino circa 20 anni fa. Ho pensato FIFO e LIFO costing era troppo complicato, così ho fatto una media ponderata. Ho memorizzato il numero a portata di mano e il costo. Quando i nuovi componenti sono arrivati, mi si avvicinò con un nuovo valore totale moltiplicando la quantità a disposizione dal costo attualmente nel record di inventario e aggiungendo la quantità stavo aggiungendo volte il nuovo costo. Questo ha dato un nuovo valore totale per le parti a portata di mano. Questo è stato poi diviso per il nuovo quanity (che si aggiunge quantità da record di inventario più quantità) per produrre il nuovo costo medio ponderato, che è stato poi rimesso nel record di inventario (insieme con la quantità aggiornata). Ogni record di inventario necessaria solo per portare la quantità a portata di mano e il costo. Tutto questo è stato scritto in dBase II e corse sotto CPM. Posso ancora correre sotto un emulatore di CPM su questa macchina Windoze. Regole FCC online a hallikainen La cosa migliore per colpire l'internet negli anni - Juno SpeedBand Surf web fino a cinque volte più veloce Solo 14,95 al mese - visita Juno a firmare oggi - suggerimento piclist: Per lasciare il PICList mailto: piclist-unsubscribe - request-XnYjCi86RQ8qNwGfFDJpublic. gmane. org Alvaro Deibe Diaz post di Matt Redmond Così, può yall raccomandare versioni decenti del 1. CA per PIC compilatore CCS ha un bel compilatore C per 100-150. Ha un sacco di funzioni di libreria e di esempi che potrebbero essere interessanti per voi come un principiante. Ancora più importante, hanno un forum di utenti molto attiva - così aiuto non è troppo lontano. Ci sono un sacco di membri PIClist che utilizzano le tecnologie CCS compilatore C troppo. Post di Matt Redmond 2. Un programmatore adatto per l'uso con una vasta gamma di PIC flash. Im parziale USB ma non è realmente necessario. Credo morsi parallele amp vorrebbe evitarlo. CCS ha anche una bella debugger USB (75), che programmare tutti i dispositivi PIC16F e PIC18F successive. Configurazione hardware per ICSP fin dall'inizio e sei a posto. Mi piace anche il software debugger molto meglio di microchip MPLAB. Se si desidera che un buon programmatore hardware che copre praticamente tutte le foto, Id consiglia programmatore Newfound Elettronica Warp13. Continuano fino a oggi meglio di Microchip fa con il proprio programmatore PICSTART più. Si può acquistare direttamente da loro o da una varietà di altre fonti online. Post di Matt Redmond 3. PIC software microchip simulatore MPLAB (gratuito) ha un simulatore di decente. La sua l'unica cosa che uso MPLAB per più, e raramente a questo. Post di Matt Redmond Id amore per essere in grado di fare il debugging in-circuit, ma credo che la sua realtà non è necessaria a meno che non ci sia qualche consenso sul fatto che si tratta. Vedere 2, sopra. -) Personalmente, non potevo fare a meno di un debugger in-circuit o emulatore. È appena cant simulare hardware mondo reale molto bene e ho trovato questo è dove la maggior parte della mia debug deve accadere - in cui il PIC incontra il vero messaggio mondo da Matt Redmond Questo è solo il mio hobby amplificatore roba io sono su un bilancio - non posso soffiare un migliaio di dollari su tutta questa roba. Non c'è bisogno di soffiare un sacco di soldi per buoni strumenti. Si dovrebbe essere in grado di fare ciò che si vuole molto bene per meno di 200-300. Matt Pobursky massima Performance Systems P. S. Non ho alcuna affiliazione con CCS, solo un cliente soddisfatto. - Piclist suggerimento: Per lasciare il mailto PICList: piclist-unsubscribe-request-XnYjCi86RQ8qNwGfFDJpublic. gmane. org Ciao Matt Redmond, Im nuovo a Pic troppo, Ive base in-circuit kit programmatore 16Fxxx (rendere la mia), non so quale progetto per avviare-on. you mi danno una buona idea per iniziare, possiamo condividere informazioni di questo progetto due cervelli meglio di uno, credo. anche se l'esperienza Ive con il progetto di elettronica, ma nessuna esperienza con PIC. ----- Messaggio originale ----- Da: lista di discussione microcontrollore PIC mailto: PICLIST-HvpawkHQRZp23lw5opublic. gmane. orgOn conto di Matt Redmond Inviato: Venerdì 19 settembre 2003 03:51 A: PICLIST-HvpawkHQRZp23lw5opublic. gmane. org Oggetto: PIC: appena agli inizi, hanno bisogno di consigli. Im ora solo pronti per iniziare a giocare con i PIC. La mia esperienza con l'elettronica è molto limitata, anche se capisco le basi. Sono generalmente interessato a fare quanto segue con PIC: interfacciamento un (3x4) tastierino numerico, controllo dei LED e LCD, la comunicazione con dispositivi esterni tramite RS232 e la comunicazione con un PC tramite IrDA. Quindi, si può raccomandare yall versioni decenti di quanto segue: 1. A C al PIC compilatore 2. Un programmatore adatto per l'uso con una vasta gamma di PIC flash. Im parziale USB ma non è realmente necessario. Credo morsi parallele amp vorrebbe evitarlo. 3. Un PIC simulatore Id amore per essere in grado di fare il debugging in-circuit, ma credo che la sua realtà non è necessaria a meno che non ci sia qualche consenso sul fatto che si tratta. Questo è solo il mio hobby amplificatore roba io sono su un bilancio - non posso essere soffia un migliaio di dollari su tutta questa roba. - Piclist suggerimento: Per lasciare il PICList mailto: piclist-unsubscribe-request-XnYjCi86RQ8qNwGfFDJpublic. gmane. org - piclist suggerimento: PICList Messaggi deve iniziare con un argomento: PIC:, SX:, AVR: - gtuP SOLO EE:, OT : - gtOther Buy:, aD: - gtAds messaggio da Matt Redmond 1. AC al compilatore PIC Prova Java - muvium post di Matt Redmond 2. un programmatore adatto per l'uso con una vasta gamma di PIC flash. Im parziale USB ma non è realmente necessario. Credo morsi parallele amp vorrebbe evitarlo. Dispositivi UVM hanno programmatore costruito in - non c'è bisogno di un programmatore post di Matt Redmond 3. PIC simulatore Prova tagliere virtuale. virtualbreadboard - Stick per la versione 1.2, per ora per l'apprendimento. La versione 2 ha sosterrà per muvium (eventualmente - sigh) post di Matt Redmond Id amore per essere in grado di fare il debugging in-circuit, ma credo che la sua realtà non è necessaria a meno che non ci sia qualche consenso sul fatto che si tratta. Bene il suo arrivo per muvium ma non ancora arrivato - debug remoto a Internet su Java Debug Infrastruttura. Usa il tuo Java Editor preferita per eseguire il debug .. Come nota. 1.0.7 con il supporto per i dispositivi 18F è tutto ma disponibile .. (scusate a coloro che sono già morti trattenendo il respiro) James Caska muvium UVM - Java Bred per Embedded ----- Messaggio originale ----- Da: pic lista microcontrollore discussione mailto: PICLIST-HvpawkHQRZp23lw5opublic. gmane. org per conto di CL Bassa Inviato: Venerdì, 19 settembre 2003 14:59 A: PICLIST-HvpawkHQRZp23lw5opublic. gmane. org Oggetto: Re: PIC: appena agli inizi, hanno bisogno di consigli. Ciao Matt Redmond, Im nuovo al PIC troppo, Ive base kit programmatore 16Fxxx in-circuit (fare il mio), non conosco quale progetto di start-on. you mi danno una buona idea per iniziare, possiamo condividere le informazioni per questa proiettare due cervelli meglio di uno, credo. anche se l'esperienza Ive con il progetto di elettronica, ma nessuna esperienza con PIC. ----- Messaggio originale ----- Da: lista di discussione microcontrollore PIC mailto: PICLIST-HvpawkHQRZp23lw5opublic. gmane. orgOn conto di Matt Redmond Inviato: Venerdì 19 settembre 2003 03:51 A: PICLIST-HvpawkHQRZp23lw5opublic. gmane. org Oggetto: PIC: appena agli inizi, hanno bisogno di consigli. Im ora solo pronti per iniziare a giocare con i PIC. La mia esperienza con l'elettronica è molto limitata, anche se capisco le basi. Sono generalmente interessato a fare quanto segue con PIC: interfacciamento un (3x4) tastierino numerico, controllo dei LED e LCD, la comunicazione con dispositivi esterni tramite RS232 e la comunicazione con un PC tramite IrDA. Quindi, si può raccomandare yall versioni decenti di quanto segue: 1. A C al PIC compilatore 2. Un programmatore adatto per l'uso con una vasta gamma di PIC flash. Im parziale USB ma non è realmente necessario. Credo morsi parallele amp vorrebbe evitarlo. 3. Un PIC simulatore Id amore per essere in grado di fare il debugging in-circuit, ma credo che la sua realtà non è necessaria a meno che non ci sia qualche consenso sul fatto che si tratta. Questo è solo il mio hobby amplificatore roba io sono su un bilancio - non posso essere soffia un migliaio di dollari su tutta questa roba. - Piclist suggerimento: Per lasciare il PICList mailto: piclist-unsubscribe-request-XnYjCi86RQ8qNwGfFDJpublic. gmane. org - piclist suggerimento: PICList Messaggi deve iniziare con un argomento: PIC:, SX:, AVR: - gtuP SOLO EE:, OT : - gtOther BUY:, AD: - gtAds - suggerimento piclist: pICList messaggi devono iniziare con un argomento: PIC:, SX:, AVR: - gtuP SOLO EE:, OT: BUY - gtOther:, AD: - gtAds Inviati: giovedi, 18 settembre, 2003 12:21 Oggetto: PIC: lo spostamento del filtro media esiste un modo per fare un campione n media mobile senza memorizzare n campioni che voglio fare una media mobile a 20 campioni. Ho bisogno di mettere da parte 20 locationsvariables per questo compito c'è un modo impermeabile Robert Mash Questo dipende da quanto attentamente si vuole approssimare lo standard medio media. Se si desidera una integrazione carro merci convenzionali, è necessario mantenere tutti i 20 valori precedenti in modo che è possibile sottrarre uno alla volta in ordine come vengono aggiunti nuovi termini. (Il nome Boxcar deriva dalla forma rettangolare della funzione finestra dovuto all'aggiunta di ogni termine con un fattore pari ponderazione.) Se si è disposti a implementare un filtro esponenziale (esattamente analogo a un filtro hardware RC), si può fare molto meglio . Da Z trasformata teoria, un filtro ricorsivo uno stadio può essere modellato come y (n) x (n) alpha y (n-1) y (n) è la corrente di uscita, x (n) è l'ingresso di corrente, y (n -1) è l'uscita precedente, e alfa è una costante che definisce l'intervallo di tempo durante il quale il filtro ricorda l'ingresso. Se ho pensato di questo diritto, alpha exp (- T tau) dove T è l'intervallo di tempo tra i campioni e tau è la costante di tempo effettivo desiderato. Ridimensionamento sarà bisogno di trovare una relazione tra tau e il 20 (o qualsiasi altra cosa è necessario il numero). Questo tipo di filtro sconti campioni precedenti col passare del tempo, rispetto al filtro medio (vagone) che tratta tutti i valori altrettanto destra fino a quando non cadere fuori. Esistono diverse limitazioni a questo filtro. 1. Si richiede in virgola mobile. 2. In entrambi i casi Alpha deve essere precalcolate, o la funzione esponenziale deve essere disponibile in fase di esecuzione. - Piclist suggerimento: PICList Messaggi deve iniziare con un argomento: PIC:, SX:, AVR: - gtuP SOLO EE:, OT: BUY - gtOther:, AD: - gtAds 2003/09/20 16:52:55 UTC Post da John N. Power Se siete disposti a implementare un filtro esponenziale (esattamente analogo a un filtro hardware RC), si può fare molto meglio. Da Z trasformare teoria, un filtro ricorsivo uno stadio può essere modellato come y (n) x (n) alpha y (n-1) Questo sicuramente non modella un filtro RC. Per prima cosa, si noti che si tratta di una serie infinitamente crescente anche con un ingresso costante e un Alpha maggiore di 0. Si svolge alcuna funzione di filtro utile che mi viene in mente. Come è stato discusso molte volte qui prima, il modo giusto per modellare un filtro RC è: FILT lt-- FILT ALPHA (NUOVO - FILT) Vedere gli archivi per molte discussioni dettagliate. Incorpora Inc, specialisti di sistemi embedded a Littleton Massachusetts (978) 742-9014, embedinc - suggerimento piclist: Il server di elenco può filtrare le sotto-argomenti (come gli annunci o off topic) per voi. Vedere piclisttopics 2003/10/16 18:55:37 UTC visto il tuo post. Ho bisogno di progettare la lettura del sensore ADXL202 g. Come sicuramente sapete ha grande rumoroso e un filtro, o un Avery esecuzione è critica. Non ho trovato la spiegazione riguardo l'equazione. PICLIST è giù. Potrebbe aiutare a trovare i dettagli per decidere il fattore di Paul Non vi è alcun motivo per cui questo doveva essere un messaggio privato a me. Il PICLIST non è mai giù lungo. I messaggi appena recuperati e l'attività guardo abbastanza continuo dall'ultima volta che ho recuperato. Il divario più lungo tra i messaggi era solo 40 minuti. Per quanto riguarda il filtro, che cosa dettaglio, quale fattore Incorpora Inc, specialisti di sistemi embedded a Littleton Massachusetts (978) 742-9014, embedinc - suggerimento piclist: Il PICList è archiviato tre modi diversi. Vedere piclistarchives per i dettagli. Jan-Erik Soderholm XA (TNPAC) 2003/09/20 09:38:21 UTC Post by John Ferrell Il 16F84 è fuori produzione Il 16F84 è. Il 16F84A non è. Doesnt davvero importa, non c'è motivo che cosa così mai a sviluppare nulla con nessuno dei due. - Piclist suggerimento: Il server di elenco può filtrare le sotto-argomenti (come gli annunci o off topic) per voi. Vedere piclisttopics 2003/09/20 19:58:28 UTC Post by John Ferrell Il 16F84 è fuori produzione post di John Ferrell Il 16F84 è. Il 16F84A non è. Post di John Ferrell Doesnt davvero importa, non c'è motivo che cosa così mai a sviluppare nulla con nessuno dei due. Jan-Erik sacco di progetti sul web, molto buoni prezzi nei negozi surplus, molti di loro gratuitamente da parte di persone che hanno solo 628, 877 e la serie 18F utilizzano, ecc -------------- ------------------- hai Yahoo Yahoo SiteBuilder - gratuito, facile da usare software web design del sito - suggerimento piclist: Il server di elenco può filtrare argomenti secondari (come annunci o argomenti off) per voi. Vedere piclisttopics 2003-09-22 18:29:59 UTC Che cosa mai. Guardate: finitesited3jsys16F628.html John Ferrell 6241 Phillippi Rd Julian NC 27283 Telefono: (336)685-9606 johnferrell-public. gmane. org Dixie Concorso Prodotti NSRCA 479 AMA 4190 W8CCW mia concorrenza non è il mio nemico - piclistnomail Andare in linea Dont AutoReply il email listserv-XnYjCi86RQ8qNwGfFDJpublic. gmane. org con sET PICList DIGEST nel corpo on Thu, 25 Settembre 2003 11:27:09 0800, CL basso ha scritto: :: qualche modo ho accidentalmente scaricato questa versione sul web, e tanto PIC :: BASIC LITE :: versione 7.1, ti dispiace vorrei sapere dove posso trovare un :: programmatore (hardware) :: supportcomparable curcuit con esso Im un nuovo hobby. :: :: Saluti cl basso qualsiasi programmatore pic sarà in grado di utilizzare il file hex prodotto da questo compilatore. Crownhill (le persone che fanno il compilatore base LET) stock anche una gamma di programmatori e schede di sviluppo. E prima di Wouter spara una e-mail - ha la Wisp628 che sarà anche lavorare con il file hex. Credo che uno dei programmatori Crownhills è simile al EPIC e se il loro IDE ha una opzione di programmazione allora questo potrebbe essere il programmatore che si aspetta. Vedere il loro sito per maggiori dettagli. PS. Non fate mai nulla per caso, molto più divertente da fare apposta :-) - CDB, bodgy1-sFbbPxZDHXw0npublic. gmane. org il 26.09.2003 Sono sempre stato un paio di dendriti brevi di un assone e credetemi si vede. La luce viaggia più veloce del suono. Ecco perché alcune persone sembrano luminoso fino a quando si parla - suggerimento piclist: Il server di elenco può filtrare le sotto-argomenti (come gli annunci o off topic) per voi. Vedere piclisttopics Jan-Erik Soderholm XA (TNPAC) 2003/09/20 20:05:04 UTC Riassunto: Una nuova versione di questo dispositivo è disponibile. Si prega di considerare PIC16F84A Ma lo sappiamo tutti, a destra ci sono persone che le unità vecchie automobili anche, solo per il gusto di farlo. Non mi occupo. - Piclist suggerimento: Il server di elenco può filtrare le sotto-argomenti (come gli annunci o off topic) per voi. Vedere piclisttopics 2003/09/20 20:15:58 UTC Post by Jan-Erik Soderholm XA (TNPAC) Una nuova versione di questo dispositivo è disponibile. Si prega di considerare PIC16F84A Ma noi tutti sappiamo questo, giusto che dire: STATO: in post produzione di Jan-Erik Soderholm XA (TNPAC) Ci sono persone l'unità vecchie automobili anche, solo per il gusto di farlo. Non mi occupo. Nemmeno io, ma io non dicono essi non esiste perché io guido una nuova --------------------------------- fare Yahoo Yahoo SiteBuilder - gratuito, software di progettazione sito facile da usare web - suggerimento piclist: Il server di elenco può filtrare le sotto-argomenti (come gli annunci o off topic) per voi. Vedere piclisttopics 2003/09/21 21:10:54 UTC Post by Robert Mash C'è un modo per fare un campione n media mobile senza memorizzare n campioni che voglio fare una media mobile a 20 campioni. Ho bisogno di mettere da parte 20 locationsvariables per questo compito Esiste un modo impermeabile Robert Mash Se siete disposti a implementare un filtro esponenziale (esattamente analogo a un filtro hardware RC), si può fare molto meglio. Da Z trasformare la teoria, un filtro ricorsivo uno stadio può essere modellato come y (n) x (n) alfa y (n-1) Credo di aver fatto un errore nella normalizzazione di questa formula. Dovrebbe essere y (n) (1 - alfa) x (n) alpha y (n-1) - suggerimento piclist: Il PICList è archiviata tre modi diversi. Vedere piclistarchives per i dettagli. 2003/09/21 22:08:48 UTC Post by John N. Potenza Credo di aver fatto un errore nella normalizzazione di questa formula. Dovrebbe essere y (n) (1 - alfa) x (n) alpha y (n-1) Sì questo correttamente modelli un semplice filtro RC, anche se la sua generalmente il modo youd desidera implementare un tale filtro su un PIC. Incorpora Inc, specialisti di sistemi embedded a Littleton Massachusetts (978) 742-9014, embedinc - suggerimento piclist: Il PICList è archiviato tre modi diversi. Vedere piclistarchives per i dettagli. Robert Mash 2003-09-18 15:09:05 UTC Alvaro Deibe Diaz 2003-09-18 15:44:51 UTC Robert Mash 2003-09-18 15:57:03 UTC David VanHorn 2003-09-18 16:22 : 53 UTC Harold Hallikainen 2003-09-18 16:05:42 UTC Alvaro Deibe Diaz 2003-09-18 17:11:58 UTC Robert Mash 2003-09-18 16:21:29 UTC Olin Lathrop 2003-09-18 17:03:49 UTC Duane 2003-09-18 17:49:24 UTC Olin Lathrop 2003-09-18 18:03:21 UTC Picdude 2003-09-18 18:05:57 UTC Picdude 2003-09-18 20 : 09: 09 UTC Dan Devine 2003-09-18 18:29:50 UTC Duane 2003-09-18 20:11:34 UTC Olin Lathrop 2003-09-18 22:05:00 UTC Wouter van Ooijen 2003-09- 18 19:00:39 UTC Matt Redmond 2003-09-18 19:51:27 UTC Wouter van Ooijen 2003-09-18 20:20:14 UTC Matt Pobursky 2003-09-18 21:04:38 UTC Olin Lathrop 2003 -09-18 22:13:39 UTC Matt Pobursky 2003-09-19 01:30:28 UTC Charles Rogers 2003-09-18 21:50:51 UTC CL Bassa 2003-09-19 04:58:36 UTC James Caska 2003-09-19 05:55:07 UTC John Ferrell 2003-09-19 20:04:04 UTC Bob Blick 2003-09-19 18:50:46 UTC CL Low 2003/09/20 04:46:24 UTC Vincent Vega 2003-09-19 21:05:59 UTC Harold Hallikainen 2003-09-18 17:40:46 UTC mer Yalhi 2003-09-19 05:48:53 UTC John N. Potenza 2003-09-19 20 : 08: 15 UTC Olin Lathrop 2003/09/20 16:52:55 UTC Olin Lathrop 2003/10/16 18:55:37 UTC Jan-Erik Soderholm XA (TNPAC) 2003/09/20 09:38:21 UTC Vincent Vega 2003/09/20 19:58:28 UTC John Ferrell 2003-09-22 18:29:59 UTC CL bassa 2003/09/25 03:27:09 UTC CL Bassa 2003/09/25 04:17: 37 UTC CDB 2003-09-26 02:01:51 UTC Jan-Erik Soderholm XA (TNPAC) 2003/09/20 20:05:04 UTC Vincent Vega 2003/09/20 20:15:58 UTC John N. Potenza 2003/09/21 21:10:54 UTC Olin Lathrop 2003-09-21 22:08:48 UTCAs altri hanno detto, si dovrebbe considerare un IIR (risposta all'impulso infinita) filtrare piuttosto che la FIR (risposta all'impulso finita) filtro stanno usando ora. C'è di più ad esso, ma a prima vista filtri FIR sono implementate come circonvoluzioni espliciti e IIR filtri con le equazioni. La particolare filtro IIR io uso molto in microcontrollori è un filtro passa basso unipolare. Questo è l'equivalente digitale di un semplice filtro analogico R-C. Per la maggior parte delle applicazioni, questi avranno caratteristiche migliori rispetto al filtro di dialogo che si sta utilizzando. La maggior parte usi di un filtro scatola che ho incontrato sono il risultato di qualcuno non prestare attenzione in classe elaborazione del segnale digitale, non come risultato di dover loro caratteristiche particolari. Se si desidera solo per attenuare le alte frequenze che si sa essere il rumore, un filtro passa basso unipolare è meglio. Il modo migliore per attuare una digitalmente in un microcontrollore è di solito: FILT lt-- FILT FF (NUOVO - FILT) FILT è un pezzo di stato persistente. Questa è l'unica variabile persistente è necessario calcolare questo filtro. NEW è il nuovo valore che il filtro viene aggiornato con questa iterazione. FF è la frazione filtro. che regola la pesantezza del filtro. Guardate questo algoritmo e vedere che per FF 0 il filtro è infinitamente pesante dal momento che l'uscita non cambia mai. Per 1 FF, la sua realtà nessun filtro del tutto poiché l'uscita segue solo l'ingresso. I valori utili sono in mezzo. Su piccoli sistemi si sceglie FF per essere 12 N in modo che il moltiplicare per FF può essere realizzato come uno spostamento a destra di n bit. Ad esempio, potrebbe essere FF 116 e moltiplicare per FF pertanto uno shift verso destra di 4 bit. In caso contrario, questo filtro necessita di un solo sottrarre e uno aggiuntivo, anche se i numeri di solito bisogno di essere più ampio rispetto al valore di ingresso (più precisione numerica in una sezione separata di seguito). Di solito prendo letture AD significativamente più veloce di quanto non sono necessari e applicare due di questi filtri in cascata. Questo è l'equivalente digitale di due filtri R-C in serie, e attenua del 12 dBoctave sopra la frequenza rolloff. Tuttavia, per AD letture elencate relativo solitamente più pertinenti a guardare il filtro nel dominio del tempo, considerando la sua risposta al gradino. Questo ti dice quanto velocemente il sistema vedrà un cambiamento quando la cosa si sta misurando i cambiamenti. Per facilitare la progettazione di questi filtri (il che significa che solo la raccolta di FF e decidere come molti di loro a cascata), io uso il mio FILTBITS programma. Si specifica il numero di bit per ogni turno FF nella serie cascata di filtri, e si calcola la risposta al gradino e altri valori. A dire il vero io di solito eseguire questo tramite il mio script wrapper PLOTFILT. Questo viene eseguito FILTBITS, il che rende un file CSV, quindi traccia il file CSV. Ad esempio, qui è il risultato di PLOTFILT 4 4: I due parametri PLOTFILT significa che ci saranno due filtri in cascata del tipo sopra descritto. I valori di 4 indicano il numero di bit di spostamento per realizzare il moltiplicare per FF. I due valori FF sono quindi 116 in questo caso. La traccia rossa è la risposta al gradino unità, ed è la cosa più importante da guardare. Ad esempio, questo indica che se l'ingresso cambia istantaneamente, l'uscita del filtro combinato si depositerà a 90 del nuovo valore in 60 iterazioni. Se avete a cuore il 95 tempo di assestamento, allora si deve attendere circa 73 iterazioni, e per il 50 tempo di assestamento solo 26 iterazioni. La traccia verde mostra l'output da un unico picco di massima ampiezza. Questo vi dà un'idea della soppressione del rumore casuale. Sembra che nessun singolo campione causerà più di un cambiamento di 2,5 in uscita. La traccia blu è quello di dare una sensazione soggettiva di ciò che questo filtro fa con rumore bianco. Questo non è un test severo, in quanto non vi è alcuna garanzia che cosa esattamente il contenuto era dei numeri casuali raccolti come ingresso rumore bianco per questa esecuzione di PLOTFILT. Il suo solo per dare una sensazione di massima di quanto verrà schiacciata e come liscia che è. PLOTFILT, forse FILTBITS, e un sacco di altra roba utile, in particolare per lo sviluppo del firmware PIC è disponibile nella versione software Strumenti di sviluppo PIC alla mia pagina di download del software. Aggiunta di informazioni di precisione numerica Vedo dai commenti e ora una nuova risposta che non vi è interesse a discutere il numero di bit necessari per implementare questo filtro. Si noti che il moltiplicare per FF creerà Log 2 (FF) nuovi bit al di sotto del punto di binario. Su piccoli sistemi, FF è generalmente scelto per essere 12 N in modo che questo si moltiplicano sia effettivamente realizzato da uno shift verso destra di N bits. FILT è quindi di solito un intero punto fisso. Si noti che questo doesnt cambia i matematica dal punto di vista processori. Ad esempio, se si sta filtrando 10 letture AD bit e N 4 (116 FF), allora avete bisogno di 4 bit di frazione sotto le letture intero AD 10 bit. Un maggior parte dei processori, youd essere facendo 16 operazioni po interi a causa delle letture AD 10 bit. In questo caso, si può ancora fare esattamente le stesse 16 opertions bit integer, ma iniziare con le letture AD sinistra spostato da 4 bit. Il processore non sa la differenza e non ha bisogno di. Facendo due conti su interi numeri interi a 16 bit funziona se si considera che siano 12,4 punto fisso o veri e propri 16 numeri interi bit (16.0 punto fisso). In generale, è necessario aggiungere N bit ciascuno dei poli filtro se non volete aggiungere rumore dovuto alla rappresentazione numerica. Nell'esempio precedente, il secondo filtro di due dovrebbe avere 1044 18 bit per non perdere informazioni. In pratica su un computer a 8 bit che significa valori bit uso 24 youd. Tecnicamente solo il secondo polo di due avrebbe bisogno il valore più ampio, ma per semplicità firmware solito utilizzare la stessa rappresentazione, e quindi lo stesso codice, per tutti i poli di un filtro. Di solito scrivo una subroutine o una macro per eseguire una sola operazione pole filtro, quindi applicare che per ogni polo. Se una subroutine o una macro dipende dal fatto che i cicli o memoria di programma sono più importanti in quel particolare progetto. Ad ogni modo, io uso uno stato zero per passare di nuovo nel subroutinemacro, che aggiorna FILT, ma anche carica che nello stesso stato zero NUOVO era in. Ciò lo rende facile da applicare poli multipli in quanto la FILT aggiornata di un polo è il nuovo di quello successivo. Quando una subroutine, il suo utile avere un punto puntatore FILT sul modo in, che viene aggiornato solo dopo FILT sull'uscita. In questo modo la subroutine funziona automaticamente su filtri consecutivi in memoria se chiamato più volte. Con una macro non avete bisogno di un puntatore da quando si passa l'indirizzo di operare su ogni iterazione. Esempi di codice Ecco un esempio di una macro come descritto sopra per un PIC 18: E qui è una macro simile per un PIC 24 o dsPIC 30 o 33: Entrambi questi esempi sono implementate come macro utilizzando il mio PIC assemblatore preprocessore. che è più capace di una delle strutture macro incorporati. clabacchio: Un altro problema Avrei detto è l'attuazione del firmware. È possibile scrivere un unico polo passa-basso filtro subroutine una volta, poi applicarlo più volte. Infatti solito scrivere un tale subroutine per prendere un puntatore nella memoria allo stato del filtro, quindi l'ho avanzare il puntatore in modo che possa essere chiamato in successione facilmente realizzare filtri multipolari. ndash Olin Lathrop 20 aprile 12 al 15:03 1. Grazie mille per le vostre risposte - tutti loro. Ho deciso di usare questo filtro IIR, ma questo filtro non viene utilizzato come un filtro standard LowPass, dal momento che ho bisogno di valori medi del contatore e confrontarli per rilevare i cambiamenti in un certo intervallo. Poiché questi valori van essere di dimensioni molto diverse a seconda dell'hardware ho voluto prendere una media in modo da essere in grado di reagire a questi cambiamenti specifici hardware automaticamente. ndash sensslen 21 12 maggio alle 12:06 Se si può vivere con la restrizione di una potenza di due serie di elementi di media (cioè 2,4,8,16,32, ecc), allora il divario può facilmente ed efficacemente essere fatto su una bassa micro prestazioni senza divide dedicato perché può essere fatto come un bit di scorrimento. Ogni spostamento è giusta potenza di due ad esempio: Il PO pensava di avere due problemi, che divide in un PIC16 e memoria per il suo buffer circolare. Questa risposta dimostra che la divisione non è difficile. Bisogna ammettere che non affronta il problema di memoria, ma il sistema SE permette risposte parziali, e gli utenti possono prendere qualcosa da ogni risposta per se stessi, o anche modificare e combinare le risposte other39s. Poiché alcune delle altre risposte richiedono un'operazione di divisione, sono analogamente incomplete poiché non mostrano come ottenere in modo efficiente questo su un PIC16. ndash Martin 20 aprile 12 alle 13:01 C'è una risposta per un vero e proprio filtro a media mobile (aka filtro Boxcar) con requisiti di memoria meno, se non vi dispiace downsampling. La sua chiamata un filtro in cascata integratore-pettine (CIC). L'idea è che si dispone di un integratore che si prende le differenze di un periodo di tempo, e il dispositivo di memoria di risparmio chiave è che da downsampling, non dovete memorizzare ogni valore dell'integratore. Può essere implementato utilizzando il seguente pseudocodice: La lunghezza effettiva media mobile è decimationFactorstatesize ma avete solo bisogno di mantenere intorno campioni statesize. Ovviamente è possibile ottenere prestazioni migliori se il statesize e decimationFactor sono potenze di 2, in modo che gli operatori di divisione e resto vengono sostituiti da spostamenti e la maschera-ands. Poscritto: Sono d'accordo con Olin che si dovrebbe sempre prendere in considerazione semplici filtri IIR prima di un filtro a media mobile. Se non avete bisogno le frequenze-null di un filtro vagone, un 1-palo o filtro passa-basso a 2 poli probabilmente funzionerà bene. D'altra parte, se si sta filtrando ai fini della decimazione (prendendo un ingresso ad alta frequenza di campionamento e una media per l'utilizzo da parte di un processo a bassa frequenza), poi un filtro CIC può essere solo quello che stai cercando. (Soprattutto se è possibile utilizzare statesize1 ed evitare il ringbuffer tutto con un singolo valore integratore precedente) Theres alcune analisi approfondita della matematica dietro utilizzando il filtro IIR del primo ordine che Olin Lathrop ha già descritto sopra sullo scambio pila Digital Signal Processing (comprende un sacco di belle immagini.) l'equazione per questo filtro IIR è: Ciò può essere implementato usando solo numeri interi e nessuna divisione utilizzando il seguente codice (potrebbe essere necessario un po 'di debugging come stavo scrivendo a memoria.) questo filtro si avvicina una media mobile di gli ultimi campioni K impostando il valore di alfa a 1K. Fate questo in codice precedente da definire BITS ing a LOG2 (K), vale a dire per K 16 bit impostati a 4, per K 4 bit impostati a 2, etc. (Ill verificare il codice elencato qui, non appena ho un cambiamento e modificare questa risposta, se necessario.) ha risposto 23 giugno 12 a 4:04 Heres un filtro passa-basso unipolare (media mobile, con cutoff CutoffFrequency frequenza). Molto semplice, molto veloce, grandi opere, e quasi nessun overhead di memoria. Nota: Tutte le variabili hanno portata al di là della funzione di filtro, ad eccezione del passato in newInput Nota: Si tratta di un unico filtro palco. stadi multipli possono essere collegati in cascata insieme per aumentare la nitidezza del filtro. Se si utilizza più di una fase, youll hanno per regolare DecayFactor (come si riferisce al taglio-Frequency) per compensare. E, ovviamente, tutto ciò che serve è quelle due righe posizionati ovunque, Non hanno bisogno la propria funzione. Questo filtro ha un tempo di accelerazione prima della media mobile rappresenta quella del segnale di ingresso. Se avete bisogno di ignorare che il tempo di ramp-up, si può solo inizializzare media mobile per il primo valore di newInput invece di 0, e la speranza il primo newInput è neanche un outlier. (CutoffFrequencySampleRate) ha una gamma compresa tra 0 e 0,5. DecayFactor è un valore compreso tra 0 e 1, di solito vicino a 1. carri singola precisione sono abbastanza buono per la maggior parte delle cose, ho appena preferisco doppie. Se avete bisogno di attaccare con numeri interi, è possibile convertire DecayFactor e ampiezza Factor in numeri interi frazionari, in cui il numeratore viene memorizzato come il numero intero, e il denominatore è una potenza intera di 2 (in modo da poter bit-shift a destra come la denominatore piuttosto che dover dividere durante il loop filtro). Per esempio, se DecayFactor 0.99, e si desidera utilizzare gli interi, è possibile impostare DecayFactor 0,99 65536 64881. E poi ogni volta che si moltiplica per DecayFactor nel loop filtro, semplicemente spostare il risultato 16. Per ulteriori informazioni su questo, questo è un ottimo libro on-line, il capitolo 19 sui filtri ricorsivi: dspguidech19.htm PS Per la movimentazione di paradigma media, un approccio diverso per impostazione DecayFactor e AmplitudeFactor che può essere più rilevante per le vostre esigenze, permette di dire si desidera che i precedenti, circa 6 articoli in media insieme, facendo in modo discreto, youd aggiungere 6 articoli e dividere per 6, in modo da è possibile impostare il AmplitudeFactor a 16, e DecayFactor di (1,0 - AmplitudeFactor). risposto 14 maggio 12 in 22:55 tutti gli altri hanno commentato a fondo l'utilità di IIR contro FIR, e sulla divisione di potere-di-due. Id proprio come a dare alcuni dettagli di implementazione. Il sotto funziona bene su piccoli microcontrollori senza FPU. Theres nessuna moltiplicazione, e se si mantiene N una potenza di due, tutta la divisione è a ciclo unico bit-shifting. tampone base anello FIR: tenere un tampone di corsa degli ultimi valori di N, e una somma parziale di tutti i valori nel buffer. Ogni volta che un nuovo campione entra, sottrarre il valore più vecchio nel buffer da SUM, sostituirlo con il nuovo campione, aggiungere il nuovo campione di SUM, e SUMN uscita. Modificato buffer circolare IIR: mantenere una somma parziale degli ultimi N valori. Ogni volta che un nuovo campione entra, SUM - SUMN, aggiungere il nuovo campione, e SUMN uscita. risposto 28 ago 13 ad 13:45 Se I39m voi leggendo a destra, you39re descrivendo un primo ordine IIR filtro del valore you39re sottraendo isn39t il valore più vecchio che sta cadendo fuori, ma è invece la media dei valori precedenti. Primo ordine filtri IIR può certamente essere utile, ma non è sicuro I39m cosa si intende quando si suggerisce che l'uscita è la stessa per tutti i segnali periodici. Ad una frequenza di campionamento 10KHz, alimentando un'onda quadra a 100Hz in una scatola filtro 20 stadi produrrà un segnale che aumenta uniformemente per 20 campioni, si trova in alto per 30 gocce uniformemente per 20 campioni, e si siede basso per 30. Un primo ordine filtro IIR. ndash Supercat 28 ago 13 ad 15:31 produrrà un'onda che inizia forte aumento e gradualmente i livelli in prossimità di (ma non a) la massima di ingresso, poi inizia a cadere bruscamente e gradualmente i livelli in prossimità di (ma non a) il minimo di ingresso. comportamento molto diverso. ndash Supercat 28 13 agosto a 15:32 Un problema è che una media mobile semplice può o non può essere utile. Con un filtro IIR, è possibile ottenere un bel filtro con relativamente pochi calcs. La FIR si descrive può solo dare un rettangolo nel tempo - un sinc in freq - e si can39t gestire i lobi laterali. Essa può essere valsa la pena di gettare in un paio di moltiplica interi per rendere un bel FIR sintonizzabile simmetrica se si può risparmiare l'orologio zecche. ndash Scott Seidman 29 agosto 13 alle 13:50 ScottSeidman: Non c'è bisogno di moltiplica se uno ha semplicemente ogni fase della FIR sia uscita la media dell'ingresso a quella fase e il suo valore memorizzato precedente, e quindi memorizzare l'ingresso (se uno ha l'intervallo numerico, si potrebbe utilizzare la somma invece di media). Sia that39s meglio di un filtro box dipende dalla applicazione (la risposta di un filtro scatola con un ritardo totale di 1 ms, per esempio, avrà un picco d2dt entrata quando il cambiamento di ingresso, e di nuovo 1ms tardi, ma avrà la minima possibile ddt per un filtro con un totale di ritardo 1 ms). ndash Supercat 29 ago 13 ad 15:25 Come ha detto mikeselectricstuff, se si ha realmente bisogno di ridurre le esigenze di memoria, e non vi dispiace la vostra risposta all'impulso essere un esponenziale (invece di un impulso rettangolare), vorrei andare per un filtro di media mobile esponenziale . Li uso estensivo. Con questo tipo di filtro, non avete bisogno di alcun tampone. Non dovete memorizzare i campioni N passato. Solo uno. Quindi, i tuoi requisiti di memoria vengono abbattuti di un fattore di N. Inoltre, non avete bisogno di alcuna divisione per questo. Solo moltiplicazioni. Se si ha accesso a virgola mobile, utilizzare moltiplicazioni in virgola mobile. In caso contrario, fare moltiplicazioni interi e turni a destra. Tuttavia, siamo nel 2012, e vi consigliamo di usare compilatori (e MCU) che permettono di lavorare con numeri in virgola mobile. Oltre ad essere più efficiente della memoria e più veloce (non dovete aggiornare gli elementi in ogni buffer circolare), direi che è anche più naturale. perché una risposta impulsiva esponenziale corrisponde meglio come natura comporta, nella maggior parte dei casi. risposto 20 Apr 12 in 09:59 Un problema con il filtro IIR come quasi toccato da Olin e Supercat ma apparentemente ignorato da altri è che l'arrotondamento per difetto presenta alcune imprecisioni (e potenzialmente biastruncation). supponendo che N è una potenza di due, e solo l'aritmetica intera è utilizzata, il passaggio diritto non elimina sistematicamente i bit LSB del nuovo campione. Ciò significa che per quanto tempo la serie potrebbe mai essere, la media non potrà mai prendere quelli in considerazione. Ad esempio, supponiamo che una serie lentamente diminuendo (8,8,8. 8,7,7,7. 7,6,6,) e assumere la media è infatti 8 all'inizio. Il campione pugno 7 porterà la media di 7, qualunque sia la forza del filtro. Solo per un campione. Stessa storia per 6, ecc Ora pensare il contrario. la serie va in su. La media rimarrà il 7 per sempre, fino a quando il campione è abbastanza grande per farlo cambiare. Naturalmente, è possibile correggere la distorsione con l'aggiunta di 12N2, ma che in realtà abituato a risolvere il problema di precisione. in tal caso la serie decrescente rimarrà sempre a 8 finché il campione è 8-12 (N2). Per N4 per esempio, qualsiasi campione sopra lo zero manterrà il invariata media. Credo che una soluzione per questo implicherebbe tenere un accumulatore di LSB persi. Ma non ho rendere quanto basta per avere il codice pronto, e io non sono sicuro che non sarebbe danneggiare la potenza IIR in alcuni altri casi di serie (ad esempio se 7,9,7,9 sarebbe in media di 8 poi). Olin, il vostro cascata a due stadi anche avrebbe bisogno di qualche spiegazione. Vuoi dire che regge due valori medi con il risultato del primo alimentato nella seconda in ogni iterazione. Che cosa è il vantaggio di questo Moving Filter Media È possibile utilizzare il modulo di Moving Average filtro di calcolare una serie di medie unilaterali o fronte-retro su un set di dati, utilizzando una lunghezza finestra che si specifica. Dopo aver definito un filtro che soddisfi le vostre esigenze, è possibile applicare a colonne selezionate in un set di dati collegandolo al modulo Applica filtro. Il modulo fa tutti i calcoli e sostituisce i valori all'interno di colonne numeriche con le corrispondenti medie mobili. È possibile utilizzare la media mobile risultante per la stampa e la visualizzazione, come una nuova linea di base liscia per la modellazione, per calcolare variazioni contro i calcoli per i periodi simili, e così via. Questo tipo di media aiuta a rivelare e previsioni utili schemi temporali nei dati retrospettivi e in tempo reale. Il tipo più semplice di media mobile inizia ad un certo campione di serie, e utilizza la media di tale posizione più i precedenti n posizioni anziché il valore effettivo. (È possibile definire n che vuoi.) Più lungo è il periodo di n attraverso cui la media è calcolata, meno di varianza si avrà tra i valori. Inoltre, come si aumenta il numero di valori utilizzato, l'effetto netto di qualsiasi singolo valore ha in media risultante. Una media mobile può essere unilaterale o bilaterale. In una media di un solo lato, vengono utilizzati solo i valori precedenti il valore dell'indice. In una media su due lati, vengono utilizzati i valori passati e futuri. Per gli scenari in cui si sta leggendo i dati in streaming, medie mobili cumulativi e ponderati sono particolarmente utili. Una media mobile cumulativo prende in considerazione i punti che precedono il periodo in corso. È possibile pesare tutti i punti dati ugualmente nel calcolo della media, oppure è possibile garantire che i valori più vicini al punto di dati corrente sono ponderati con più forza. In una media mobile ponderata. Tutti i pesi devono sommare a 1. In una media mobile esponenziale. le medie sono costituiti da una testa e una coda. che può essere ponderato. Una coda leggermente ponderata significa che la coda segue la testa abbastanza da vicino, quindi la media si comporta come una media mobile su un breve periodo di ponderazione. Quando i pesi di coda sono più pesanti, la media si comporta più come un lungo media mobile semplice. Aggiungere il modulo di Moving Average filtro per l'esperimento. Per lunghezza. digitare un valore numero intero positivo che definisce la dimensione totale della finestra su cui è applicato il filtro. Questo è anche chiamato la maschera di filtro. Per una media mobile, la lunghezza del filtro determina quanti valori sono la media nella finestra scorrevole. filtri più lunghi sono anche chiamati filtri di ordine superiore, e di fornire una più ampia finestra di calcolo e un'approssimazione più vicina della linea di tendenza. filtro di ordine più brevi o inferiore utilizzano una finestra più piccola di calcolo e assomigliano più da vicino i dati originali. Per Tipo. scegliere il tipo di media mobile da applicare. Azure Machine Learning Studio supporta i seguenti tipi di movimento calcoli medi: Una media mobile semplice (SMA) è calcolato come media ponderata di rotolamento. medie mobili triangolari (TMA) sono in media due volte per una linea di tendenza più agevole. La parola triangolare deriva dalla forma dei pesi che vengono applicate ai dati, che sottolinea valori centrali. Una media mobile esponenziale (EMA) dà più peso ai dati più recenti. La ponderazione cade in modo esponenziale. Una media mobile esponenziale modificata calcola una media di corsa in movimento, in cui calcolare la media mobile in qualsiasi punto considera i precedentemente calcolata in movimento punti a tutti i precedenti media. Questo metodo produce una linea di tendenza più agevole. Dato un unico punto e una media mobile attuale, la media mobile cumulativa (CMA) calcola la media mobile a punto corrente. Aggiungere il set di dati che ha i valori che si desidera calcolare una media mobile per, e aggiungere il modulo Applica filtro. Collegare il Moving Filter Media all'ingresso sinistro Applica filtro. e collegare il set di dati per l'ingresso a destra. Nel modulo Applica filtro, utilizzare il selettore di colonna per specificare quali colonne il filtro deve essere applicato. Per impostazione predefinita, il filtro si crea sarà applicato a tutte le colonne numeriche, in modo da essere sicuri di escludere tutte le colonne che non hanno dati appropriati. Simula. A quel punto, per ogni insieme di valori definito dal parametro lunghezza del filtro, la corrente (o indice) il valore viene sostituito con la media mobile value. The Media mobile come filtro La media mobile è spesso usato per filtrare i dati in presenza di rumore. La media mobile non è sempre riconosciuta come filtro Finite Impulse Response (FIR) che è, mentre è in realtà uno dei filtri più comuni nel trattamento del segnale. Trattandolo come un filtro consente il confronto con, per esempio,-sinc finestrate filtri (vedi gli articoli sul passa-basso.. Banda passa-passa-alto e e-banda rifiutano filtri per gli esempi di quelli). La differenza principale con questi filtri è che la media mobile è adatto per segnali per cui le informazioni utili è contenuto nel dominio del tempo. dei quali lisciatura misurazioni facendo la media è un ottimo esempio. filtri finestrato-sinc, d'altro canto, sono forti esecutori nel dominio della frequenza. con equalizzazione in elaborazione audio come esempio tipico. C'è un confronto più dettagliato di entrambi i tipi di filtri nel dominio del tempo vs prestazioni dominio della frequenza dei filtri. Se si dispone di dati per i quali sia il tempo e dominio della frequenza sono importanti, allora si potrebbe desiderare di avere uno sguardo al Variazioni sul media mobile. che presenta un certo numero di versioni ponderata della media mobile che sono meglio a questo. La media mobile di lunghezza (N) può essere definito come scritto come è tipicamente implementato, con il campione di uscita corrente come media dei campioni precedenti (N). Visto come un filtro, la media mobile esegue una convoluzione della sequenza di input (xn) con un impulso rettangolare di lunghezza (N) e l'altezza (1N) (per rendere l'area del polso, e, di conseguenza, il guadagno del filtro , uno ). In pratica, è meglio prendere (N) dispari. Sebbene una media mobile può anche essere calcolata utilizzando un numero di campioni, utilizzando un valore dispari per (N) ha il vantaggio che il ritardo del filtro sarà un numero intero di campioni, poiché il ritardo di un filtro con (N) campioni è esattamente ((N-1) 2). La media mobile può quindi essere allineato esattamente ai dati originali spostandolo da un numero intero di campioni. Time Domain Poiché la media mobile è una convoluzione con un impulso rettangolare, la sua risposta in frequenza è una funzione sinc. Questo rende qualcosa come il duale del filtro finestrato-sinc, dal momento che è una convoluzione con un impulso sinc che si traduce in una risposta in frequenza rettangolare. È questa risposta in frequenza sinc che rende la media mobile un esecutore povero nel dominio della frequenza. Tuttavia, esso funziona molto bene nel dominio del tempo. Pertanto, è ideale per lisciare i dati per rimuovere il rumore, mentre allo stesso tempo mantenendo una risposta a gradino veloce (Figura 1). Per il tipico rumore additivo gaussiano bianco (AWGN) che è spesso assunto, media campioni (N) ha l'effetto di aumentare il SNR di un fattore (sqrt N). Dal momento che il rumore per i singoli campioni non è correlata, non vi è alcun motivo di trattare ogni campione in modo diverso. Quindi, la media mobile, che dà ogni campione lo stesso peso, sarà sbarazzarsi della quantità massima di rumore per una data nitidezza risposta al gradino. Attuazione Poiché è un filtro FIR, la media mobile può essere attuato mediante convoluzione. Si avrà quindi la stessa efficacia (o la mancanza di esso) come qualsiasi altro filtro FIR. Tuttavia, può anche essere implementato in modo ricorsivo, in maniera molto efficiente. Segue direttamente dalla definizione che questa formula è il risultato delle espressioni per (yn) e (YN1), vale a dire, in cui si nota che il cambio tra (YN1) e (yn) è che un termine supplementare (xn1N) appare in alla fine, mentre il termine (xn-n1n) viene rimosso dall'inizio. Nelle applicazioni pratiche, è spesso possibile omettere la divisione per (N) per ogni termine compensando il guadagno risultante di (N) in un altro luogo. Questo ricorsiva attuazione sarà molto più veloce di convoluzione. Ogni nuovo valore (y) può essere calcolato con solo due aggiunte, invece dei (N) aggiunte che sarebbe necessaria per un'attuazione semplice della definizione. Una cosa da guardare fuori per una implementazione ricorsiva è che errori di arrotondamento si accumulano. Questo può o non può essere un problema per la vostra applicazione, ma implica anche che questo ricorsiva implementazione potrà mai funzionare meglio con un'implementazione intero che con numeri in virgola mobile. Questo è piuttosto insolito, poiché una implementazione in virgola mobile solito è più semplice. La conclusione di tutto questo deve essere che non bisogna mai sottovalutare l'utilità del semplice filtro media mobile nelle applicazioni di elaborazione dei segnali. Filter Design Tool Questo articolo è completato con uno strumento Filter Design. Esperimento con diversi valori di (N) e visualizzare i filtri risultanti. Provalo ora
Comments
Post a Comment