Dokumentation zu Filtern im Allgemeinen

11

Ich habe diese Frage bereits auf StackOverflow gepostet . Ich habe einen Vorschlag bekommen, hier eine bessere Antwort zu finden.

Um die Frage präziser zu gestalten, bin ich an einer Einführung in digitale Filter interessiert. Jede Ressource ist gut.

Aber zuerst bin ich zufrieden, wenn mich jemand auf einige Ressourcen verweisen könnte, die diesen Filter erklären (in Android verwendet):

http://gitorious.org/rowboat/frameworks-base/blobs/671a6ff4be11b3e2d8eb017e0c7a78e6133fb2b8/services/sensorservice/SecondOrderLowPassFilter.cpp

Was mich interessiert, ist die Art und Weise, wie die Filterparameter ausgewählt werden. Ich kann es zwar kopieren, ohne nachzudenken, aber ich denke, ich sollte das grundlegende Konzept / die Idee dahinter verstehen, bevor ich es verwende.

Vielen Dank,

Iulian

Iulian Şerbănoiu
quelle

Antworten:

11

Sie können den Ausdruck für die Koeffizienten ableiten, indem Sie eine bilineare Transformation des folgenden analogen Tiefpass-Prototypfilters durchführen

H.(s)=w02s2+(w0/.Q.)s+w02

w0 die Grenzfrequenz ist.

Sie können die nachschlagen bilineare Transformation auf Wikipedia nachschlagen .

1/.2 . Es ist zu beachten, dass im Konstruktor die Umkehrung von Q berechnet und der Variablen iQ zugewiesen wird, die bei der Berechnung der Koeffizienten verwendet wird. Beachten Sie auch, dass die Variable K den "frequenzverzerrten" Wert der angegebenen Grenzfrequenz enthält. Weitere Informationen zum Phänomen der Frequenzverzerrung finden Sie unter dem obigen Link.

Sie finden viele Beispiele für das Design digitaler Filter mit bilinearer Transformation. Ich habe dieses gefunden , das dem Android-Beispiel ziemlich nahe kommt.

Niaren
quelle
Vielen Dank. Ich erinnere mich an Mathe, die ich im College gemacht habe. Leider war niemand da, um mir auch ein gutes praktisches Beispiel zu zeigen, oder ich befasste mich mit etwas anderem ...
Iulian Şerbănoiu
5

Eine wirklich gute und gründliche Einführung in digitale Filter ist https://ccrma.stanford.edu/~jos/filters/filters.html . Ihr besonderes Beispiel ist ein sehr einfacher Tiefpassfilter 2. oder 4. Ordnung. Wenn Sie das Objekt "Biquad" verwenden, erhalten Sie einen Butterworth-Filter zweiter Ordnung. Wenn Sie das "CascadedBiquad" -Objekt verwenden, erhalten Sie einen sogenannten Linkwitz Riley-Filter 4. Ordnung (aber keinen Butterworth 4. Ordnung). Die Implementierung ist ziemlich spezifisch. Mit etwas mehr Arbeit können Sie etwas tun, das viel allgemeiner und für alle Anwendungen verwendbar ist.

Hilmar
quelle
Ja, ich möchte die Filtertheorie wirklich verstehen, damit ich die von mir verwendeten Filter steuern kann. Der in der Frage erwähnte Filter hat mir klar gemacht, dass ich nicht nur verstehen sollte, wie es funktioniert, sondern auch in der Lage sein sollte, abhängig von der Eingabe meine eigenen Filter zu entwerfen. Netter Link, danke!
Iulian Şerbănoiu
5

Meine erste Referenz, die ich als sehr hilfreich empfand, war der Leitfaden für Wissenschaftler und Ingenieure zur digitalen Signalverarbeitung . Ich denke, es ist eine starke Sache, dass es darauf abzielt, den Leser mit den Konzepten und der Terminologie von DSP vertraut zu machen, ohne zu tief in die Mathematik einzusteigen. Dieser Ansatz passte zu meinem Lernstil und Hintergrund als Software Engineer mit einem leichten Schwerpunkt auf EE. Heutzutage gehe ich immer neue Themen auf diese Weise an und versuche zuerst, die übergeordneten Konzepte zu verstehen und dann mit anderen Informationsquellen, die detaillierter / mathematischer sind, tiefer in die Details einzudringen.

spade78
quelle
Das habe ich wieder gelesen, da es das einzige war, von dem ich weiß, dass es Verweise auf ein solches Thema enthält. Vielen Dank!
Iulian Şerbănoiu