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


von Mario (Gast)


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
von Mmmh (Gast)


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.

von Mario (Gast)


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.

von Mmmh (Gast)


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.

von Mmmh (Gast)


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.

von Helmut S. (helmuts)


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.

von Mario (Gast)


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.

von Purzel H. (hacky)


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 ?

von Karl (Gast)


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.

von Purzel H. (hacky)


Lesenswert?

Ein Resonanzfilter muss erst einschwingen, was Q perioden dauert. Ein 
Tiefpass ist da besser.

von Mario (Gast)


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.

von Mustafa (Gast)


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

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.