mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Filter-Routinen


Autor: Harry (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Harry (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
will mir keiner antworten oder hat keiner n'e Ahnung davon?
bis

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was soll's denn sein, FIR oder IIR-Filter?

mit ;-) Gruss,

Peter

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Harry (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter

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

Gruß
Michael

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal hier, da findest du einen Crash-Kurs zu dem Thema:

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

Gruss,

Peter

Autor: Wolfram Prudlow (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.