Moving Media Downsampling
Questa domanda ha già una risposta here. I hanno 2 set di dati in Matlab che ho bisogno di tracciare uno contro l'altro - uno sulle xaxis e uno sul asseY I dati per ogni set sono stati raccolti utilizzando un metodo diverso, quindi la frequenza di campionamento è significativamente diverso e fino i don t lo stesso numero di punti di dati in entrambi i set non riesco a tracciare uno contro i other. Its abbastanza semplice da downsample dati in Matlab utilizzando la frequenza di campionamento Matlab. The funzione downsample di a è 1 5s e la frequenza di campionamento di B è 0 1s sono stato in grado di utilizzare con successo downsample come downsample B, 15,10 per farlo iniziare allo stesso tempo -3S che significa qualcosa nei miei dati quindi ho bisogno di farlo per iniziare a quel punto ed essere in la frequenza di campionamento campione di 1 5s. Now, però, mi chiedevo se ci fosse un metodo che mi ha permesso di prendere la media dei 15 punti, invece di prendere un punto ogni 15 punti downsampling il modo in cui l'ho usato solo raccoglie tutti 15 punto io, invece, vorrei per poter fare la media dei 15 punti per me è invece c'è un modo di fare this. I ha scritto un ciclo for per un semplice piccolo vettore per vedere se ho potuto farlo per un 1 2 3 4 i vorrebbe condensare i dati in modo che a ha solo 2 voci, tale da medie a 1 e a 2 e poi un 3 e un 4. Questo, tuttavia, non funziona come voglio io, perché io non voglio che media a 2 e a 3 voglio di prendere le prime 2 voci, la media di loro, poi i prossimi 2 voci, poi la media in modo on. Can nessuno help. asked 8 Gennaio 15 alla 10 42.marked come duplicato di Shai MATLAB utenti con il distintivo MATLAB può da sola vicino domande MATLAB come duplicati e riaprire secondo necessità 8 gennaio 15 a 15 02.This domanda è stata fatta prima e ha già una risposta Se queste risposte non rispondono pienamente alla tua domanda, si prega di chiedere una nuova question. Ahh sì Spiacente ho provato a cercare risposte alle domande esistenti credo che i miei dati di ricerca erano diverse per il titolo anche se obiettivo Maheen Siddiqui 8 gennaio 15 alle 10 49.Upsampling Downsampling e discreto tempo Modulation. The di questo laboratorio è quello di approfondire studenti la comprensione dei principi di tempo discreto modulazione, demodulazione, upsampling e giù sampling. Upsampling e Downsampling. In questa parte del laboratorio, si sperimentare su e giù per il campionamento di un fattore 3.First, scaricare il carico di file e il tipo di h in Matlab richiede Questo caricherà una variabile h in Matlab workspace. Startup Simulink e costruire su e giù per il campionamento models. Recall che il campionamento giù richiede due blocchi di elaborazione 1 modulazione con un treno di impulsi periodici e 2 rimuovere il samples. An a zero facile modo di modulare dalla sequenza è quello di definire la sequenza nell'area di lavoro Matlab e poi portarlo nel modello utilizzando un segnale dal blocco dello spazio di lavoro Qui s codice per consider. M 3 Fattore per su e giù per gli zeri di campionamento lunghezza N cv N, 1 definire un vettore di tutti zeri p 1 MN 1 Impostare ogni terzo campione one. The segnale Operations Libreria dei blocchi nel Blockset libreria DSP contiene un blocco Downsampling che rimuove lo zero campioni sembra this. Upsampling si compone di due operazioni 1 zeri inserimento e 2 passa-basso di filtraggio per rimuovere images. This segnale Operations Libreria dei blocchi nel Blockset libreria DSP contiene un blocco Upsample che inserisce gli zeri E si presenta come this. You già conoscono sulla progettazione di filtri passa-basso che utilizzano il remez function. The Matlab seguente è un esempio modello Simulink il ramo superiore fa giù di campionamento e il ramo inferiore fa fino sampling. Note in su e giù per il campionamento, essere molto attenti per impostare le frequenze di campionamento in ogni blocco Se disponibile, impostare il tempo di campionamento nei blocchi di filtro a -1 Poi il filtri erediteranno i loro tempi di esempio dal blocco precedente In caso contrario, è necessario impostare i tempi di campionamento explicitly. In questo modello, alcuni segnali all'area di lavoro sono stati aggiunti blocchi per catturare varie signals. In la finestra di dialogo Parametri di simulazione, impostare il tempo di avvio di 0 e il tempo di arresto a N-1, dove N è la lunghezza del segnale di ingresso h Inoltre, nella categoria opzioni Risolutore, impostare il tipo Fixed-step. Run la simulationpare gli spettri e nel dominio del tempo sequenze dei tre segnali h, HPD, hdown Scrivi una spiegazione di ciò che si vede fare il due blocchi di elaborazione utilizzati per la funzione di campionamento giù come trame di direzione che ci si attende, come quelle riportate di seguito con il up. Below scrittura sono le sequenze di spettri e nel dominio del tempo prima alcuni campioni calcolati utilizzando solo il modello Simulink abovepare gli spettri e nel dominio del tempo sequenze dei tre segnali h, HPU, HUP Scrivi una spiegazione di ciò che si vede fare il due blocchi di elaborazione utilizzati per un massimo funzione di campionamento come previsto trame voltate come quelle riportate di seguito con il write up. Explain come avete progettato il filtro passa-basso per upsampling Quali erano i bordi della banda di transizione Qual è stato il guadagno del filter. Below sono le sequenze di spettri e nel dominio del tempo prima alcuni campioni calcolati utilizzando solo le above. As modello Simulink indicati sopra, la sequenza nel dominio del tempo upsampled passa attraverso i campioni dei segnali originali Ciò si ottiene mediante un guadagno di 3 nel filtro passa basso è possibile visualizzare il guadagno di tre nel dominio della frequenza nota che il filtro passa-basso causerà ritardo nel reltive segnale di upsampling al segnale originale nella figura precedente, il ritardo è stato removed. Discrete tempo modulazione e Demodulation. Download il file Eventuali multimediale del computer attrezzate con i pacchetti software standard dovrebbero essere in grado di riprodurre il file audio Provalo Do si riconosce ciò che la donna è reading. You può leggere i dati wav in MATLAB per typing. This carichi tre variabili in voi Matlab lavoro Y è i dati audio, FS è la frequenza di campionamento 11025 in questo caso, e nbits è il numero di bit utilizzato per rappresentare ogni campione in y. The spettro di Y è come below. As mostrate si può visualizzare, y contiene significativi contenuto di frequenza tutta la via d'uscita a 0 5 frequenza a tempo discreto che corrisponde a 11025 2 Hz di frequenza a tempo continuo metà campione rate. Build un modello Simulink di ampiezza modulare y su un supporto co-sinusoidale con una frequenza portante di 0 2 frequenza a tempo discreto e quindi eseguire la demodulazione sincrona e sottocampionamento per ripristinare lo spettro al suo ordine shape. In originale per evitare aliasing, Y deve essere upsampled prima modulando it. Recall che nel tempo discreto, il vincolo sulla frequenza portante is. where queste frequenze sono requencies f tempo discreto in unità di rad Se si preferisce usare le unità che siano coerenti con il modo in cui generare nostre piazzole, quindi dividere la disuguaglianza sopra di un fattore 2 pi conduce alla seguente vincolo sul supporto frequency. Use un fattore upsampling del 3.What è la più alta frequenza tra -0 5 e 0 5 dopo upsampling da 3.What è la frequenza maggiore tra -0 5 e 0 5 nel upsampling signal. Will modulato da 3 evitare l'aliasing nei modulati signal. The due passi nella demodulazione sincrona sono 1 modulazione moltiplicare per il vettore e 2 filtraggio passa-basso per rimuovere il doppio componenti di frequenza Qual è la frequenza più alta dopo la fase di modulazione, ma prima passa-basso di filtraggio funziona aliasing occur. What sono le band di transizione bordi e il guadagno del filtro passa-basso che si è utilizzato per demodulation. Does suono il segnale demodulato e ricampionate la uguale al segnale originale a proposito, se si vuole scrivere un segnale anno in un file wav in modo da ascoltare, digitare quanto segue al Matlab prompt. Turn nelle risposte alle domande di cui sopra e le figure come quelle sotto che mostra il modello e gli spettri Un esempio di ciò che gli spettri sembrano in vari punti appare in fondo a questo page. A Simulink modello del sistema completo può apparire come this. The spettri di alcuni dei segnali intermedi assomiglia a questo. Copyright 2008, dagli Autori che contribuiscono Cite attribuire risorse di amministrazione del 2006, 28 giugno Upsampling Downsampling e modulazione discreti tempo Estratto 7 gennaio 2011, dal sito Web free online Corso Materiali USU OpenCourseWare Questo lavoro è sotto una licenza creative Commons License. As altri hanno detto, si dovrebbe considerare un infinito filtro di risposta all'impulso IIR piuttosto che il filtro FIR risposta all'impulso finita si sta utilizzando ora c'è di più ad esso, ma a prima vista filtri FIR sono implementate come circonvoluzioni espliciti e IIR filtri con equations. The particolare filtro IIR io uso molto in microcontrollori è un unico filtro passa-basso palo Questo è l'equivalente digitale di un semplice filtro RC analogico Per la maggior parte delle applicazioni, questi avranno caratteristiche migliori rispetto al filtro di dialogo che si sta utilizzando con più usi di un filtro scatola che ho incontrato sono il risultato di qualcuno non prestando attenzione in classe elaborazione del segnale digitale, non come risultato di aver bisogno di loro particolari caratteristiche 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 implementare una digitalmente in un microcontrollore è usually. FILT - 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 questo iterazione FF è la frazione filtro che regola la pesantezza del Guardate filtro questo algoritmo e vedere che per FF 0 il filtro è infinitamente pesante dal momento che l'uscita non cambia mai per 1 FF, è davvero nessun filtro del tutto poiché l'uscita segue solo la inserire valori utili sono tra su piccoli sistemi si sceglie FF sia 1 2 N in modo che il moltiplicare per FF può essere realizzato come uno spostamento a destra di n bit per esempio, FF potrebbe essere 1 a 16 e il moltiplicare per FF quindi uno spostamento a destra di 4 bit, altrimenti 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 input più precisione numerica in una sezione separata below. I richiede solitamente significativamente letture aD più velocemente di quanto sono necessari e applicare due di questi filtri in cascata Questo è l'equivalente digitale di due filtri RC in serie, e attenua di 12 dB un'ottava sopra della frequenza di rolloff Tuttavia, per le letture aD che di solito è più rilevante per guardare il filtro nel dominio del tempo, considerando la sua risposta a gradino Questo ti dice quanto velocemente il sistema vedrà un cambiamento quando la cosa si sta misurando changes. To facilitare la progettazione di questi filtri che significa solo raccogliere FF e decidere come molti di loro a cascata, io uso il mio programma FILTBITS si specifica il numero di bit di spostamento per ogni FF nella serie cascata di filtri, e si calcola la risposta al gradino e di altri valori in realtà 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 è la risultato di PLOTFILT 4 4. due parametri PLOTFILT significa che ci saranno due filtri in cascata del tipo descritto sopra I valori 4 indica il numero di bit di spostamento per realizzare il moltiplicare per FF I due valori FF sono quindi 1 16 in questo caso. il traccia rossa è la risposta al gradino unità, ed è la cosa principale 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 cura di 95 tempo di assestamento, allora si deve attendere circa 73 iterazioni, e per il 50 tempo di assestamento solo il 26 iterations. The traccia verde mostra l'output da un unico picco di piena ampiezza Questo vi dà un'idea della soppressione del rumore casuale sembra no singolo campione causerà più di un 2 5 cambiamento nella traccia blu output. The è quello di dare una sensazione soggettiva di ciò che questo filtro fa con rumore bianco questo non è un test rigorosi in quanto non vi è alcuna garanzia che cosa esattamente il contenuto era del caso numeri scelti come ingresso rumore bianco per questa esecuzione di PLOTFILT e 's solo per dare una sensazione di massima di quanto verrà schiacciata e come liscia si is. PLOTFILT, forse FILTBITS, e un sacco di altra roba utile, soprattutto per i firmware PIC sviluppo è disponibile nella versione software Strumenti di sviluppo PIC al download di software page. Added circa precision. I numerici vedere dai commenti e ora una nuova risposta che vi è interesse a discutere il numero di bit necessari per implementare questo filtro si noti che la moltiplicano da FF creerà Log 2 FF nuovi bit al di sotto del punto di binario su sistemi di piccole dimensioni, FF è di solito scelto per essere 1 2 N in modo che questo si moltiplicano in realtà è realizzato da un spostamento a destra di N bits. FILT è quindi di solito un intero punto fisso Nota che questo doesn t cambiare una delle matematica dal punto di vista, ad esempio il processore s, se si sta filtrando 10 letture AD bit e N 4 FF 1 16, allora avete bisogno di 4 bit di frazione al di sotto dei 10 bit letture intero AD quello più processori , si d essere facendo 16 le operazioni di interi bit 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 doesn t conoscere la differenza e doesn t bisogno di fare i calcoli su interi numeri interi a 16 bit funziona se li si considera di essere 12 4 punto fisso o veri e propri 16 numeri interi bit 16 0 fisso point. In generale, è necessario aggiungere N bit ogni polo filtro se don t voler aggiungere rumore dovuto alla rappresentazione numerica nell'esempio precedente, il secondo filtro di due avrebbe dovuto avere 10 4 4 18 bit per non perdere le informazioni In pratica su un computer a 8 bit che significa che D utilizzare i valori a 24 bit Tecnicamente solo la secondo polo di due avrebbe bisogno il valore più ampio, ma per semplicità firmware io di solito uso la stessa rappresentazione, e quindi lo stesso codice, per tutti i poli di un filter. Usually scrivo una subroutine o una macro per eseguire l'operazione palo un filtro, quindi applicare che, per ogni polo si tratti di una subroutine o una macro dipende dal fatto che i cicli o memoria di programma sono più importanti in quel particolare progetto in entrambi i casi, io uso uno stato zero per passare NEW nella macro subroutine, che aggiorna FILT, ma carica anche che nella stessa stato scratch NEW era in questo modo è facile da applicare poli multipli poiché la FILT aggiornata di un polo è il NUOVO del successivo Quando una subroutine, esso s utile avere un punto puntatore FILT sul modo in, che è aggiornata a subito dopo FILT sulla via d'uscita in questo modo la subroutine funziona automaticamente su filtri consecutivi in memoria se chiamato più volte con una macro è don t bisogno di un puntatore da quando si passa l'indirizzo di operare su ogni iteration. Code Examples. Here è un esempio di una macro come descritto sopra per un PIC 18.And ecco un macro simile per un pic 24 o dsPIC 30 o 33.Both questi esempi sono implementate come macro utilizzando il mio PIC assemblatore preprocessore che è più capace di una delle due built-in strutture macro. clabacchio Un altro problema Avrei detto è l'implementazione del firmware È possibile scrivere un unico polo passa-basso filtro subroutine una volta, poi applicarlo più volte in realtà io di solito scrivere un tale subroutine per prendere un puntatore in memoria allo stato del filtro, poi lo hanno avanzare il puntatore in modo che possa essere chiamato in successione facilmente per realizzare multipolare filtra Olin Lathrop 20 apr 12 in 15 03.1 grazie mille per le vostre risposte - tutti loro ho deciso di utilizzare 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 Hardware cambiamenti specifici sensslen automaticamente 21 maggio 12 a 12 06.If si può vivere con la restrizione di una potenza di due serie di elementi a media cioè 2,4,8,16,32 ecc quindi il divario può facilmente ed efficacemente essere fatto su una bassa micro prestazioni senza divisione dedicata, perché può essere fatto come un scorrimento di bit ogni turno a destra è una potenza di due eg. The OP pensava di avere due problemi, che divide in un PIC16 e memoria per il suo anello di buffer 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 altri s risposte Poiché alcune delle altre risposte richiedono un'operazione di divisione, hanno sono allo stesso modo incompleto in quanto non mostrano come realizzare in modo efficiente questo su un PIC16 Martin 20 aprile 12 al 13 01.There è una risposta per un vero e proprio movimento filtro a media filtro aka carro merci con requisiti di memoria meno, se don t mente downsampling E 's chiamato in cascata filtro integratore d'ape 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, è don t devono memorizzare ogni valore dell'integratore e ' può essere implementato usando la seguente pseudocode. Your efficace in movimento lunghezza media è di decimationFactor statesize 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 turni e maschera-ands. Postscript sono d'accordo con Olin che si dovrebbe sempre prendere in considerazione semplici filtri IIR prima di un filtro a media mobile Se don t bisogno le frequenze-null di un filtro vagone, un 1-palo o basso 2 poli filtro passa probabilmente funzionerà fine. On 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 basso tasso di allora un filtro CIC può essere solo quello che stai cerca soprattutto se è possibile utilizzare statesize 1 ed evitare il ringbuffer tutto con un solo integratore precedente value. There s alcune analisi approfondita della matematica dietro utilizzando il filtro IIR del primo ordine che Olin Lathrop ha già descritto sopra sulla Digital Signal Processing scambio pila comprende un sacco di belle immagini l'equazione per questo IIR is. This filtro può essere implementato usando solo numeri interi e nessuna divisione utilizzando il seguente codice potrebbe essere necessario un po 'di debugging come stavo scrivendo da memory. This filtro approssima una media mobile delle ultime K campioni impostando il valore di alfa per 1 K fare questo nel codice precedente per definire ing BITS per LOG2 K, cioè per K 16 bit impostati a 4, per K 4 bit impostato su 2, ecc I ll verificare il codice elencato qui non appena ottengo un cambiamento e modificare questa risposta se needed. answered 23 giugno 12 alle 4 del 04.Here sa media unipolare filtro passa-basso in movimento, con CutoffFrequency frequenza di taglio molto semplice, molto veloce, grandi opere, e quasi nessuna memoria overhead. Note Tutte le variabili hanno portata al di là della funzione di filtro, ad eccezione del passato in newInput. Note si tratta di un unico filtro fase fasi multiple possono essere collegati in cascata insieme per aumentare la nitidezza del filtro Se si utilizza più di una fase, è ll essere necessario regolare DecayFactor quanto riguarda la Cutoff frequenza per compensate. And, ovviamente, tutto ciò che serve è quelle due righe posizionati ovunque, don t bisogno la propria funzione Questo filtro non hanno un tempo di ramp-up prima della media mobile rappresenta quella del segnale di ingresso Se è necessario bypassare quel tempo di accelerazione, si può solo inizializzare media mobile per il primo valore di newInput invece di 0, e spero che il primo isn t newInput un outlier. CutoffFrequency SampleRate ha una gamma compresa tra 0 e 0 5 DecayFactor è un valore compreso tra 0 e 1, di solito vicino ai carri 1.Single 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 numero intero, ed il denominatore è una potenza intera di 2 in modo da poter bit-shift verso destra come denominatore piuttosto che dover dividere durante l'anello filtrante per esempio, se DecayFactor 0 99, e si desidera utilizzare gli interi, è possibile impostare DecayFactor 0 99 65536 64881 e poi ogni volta che moltiplicare per DecayFactor nel loop filtro, basta spostare il risultato più 16.For informazioni su questo, un ottimo libro che s on-line, il capitolo 19 sulla filters. PS ricorsive per lo spostamento di paradigma media, un approccio diverso per impostazione DecayFactor e AmplitudeFactor che può essere più rilevante per le vostre esigenze, lasciare s dire si desidera che i precedenti, circa 6 articoli in media insieme, facendo in modo discreto , si d aggiungere 6 articoli e dividere per 6, in modo da poter impostare la AmplitudeFactor a 1 6, e DecayFactor a 1 0 - AmplitudeFactor. answered 14 maggio 12 alla 22 55.Everyone altro ha commentato a fondo l'utilità di IIR vs FIR, e sul potere di due figli divisione I d appena piace dare dettagli un po 'implementazione il funziona bene su piccoli microcontrollori senza FPU ci s alcuna moltiplicazione di seguito, e se si mantiene N una potenza di due, tutta la divisione è po' a ciclo unico buffer circolare - shifting. Basic FIR tenere un tampone di corsa degli ultimi valori 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 l'uscita SUM N. Modified IIR ring buffer mantenere una somma parziale degli ultimi N valori Ogni volta che un nuovo campione entra, SUM - SUM N, aggiungere il nuovo campione, e SUM uscita N. answered 28 agosto 13 al 13 45.If io vi sto leggendo in questo, si ri descrivendo un primo ordine IIR filtrare il valore si ri sottraendo isn t il valore più vecchio che sta cadendo fuori, ma è invece la media dei valori precedenti primo ordine filtri IIR possono certamente essere utili, ma non sono sicuro di cosa si intende quando si suggerisce che l'uscita è la stessa per tutti i segnali di questa in una frequenza di campionamento 10KHz, alimentando un onda quadra a 100Hz in un filtro casella 20-tappa produrre un segnale che aumenta in modo uniforme per 20 campioni, si trova in alto a 30, scende in modo uniforme per 20 campioni, e si siede basso per 30 a supercat filtro IIR del primo ordine 28 agosto 13 al 15 31.will produrre un'onda che inizia forte aumento e gradualmente stabilizza vicino ma non al massimo in ingresso, poi inizia bruscamente cadere e gradualmente livelli fuori vicino ma non al minimo ingresso in diverso comportamento Supercat 28 ago 13 ad 15 32.One problema è che una semplice media mobile può o non può essere utile con un filtro IIR, è possibile ottenere un bel filtro con relativamente pochi Calcoli La FIR si descrive può solo dare un rettangolo nel tempo - un sinc in freq - e si può t gestire i lobi laterali 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 Scott Seidman 29 agosto 13 al 13 50. ScottSeidman Non c'è bisogno di moltiplica se uno ha semplicemente ogni fase della FIR sia uscita la media del ingresso a tale fase e il suo valore memorizzato precedente, e quindi memorizzare l'ingresso se si ha la gamma numerica, si potrebbe utilizzare la somma piuttosto media Sia che s meglio di una scatola filtro dipende dall'applicazione la risposta di un filtro scatola con un ritardo totale di 1 ms, per esempio, avrà una brutta picco d2 dt quando il cambiamento di ingresso, e di nuovo 1ms tardi, ma avrà la minima possibile d dt per un filtro con un totale di 1ms Tempo Supercat 29 ago 13 ad 15 25. come ha detto mikeselectricstuff, se si ha realmente bisogno di ridurre le esigenze di memoria, e don t mente il tuo risposta all'impulso essere un esponenziale, invece di un impulso rettangolare, vorrei andare per un movimento filtro di media esponenziale li uso a lungo con quel tipo di filtro, don t bisogno di alcun tampone È don t devono conservare N passato campioni Solo uno Quindi, i tuoi requisiti di memoria vengono abbattuti da un fattore di N. Also, è don t bisogno di alcuna divisione per che solo moltiplicazioni Se si ha accesso a floating punto di aritmetica, utilizzare moltiplicazioni in virgola mobile in caso contrario, fare moltiplicazioni interi e turni a destra Tuttavia, siamo nel 2012, e vi consiglierei di usare compilatori e MCU che consentono di lavorare con numbers. Besides in virgola mobile essendo più memoria efficiente e più veloce è don t devono aggiornare gli elementi in ogni buffer circolare, direi che è anche più naturale perché una risposta all'impulso esponenziale corrisponde meglio il modo in cui la natura si comporta, nella maggior parte cases. answered 20 apr 12 in 9 59.One questione con il filtro IIR come quasi toccato da Olin e supercat ma apparentemente ignorato da altri è che l'arrotondamento introduce una certa imprecisione e potenzialmente polarizzazione troncamento supponendo che N è una potenza di due, e solo aritmetica intera viene utilizzato, lo spostamento a destra non elimina sistematicamente LSB del nuovo campione Ciò significa che per quanto tempo la serie potrebbe mai essere, la media non potrà mai prendere quelle in account. For esempio, si supponga 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 della serie va in su la media rimarrà accesa 7 per sempre, fino a quando il campione è abbastanza grande per farlo change. Of Naturalmente, è possibile correggere la distorsione con l'aggiunta di 1 2 N 2, ma che ha vinto t realmente risolvere il problema di precisione in quel caso la serie decrescente rimarrà per sempre a 8 fino a quando il campione è 08-01 FEBBRAIO N 2 per N 4 per esempio, qualsiasi campione sopra lo zero non mancherà di tenere i unchanged. I media ritengono una soluzione per questo implicherebbe tenere un accumulatore di LSB perduta, ma io didn t rendono abbastanza lontano per avere il codice pronto, e io non sono sicuro che non avrebbe danneggiato il potere IIR in alcuni altri casi di serie, per 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 s il beneficio di questo.
Comments
Post a Comment