Filter-Routinen

Gast #10562
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ß
Gast #10564
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
Gast #10566
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
Gast #10567
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.
Gast #10568
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
Gast #10570
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).
Gast #10572
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
Gast #10573
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren