Hallo ich bin gerade dabei nen Programm zu schreiben mit dem ich über den USB Port Messdaten empfange über nen Interface und das dann als Oszilloskop visualisiere. Das klappt auch schon alles. Nur bei der Darstellung meiner Messdaten muss ich noch etwas tun und zwar nen Digitalen Tiefpass programmieren. Hat einer von euch damit schon erfahrung? Ich möchte das ganze im C++ Code schreiben, leider fehlt mir dazu noch der Ansatz. Danke im Voraus.
Such mal im Netz nach IIR-Filtern. Damit lassen sich softwaremäßig u.a. Filter mit den Eigenschaften von analogen Filtern realisieren. Der Programmieraufwand ist gering, für die Bestimmung der Parameter aus den gewünschten Eigenschaften (Ordnung, Grenzfrequenz usw.) ist aber etwas Theorie erforderlich. http://de.wikipedia.org/wiki/IIR-Filter Wenn es dir hauptsächlich nur um die optische Glättung der Kurve geht, um störendes Messrauschen zu entfernen, findest du vielleicht hier etwas passendes: http://de.wikipedia.org/wiki/Gl%C3%A4ttung
Das einfachste Filter ist (x1 + x2)/2. Etwas besser ist (x1)/4 + (x2)/2 + (x3)/4 und das Ergebnis gibt das gefilterte x2. Du musst halt warten, bis du x3 auch empfangen hast, um x2 zu bestimmen. Alternativ: Wenn das Scope-Signal periodisch ist, kannst du n ganze Zeilen zwischenspeichern und n-fach mitteln.
Die von HildeK vorgeschlagenen Lösungen sind in diesem Fall vollkommen nutzlos. Sowohl der Durchlassbereich als auch die Sperrdämpfung sind eine Katastrophe. Entweder einen vernünftigen IIR, was mit doubles auch einigermaßen impementierbar ist, dafür aber alle nachteile eines analogen Filters mit sich bringt, oder FIR, was meist mehr Rechenaufwand bedeutet, dafür aber z.B. konstante Gruppenlaufzeit bieten kann. Ein analoges Anti-Aliasing Filter brauchst du aber eigentlich sowieso.
Hi, danke schonmal für euere Postings ... Werde mir mal den IIR Filter zur Gemüte ziehen. Hoffe ich steige da durch und komme mit der Programmierung voran. :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.