Forum: Digitale Signalverarbeitung / DSP / Machine Learning Filter-Routinen


von Harry (Gast)


Lesenswert?

Hallo Leute,
suche Hochpass-, Tiefpass-, Bandpass-Routinen, für die MCS-51 oder AVR- 
Familie. Jede Sprache - nur kein Pascal!
Ich muß eine analoge Filterschaltung softwaremäßig nachbilden. Die 
Filterkette besteht aus: Tief- und Hochpass, Integrator, RMS- und 
Spitze-Spitze-Konverter.
Kann mir jemand einen Typ geben wie ich an solche Routinen rankomme?
Gruß

von Harry (Gast)


Lesenswert?

Hi,
will mir keiner antworten oder hat keiner n'e Ahnung davon?
bis

von Michael (Gast)


Lesenswert?

Hallo Harry

Filter 1 Ordnung, Integrator,RMS und Spitze Spitze Konverter sind (in 
Basic) nicht allzu schwehr. An Filtern Höherer Ordnung wäre ich auch 
sehr interessiert es steckt allerdings einige Mathematik dahinter.
Gruß
Michael

von Peter (Gast)


Lesenswert?

Was soll's denn sein, FIR oder IIR-Filter?

mit ;-) Gruss,

Peter

von Michael (Gast)


Lesenswert?

Hallo Peter

Wenn ich wüßte was ein FIR oder IIR ist könte ich Dir antworten.
Ein Basic Listing für ein Besselt-Tiefpaß wäre für den Anfang ganz toll 
(wird am Häüfigsten benötigt) Butterwoth Verhalten wäre auch ok.

Gruß
Michael

von Peter (Gast)


Lesenswert?

Du kennst den Unterschied zwischen FIR (=finite impulse response) und 
IIR (infinite impulse response)-Filtern nicht und beschwerst dich, hier 
hätte keiner Ahnung?

Naja, ich sag schon nichts mehr.

von Harry (Gast)


Lesenswert?

Langsam Leute,
ICH hatte mich beschwert, nicht der Peter!
Das mit 'keine Ahnung haben' war ja nur so n'e Redensart, um euer Wissen 
ein bisschen zu lockern - also nichts persönliches, OK?!
Mein Problem bei der Filterprogrammierung ist die Programmierung an 
sich. Ich hab n'e Menge Erfahrung mit analogen Schaltungen (bzw. ihre 
Berechnung), aber was die Programmierung betrifft - naja, da habe ich 
noch n'e Menge zu lernen!
Wie ich Anfangs schon erwähnte, besitze ich eine (in Hardware) 
selbstentwickelte Analogschaltung die so funktioniert wie sie geplant 
war. Jetzt erfuhr ich aber, dass man den ganzen Krempel auch über 
Software laufen lassen kann. Ich hab mir da n' paar Bücher angeschaut 
und zu meinem Schrecken bemerken müssen, dass jeder Autor seine eigne 
bevorzugte Programmiersprache verwendet. Da ich keinen Bock habe mir 
jedesmal neue Bücher über exotische Programmiersprachen zu besorgen und 
dann noch wochenlang zu büffeln um die entsprechende  Programmiersprache 
zu verstehen, suche ich irgendwie ein Buch oder eine Arbeit die über das 
allg. Programmieren (in Basic oder C) digitaler Filterschaltungen 
(Tief-, Hoch- Bandpass), RMS-, Mittelwertbildung usw. beschreibt. Es 
sollte aber was praktisches sein!
Ich möchte das Rad also nicht schon wieder erfinden müssen, das 
überlasse ich lieber denen, die das Zeug dazu haben!
Kennt jemand von Euch so ein geniales Universalwerk? Vielleicht mit den 
Titel "Das Programmieren digitaler Filter für den Praktiker" oder so?
bis

von Michael (Gast)


Lesenswert?

Hallo Peter

Kannst Du nun etwas beitragen zu den digitalen Filter die viele Leute 
interessieren könnten?

Gruß
Michael

von Rainer (Gast)


Lesenswert?

Hmmm... Kann mich erinnern, sowas mal in der Schule geschrieben zu 
haben. Soweit ich mich erinnere war das ein Tiefpass und nichts anderes 
als die letzten paar Werte es Signals zu speichern und dann keden mit 
einem bestimmten Koeffizienten zu multiplizieren. Dann noch addieren, 
und fertig :). Die Werte haben wir bekommen, das war aus MatLab.
Mehr kan nich dir leider auch nicht sagen, soll nur heißen dass 
zumindest ein TP ziemlich einfach ist (und der war 4. Ordnung oder so).

von Peter (Gast)


Lesenswert?

Schau mal hier, da findest du einen Crash-Kurs zu dem Thema:

http://iem.kug.ac.at/lehre/skripten/

Gruss,

Peter

von Wolfram Prudlow (Gast)


Lesenswert?

Hi
Welche Frequenzen willst du den durch den Filter schicken?
Alle Filter hintereinander ist ein ganz schöner Rechenaufwand.(selbst 
wenn multiplikationsbefehle schon in der Hardware vorhanden sind)
Über den genauen aufwand kann man ohne genaue Angaben keine Aussagen 
treffen.

In Matlab sind funktionen integriert mit denen man sowohl mathematisch 
als auch praktisch filter simulieren kann. Es unterstützt auch diese 
Filter auf Boards wie das EZ-Lite(DSP-Kit) zu programmieren.Ausserdem 
kann es auch C-code für Funktionen erzeugen.(Ich weiss aber nicht ob das 
auch für den Signalverarbeitungsteil gilt).Praktiker können ihre Filter 
auch selbst zeichnen...
Das Programm kostet aber auch ne Menge
Überlege es dir aber ob ein DSP-Kit nicht besser für deine Anforderungen 
geeignet ist da dort auch ähnliche Tools mitgeliefert werden.

CU Wolfram

von Sebastian (Gast)


Lesenswert?

Hallo,

jetzt muß ich auch noch meinen Senf dazugeben:
Man kann recht einfach ein Tiefpass-Filter programmieren, indem man eine 
gewisse Anzahl von Samples x(n) aufnimmt, und dann daraus die 
auszugebende (gefilterte) momentane Größe berechnet:

y = a1 * x(i) + a2 * x(i-1) + a3 * x(i-2)...

Im Klartext: Man hat ein Array von gesampleten Werten und errechnet den 
auszugebenden (gefilterten) Momentanwert, indem man die letzten 
soundsoviel Samples mit bestimmten Koeffizienten multipliziert und das 
ganze aufaddiert.
Diese Koeffizienten ergeben dann die Filtercharakteristik und ihre 
Berechnung fängt da an, wo mein Wissen aufhört.

Übrigens: bei den AVR-Beispielsourcecodes ist ein einfacher 
Tiefpassfilter dabei.

Gruß,

Sebastian

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
Noch kein Account? Hier anmelden.