Moving Average Filter. Es ist ein DSP-Algorithmus zu Erfassung des gleitenden Mittelwertes MA ber m 9 Samples zu entwerfen Folgende Fragen sind zu klren. Wie schaut die Sprungantwort und die Impulsantwort fr n 5 M Samples aus. Wie ist die Auslastung des ADSP2181 bei der Taktfrequenz von f DSP 12 MHz anzunehmen. Wo liegt die 3dB Grenzfrequenz im Bodediagramm des Durchlassbereiches, wenn die Abtastfreqenz fa 48 kHz ist. Auf welchen M-Wert kann das MA-Filter auf die Rechenzeit maximal erweitert werden. Wie ndert sich der Frequenzgang des MA - Filters Wenn die Koeffizienten a0 bis a4 linear zunehmen und a5 bis a9 symmetrisch zu a0 bis a4 sind auch zB 0 1 0 4,0 5,0 4 0 1 Wie groß sind die Koeffizienten in 1 15 - Darstellung. GIT Repositories. Index-Seite aller GIT-Repositories, die diesen Server über bersichtsseite aller GIT-Repositories klonieren können, die von diesem Server aus dem Git Clone erreichbar sind. Ein Bündel von Service-Scripts zum Konvertieren, Analysieren und Generieren von Daten Ein paar Services zum Konvertieren, Analysieren Und generieren von Daten. GNU octave web interface. A Web-Interface für GNU Octave, die es erlaubt, wissenschaftliche Berechnungen von Netbooks, Tabellen oder Smartphones auszuführen Die Schnittstelle bietet einen Web-Formulargenerator für Octave-Skript-Parameter mit Vor-Validierung, automatische Skriptlistenerzeugung, Auch präsentieren von ausgegebenen text, figuren und dateien in einer ausgabe HTML-seite Ein Webinterface fr GNU-Octave, mit dem wissenschaftlichen Berechnungen von Netbooks, Tablets oder Smartphones aus durchgefhrt werden knnen Die Schnittstelle mit einem Formulargenerator fr Oktave-Scriptparameter, mit Einheiten und Einfabevalidierung Deutsch: www. tab. fzk. de/de/projekt/zusammenf...ng/ab117.htm. Englisch: www. tis-gdv. de/tis_e/containe/arten.../index. htmDie Filterausgabe, Bestellen Tiefpass Es hat ein sehr ähnliches Verhalten zu einem analogen RC-Tiefpass-Widerstand und Kondensator Es ist sehr schnell berechnet und gut für Anwendungen, wo Sie Rauschen aus Ihrem Eingangssignal entfernen wollen. Es braucht zwei Konfigurationswerte, wobei die Summe von beiden 1 sein muss Je höher der Koeffizient 1, desto mehr Rauschen wird entfernt, aber je langsamer die Reaktion deiner gefilterten Ausgabe ist Je höherer Koeffizient 0 desto schneller wird dein Ausgang, aber mehr Lärm kann durchlaufen Die Beispielimplementierung verwendet Gleitkommazahlen, auf einem Mikrocontroller ist es oftmals empfehlenswert Um diese mit ganzzahligen zu ersetzen. IIR Tiefpass-Beispiel. Hier eine beispielimplementation fr einen Tiefpass erster Ordnung Er verhlt sich mit Ausnahme dass er digital ist wie ein analoger RC-Tiefpass aus Widerstand und Kondensator Es ist sehr schnell berechnet und gut wenn hochfrequente Strungen aus einem Eingabesignal entfernt werden werden zwei Parameter werden bentigt, ihr Summe aber 1 ergeben muss Je hher coeff 1 desto strker werden Strungen entfernt, desto langsamer ndert sich aber auch die Ausgabe des Filters Je hher coeffs 0 desto schneller reagiert die Ausgabe, aber es kommt auch mehr Rauschen durch die Beispiel-Implementierung nutzt Fliekommazahlen, fr Microcontroller wird stattdessen Integer-Variablen verwendet werden. Moving average. Ein gleitender Durchschnitt Filter oder Schiebefenster Filter ist ein spezieller FIR-Filter, der schnell berechnet werden kann Sie einfach den Durchschnitt über den letzten N-Eingang zu bauen Werte Dieser Filter hat eine bessere Reaktionszeit als der vorherige IIR-Tiefpass, und er hebt das Rauschen ziemlich mäßig Nachteil Sie benötigen mehr Speicher Wir verwenden einen Ringpuffer, um den Wertverlauf und eine Variable zu speichern, wo wir die Summe dieser Werte speichern. Wenn wir bekommen Ein neuer Wert, wir subtrahieren einfach den ältesten Wert in der Geschichte, fügen den neuen Wert hinzu und überschreiben den ältesten Wert mit dem neuen. Die Summe, die wir nur durch die Anzahl der Werte teilen müssen, die wir haben - und da ist unsere gefilterte Ausgabe. First der Gleitkomma variante. Moving Average. Ein Moving Average Filter oder Sliding Window Filter bildet den Mittelwert der letzten N Eingabewerte Wie der IIR Filter oben ist er schnell berechnet, reagiert aber schneller bei moderater Rauschunterdrckung Nachteil Er braucht Speicher, war auf kleinen Mikrocontrollern ein Problem sein knuck Der Algorithmus berechnet einfach die Summe der Vergangenheitswerte geteilt durch die Anzahl an Vergangenheitswerten Mittelwert eben Mit einem kleinen Trick rechnen wir das nicht immer wieder aus, stattdessen speichern wir die Summe in einer Variable Wenn ein neuer Eingabewert kommt, so subtrahieren wir Die liest Wert und addieren den neuen Danach mssen wir diese Summe noch durch die Anzahl an Elementen teilen und haben das neue Eergebnis. Erstmal die Floating Point Variante. Now das gleiche mit ganzzahligen Variablen Wenn wir don t haben eine Gleitkomma-Einheit können wir einige sparen Zeit und teilen durch Mächte von zwei rechts verschieben ein paar Bits Aber dann müssen Sie darauf achten, dass Ihr Ring Puffer hat 2 BITS Werte. Nun das Selbe mit Integern Vor alles wenn keine Schwimmende Punkt Einheit im Controller ist spart das viel Zeit Beim Dividieren kann Ich kann mich auch nicht um die Schatztiere schlagen. Das ist auch ein Puffergren von 2 BITS machen Der Ringbuffer im Beispiel hat 8 Werte, und mit summe 3 haben wir die Summe durch 8 geteiltmon FIR Filter. Die folgenden Quelltexte sind Implementierungen eines zyklisch aufgerufenen FIR Filters Wie beim Moving Durchschnittlich Filter der ein FIR-Filter ist mssen auch hier die Vergangenheitswerte gespeichert werden Zudem gibt es einen Speicherbereich mit Koeffizienten, der genau so gro ist wie der Wertepuffer Alles was der Filteralgorithmus tun muss, ist jeden gespeicherten Vergangenheitswert mit dem dazugehrigen Koeffizienten zu multiplizieren und all diese Produkte zum endergebnis aufzuaddieren Die Anzahl und Werte der Koeffizienten bestimmen dabei, war der Filter tut Er kann Tiefpass, Hochpass, Bandpass, Bandsperre und vieles mehr sein FIR Filter sind Einmal Scharfes Messer im Schrank der Signalverarbeitung, das Prozessoren ausgeschlagen werden sie schnell berechnen zu knnen Vor allem in DSPs sieht man also MAC-Operationen Multiply und Akkumulieren, dh in einem Schritt multiplizieren sie zwei Zahlen und addieren das Ergebnis zu einer Summe hinzufügen Abhngig Von den Features eines Controllers sollte dann auch besser von C auf Assembly ausgewichen werden z B gibt es auch Prozessoren, die die MAC-Operation rechnen und im selben Schritt das nchste Wert-Koeffizient-Paar anvisieren, usw usw Besser lesbar ist doch dieses Beispiel in C Die Koeffizienten haben ich so gewhlt, dass dieser FIR identisch mit dem Moving Average Filter ist Es ist auch ein leicht nachvollziehbares Beispiel Statt zum Schluss Summe N zu rechnen wird hier jeder Vergangenheitswert mal 1 N gerechnet Da kommt das Selbe raus Fr andere Filterkoeffizienten lohnt sich Ein Blick in die Signal Toolbox von GNU Octave Die Software ist kostenlos. Erstmal mit Fliekommazahlen Der Algorithmus ist recht selbsterklrend, zwei Sachen sind aber noch angemerkt. Wir fllen den Ringpuffer rckwrts, denn dann sind die Vergangenheitswerte zum Rechnen bereits richtig geordnet D h der vorherige Wert ist eins nach vorn, der davor zwei nach vorn usw. Wir rechnen in zwei Schleifen, damit wir uns die Abfrage, die uns am Ende des Ringpuffer-Speichers angekommen sind Ende des Puffers arbeiten, dann die Pufferposition rcksetzen und bis zum Ende der Koeffizienten rechnen. Und hier das ganze nochmals mit Festkomma-Arithmetik Wir verwenden im Filter Zahlen zwischen -1 und 1 Diese stellen wir als vorzeichenbehaftete 16 Bit Zahlen dar und denken uns das Komma Direkt nach dem Vorzeichenbit, auch beim fnfzehnten - genannt Q15-Zahl Die Integerwerte gehen von -35768 bis 35767, dh der Integerwert 0x0001 entspricht dann 1 35768 Die 8 Koeffizienten geben auch nicht mit 1 0 8 an, sondern mit 35768 8 oder 1 15 8 Weiterhin mssen Wir beachten, dass beim Multiplizieren sich das Komma an das 30te Bit Heftet gem ein Kilometer mal ein Kilometer sind nicht 1000 Quadratmeter, sondern 1000000 wird nach dem Multiplizieren und Aufsummieren wieder das Komma um 15 Bit nach unten geschoben, von Q30 nach Q15 Die dritte Sache Wir mssen beim Multiply-And-Akkumulieren auf berlauf Prfen, das passiert im MAC Makro Vierte Sache Wir wollen runden Also beladen wir 0 5 in die Summenvariable den Akkumulator und zwar in Q30 das entspricht 1 14 Der Rest ist wie bei der Festkomma-Rechnung. Main-Programm für die Beispiele. In Kombination mit dem Makefile wurden die obigen Beispiele in separaten ausführbaren Dateien zusammengestellt. Dies ist das Hauptprogramm für alle von ihnen. Hauptprogramm fr diese Beispiele. In Kombination mit dem Makefile werden alle oben.11 Beispiel - Quelltexte in separaten Ausfhrbare Programm kompiliert Dabei kann diese Datei die Hauptfunktion, die sich um Eingabe und Ausgabe kmmert Sie ruft die jeweilige Filterinit und Filter Funktionen auf. Forum Digitale Signalverarbeitung DSP Simple Moving Average in Reihe. Ich frage mich gerade wie ich die Verzgerungszeit bekomme , Wenn ich 2 oder mehr einfach gleitende Mittelwerte SMA einfach gleitend durchschnittlich hintereinander schalte Eines meiner Ziele ist es, fr eine Pegelregelung, eine mglichst gute Glttung der Eingangswerte zu erhalten Ich vermute, das dafr ein Filter mit Gau-Charakteristik geeignet wre, welches bei greren Lngen aber einiges an Rechenzeit erfordern wrde Der DSP-Guide Kapitel 7 s 136 unten Der zentrale Limit Theorem lsst mich vermuten, das eine mehrfache Hintereinanderschaltung von SMA Filtern dieser mehr oder weniger nahe kommt. Allerdings frage ich mich, wie dabei die resultierende Verzgerungszeit ist dazu Finde ich keine Angaben. Also eigentlich mahre ich das fr eine automatische pegelregelung verwenden Da kmen dann noch weitere anfragen, wie schnell ansprechzeit und langsames Abhang, aber ich befrchte, das ist mit einfaches Filtern nicht machbar. Die Idee dahinter ist, das ein einfacher Gleitender Mittelwert in optimierter Ausfhrung deutlich weniger System Ressourcen beansprucht, als ein echtes Gau Filter. Das angehngte Bild zeigt folgendes 1 rote Linie einfacher gleitender Mittelwert ber 6000 Beispiele 2 gelbe Linie zwei gleitende Mittelwerte hintereinander ber jeweils 3000 Samples. Die Darstellung befindet sich auf einer Abtastfrequenz Von 8kHz, jedes Pixel reprsentiert 40 Samples 5ms Man sieht, das die Gelbe Linie eine einmalige bessere Glttung bringt, aber auch eine eindeutige schlechtere Ansprechzeit hat. Wie kann ich diese Werte erfassen und ggf beeinflussen verbessern. Da es aber nicht um Signalaufbereitung geht, sondern Um eine Regelung, wren eventuell auch nichtlineare Filter eine Idee Ja, aber von Regelungstechnik habe ich so gut wie keine Ahnung Tatschlich will ich die Skalierung Lnge WK Hut es schon gesagt, je fter man das macht umso Gau hnlicher wird es. Und beim SMA Filter Spart das nicht nur ein bischen Rechenzeit Pro Arbeitstakt wird eine Addition, eine Subtraktion und eine Division Bentigt und die unabhanggig von der Anzahl der Speicherstellen Bei einem vollwertigen FIR Filter mssen fr alle Taps Multiplikationen durchgefhrt werden Im Beispiel wren das fr die rote Linie 6000.Thread beobachten Seitenaufteilung abschalten. Antwort schreiben. Die Angabe einer E-Mail-Adresse ist freiwillig Wenn Sie automatisch per E-Mail ber Antworten auf Ihr Beitrag informiert werden mchten, melden Sie sich bitte bitte an. Wichtige Regeln - erst lesen, dann posten. Gro - und Kleinschreibung verwenden. Lngeren Quellcode nicht im Text einfgen, sondern als Dateianhang. Formatierung mehr Informationen. Code Code in anderen Sprachen, ASCII-Zeichnungen Code. Mathe Formel in LaTeX-Syntax Mathe. Titel - Link zu Artikel. Verweis auf anderen Beitrag einfgen Rechtsklick auf Beitragstitel, Adresse kopieren, und in den Text einfgen.
No comments:
Post a Comment