Filter-Routinen

Gast #10562
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
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
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
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
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 24 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.