mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP FIR Filter etwas "eigenartig" implementieren (schneller FIR)


Autor: Mario (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,
und ein gutes neues 2010.

Mein Signal, den ich filtern möchte besteht aus rechnerischen 
Ergebnissen. Mein DSP berechnet 70 Ergebnisse pro Sekunde. Diese 
Ergebnisse mussten mit einer Frequenz um die 1,5Hz zwischen Maximum und 
Minimum schwangen, alle anderen Schwankungen möchte ich vollständig 
herausfiltern und das möglichst in REALTIME.

Also, 70Hz Samplefrequenz, erste Eckfrequenz 0,75Hz, zweite Eckfrequenz 
3,0Hz. Ein einigermaßen brauchbares FIR Bandpass, ist mit weniger als 
200 Taps nicht zu realisieren. Bei 200 Taps kommt das gefilterte 
Ergebnis mit 100 Samples Verspätung, also ca. 1,5 Sekunden verspätet.

Was kann ich machen, um das Ergebnis zu beschleunigen?

Kann ich vielleicht mit einem leichten Filter (z.B. 51 Taps) bessere 
Ergebnisse erzielen, wenn ich den bereits gefilterten Ergebnissen nutze?

Damit meine ich:
Z.B. 51 Samples in einem Buffer aufheben und mit 51 Taps multiplizieren 
und akkumulieren, dann das mittlere original Sample (Sample 26) mit dem 
Ergebnis überschreiben.
Schritt zwei: Wenn ein neues Sample kommt (zu Platz 51), wird das 
gefilterte überschriebene Sample (früher Platz 26) zu Platz 25 
verschoben und das (noch) original Sample auf dem Platz 26 wird jetzt 
mit dem neuen Ergebnis überschreiben.
u.s.w.

Ich weiß nicht ob diese Konstruktion funktioniert, vielleicht habt Ihr 
Hinweise oder bessere Ideen.

Danke Euch

: Verschoben durch Admin
Autor: Mmmh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist so ein Fall, in dem der Fragesteller einen Zwischenschritt 
präsentiert aber nicht klärt was er eigentlich tun will.

Siehe http://www.mikrocontroller.net/articles/Netiquette
und insbesondere http://www.tty1.net/smart-questions_de.html#goal

Kannst Du uns bitte noch was über Deine Vorbildung in dem fraglichen 
Bereich schreiben? Dankeschön.

Autor: Mario (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mmmh schrieb:
> Das ist so ein Fall, in dem der Fragesteller einen Zwischenschritt
> präsentiert aber nicht klärt was er eigentlich tun will.
>
> Siehe http://www.mikrocontroller.net/articles/Netiquette
> und insbesondere http://www.tty1.net/smart-questions_de.html#goal
>
> Kannst Du uns bitte noch was über Deine Vorbildung in dem fraglichen
> Bereich schreiben? Dankeschön.

Okay: Ich habe sehr viel geschrieben und meine Frage ist eigentlich ganz 
einfach:

Wie kann ich 1,5Hz aus einem Signal mit 70Hz Samplefrequenz möglichst 
schnell herausfiltern?

Meine Vorbildung in dem fraglichen Bereich?
Meinst Du meine Qualifikation?
Bitteschön.

Ich bin ein Hobbybastler, eigentlich ein Dipl.-Ing. für Elektro- und 
Informationstechnik, das ist aber nicht mein Beruf geworden und deshalb 
habe ich einiges verlernt.

Autor: Mmmh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mario schrieb:
> Okay: Ich habe sehr viel geschrieben und meine Frage ist eigentlich ganz
> einfach:
>
> Wie kann ich 1,5Hz aus einem Signal mit 70Hz Samplefrequenz möglichst
> schnell herausfiltern?

Das habe ich schon verstanden.

Ich schrieb:
>Das ist so ein Fall, in dem der Fragesteller einen Zwischenschritt
>präsentiert aber nicht klärt was er eigentlich tun will.
Hast Du die Hinweise in den Links gelesen? Dort ist erklärt was fehlt 
und warum.

Autor: Mmmh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mario schrieb:
> Meine Vorbildung in dem fraglichen Bereich?
> Meinst Du meine Qualifikation?
Nein. Im Rahmen welcher Qualifikation Du deine Vorbildung erworben hast, 
ist unwichtig.

Das ist übrigens so: Wenn ich die Qualifikation wissen will, benutze ich 
das Wort "Qualifikation". In diesem Fall wollte ich die Vorbildung 
wissen und benutze deswegen das Wort "Vorbildung". Das ist also kein 
Zufall.
Näheres regeln gängige Wörterbücher. Wenn man Grün meint, benutzt man 
"Grün", wenn man Rot meint "Rot" uswusf.
Klingt ein bischen sehr hart so, nicht wahr? Ist aber nicht böse 
gemeint.

Autor: Helmut S. (helmuts)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mario,
hast du es schon mal mit einem IIR-Filter probiert. Schau da mal den 
Group Delay im Durchlassbereich an. Das gibt dir dann einen Anhaltspunkt 
mit welcher Verögerung du mindestens rechnen musst.

Autor: Mario (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Helmut,
Vielen Dank.
Nein, einen IIR-Filter habe ich nicht probiert, ich habe auch nur 
ScopeFIR Software da, also keine Software für IIR-Filter. Wenn Ihr aber 
meint, dass IIR-Filter die Lösung wäre, dann werde ich eine Software für 
IIR besorgen und mich über die Implementierung vom IIR-Filter schlau 
machen.

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Ganze ist eher einfach. Ein Filter mit 1.5Hz soll schneller als 1.5 
sekunden sein. Das waeren in der Ordnung von 2 Schwingungen.
Wie schnell ist denn ein einfacher Tiefpass ?

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was Helmut vielleicht damit sagen wollte: Mit IIR Filtern lassen sich 
minimalphasige Filter erzeugen. Weniger Phasenverschiebung als damit 
geht einfach nicht. Wenn also eine IIR Implementierung nicht reicht, 
geht es vermutlich nicht. Da Du wohl kein Band brauchst, sondern nur 
eine Frequenz wäre evtl ein IIR Resonanzfilter anzudenken.

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Resonanzfilter muss erst einschwingen, was Q perioden dauert. Ein 
Tiefpass ist da besser.

Autor: Mario (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay, ich werde mich über die IIR-Filtern schlau machen und 
gegebenenfalls ausprobieren. Über IIR-Filtern gibt es im Internet sehr 
viele ausführliche Informationen.

@Karl,
Wo kann ich brauchbare Informationen über die IIR-Resonanzfilter finden. 
Google zeigt nur einige wenige Seiten mit dem Begriff 
IIR-Resonanzfilter. Haben die Dinger vielleicht auch einen anderen 
Namen?

Auch wenn die Dinger wahrscheinlich für meine Anwendung ungeeignet sind, 
weil sie vermutlich lange nachschwingen und weil sie (wie Hacky meint) 
erst einschwingen müssen, was Q Perioden dauert, wäre ich an 
Informationen über derartige Filter sehr interessiert.

Autor: Mustafa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mario schrieb:
> Wo kann ich brauchbare Informationen über die IIR-Resonanzfilter finden.
> Google zeigt nur einige wenige Seiten mit dem Begriff
> IIR-Resonanzfilter. Haben die Dinger vielleicht auch einen anderen
> Namen?

Digital biquad filter

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.