Obwohl ich eine solide Erfahrung im Entwerfen von Audio-Engines und dergleichen habe, bin ich ziemlich neu im Bereich des Digital Filter Design, insbesondere von IIR- und FIR-Filtern. Mit anderen Worten, ich versuche so viel wie möglich über das Entwerfen von Filtern und das Ableiten ihrer Differenzgleichungen zu lernen. Ich beginne mit den Grundlagen, bitte nehmen Sie mich mit, wie gesagt, ich versuche zu lernen.
Hier ist meine Frage:
Angenommen, ich möchte einen Tiefpassfilter mit einer bestimmten Grenzfrequenz (z. B. 300 Hz) entwerfen. Was wäre der beste Weg, die Übertragungsfunktion mathematisch abzuleiten und dann die jeweilige Differenzgleichung abzuleiten, um den Filter in der direkten Form I und der direkten Form II (oder vorerst nur DF-1 ...) zu implementieren?
Ich habe ein gewisses Verständnis für Übertragungsfunktionen und wie sie sich auf Differenzgleichungen aus einem hervorragenden Material im Web beziehen. Leider setzt einiges davon ein gutes Vorwissen voraus, so dass es eher verwirrend als hilfreich für meine Suche ist. Ich brauche also ein ausführlicheres Beispiel, das mir hilft, die Punkte zu verbinden.
Ich bin also auf der Suche nach Hilfe bei der Aufschlüsselung des Prozesses, angefangen bei der Auswahl der Grenzfrequenz bis hin zur Ableitung der Differenzgleichung.
Jede Hilfe wird sehr geschätzt. Ich bin mit vielen Konzepten vertraut - Impulsantwort, DFTs, die Mathematik dahinter. Ich schätze, ich brauche mehr Hilfe beim Konzept der Z-Transformation und der Verwendung von Pol / Null, um die Übertragungsfunktion des Filters zu entwerfen und dann Wie funktioniert die Grenzfrequenz? Spielen Sie in all dem, um die Differenzgleichung abzuleiten.
Da ich am besten aus Beispielen lerne, dachte ich, ich würde hier fragen. Vielen Dank an alle, die die Zeit finden, mir zu helfen.
quelle
Antworten:
Digitales Filterdesign ist ein sehr umfangreiches und ausgereiftes Thema, und - wie Sie in Ihrer Frage erwähnt haben - steht eine Menge Material zur Verfügung. Ich möchte hier versuchen, Ihnen den Einstieg zu erleichtern und das vorhandene Material zugänglicher zu machen. Anstelle von digitalen Filtern sollte ich eigentlich von zeitdiskreten Filtern sprechen, da ich hier die Koeffizienten- und Signalquantisierung nicht berücksichtigen werde. Sie kennen sich bereits mit FIR- und IIR-Filtern aus und kennen auch einige Filterstrukturen wie DF I und II. Lassen Sie mich dennoch mit einigen Grundlagen beginnen:
Ein nichtrekursives lineares zeitinvariantes Filter (LTI-Filter) kann durch die folgende Differenzgleichung beschrieben werden
Dabei ist die Ausgangssequenz, x ( n ) die Eingangssequenz, n der Zeitindex, h k die Filterkoeffizienten und N die Filterlänge (die Anzahl der Abgriffe). Die Filterabgriffe h k sind auch die Impulsantwort des Filters, denn wenn das Eingangssignal ein Impuls ist, dh x ( n ) = δ ( n ) , dann ist y ( n ) = h ny( n ) x ( n ) n hk N hk x ( n ) = δ( n ) y( n ) = hn (wenn der Speicher des Filters mit Nullen initialisiert wurde). Gleichung (1) beschreibt ein lineares zeitinvariantes System mit endlicher Impulsantwort (FIR). Die Summe auf der rechten Seite von (1) ist eine Faltungssumme, dh das Ausgangssignal wird erhalten, indem das Eingangssignal mit der Impulsantwort gefaltet wird. Dies ist immer wahr, aber für IIR-Filter können wir die Faltungssumme nicht explizit berechnen, da die Impulsantwort unendlich lang ist, dh es gibt unendlich viele Koeffizienten hk . Ein wichtiger Vorteil von FIR-Filtern ist, dass sie immer stabil sind, dh bei einer begrenzten Eingangssequenz ist die Ausgangssequenz immer begrenzt. Ein weiterer Vorteil ist, dass FIR-Filter immer mit einer genau linearen Phase realisiert werden können, dh sie fügen außer einer reinen Verzögerung keine Phasenverzerrung hinzu. Darüber hinaus ist das Designproblem in der Regel einfacher, wie wir später sehen werden.
Ein rekursives LTI-Filter wird durch die folgende Differenzgleichung beschrieben:
Filter können gemäß den Spezifikationen entweder im Zeitbereich (Abtastbereich) oder im Frequenzbereich oder in beiden Bereichen entworfen werden. Da Sie in Ihrer Frage eine Grenzfrequenz erwähnt haben, sind Sie vermutlich eher an Spezifikationen im Frequenzbereich interessiert. In diesem Fall müssen Sie sich die Frequenzgänge von FIR- und IIR-Systemen ansehen. Der Frequenzgang eines Systems ist die Fouriertransformation seiner Impulsantwort, sofern diese existiert (was bei stabilen Systemen der Fall ist). Der Frequenzgang eines FIR-Filters ist
Lassen Sie uns nun einen kurzen Blick auf die Filterdesignmethoden werfen. Für FIR-Filter können Sie eine inverse Fourier-Transformation des gewünschten Frequenzgangs durchführen, um die Impulsantwort des Filters zu erhalten, die direkt den Filterkoeffizienten entspricht. Da Sie die gewünschte Antwort durch eine Impulsantwort endlicher Länge approximieren, sollten Sie ein glattes Fenster auf die erhaltene Impulsantwort anwenden, um Oszillationen in der tatsächlichen Frequenzantwort aufgrund des Gibbs-Phänomens zu minimieren. Diese Methode wird Frequenzabtastmethode genannt.
Für einfache Standardfilter wie ideale Tiefpass-, Hochpass-, Bandpass- oder Bandsperrfilter (und einige andere) können Sie sogar die genaue Impulsantwort analytisch berechnen, indem Sie die inverse Fourier-Transformation der idealen gewünschten Antwort durchführen:
Wie bei idealen frequenzselektiven Filtern ist dieses Integral für stückweise konstante Sollantworten leicht auszuwerten. Dies gibt Ihnen eine unendlich lange, nicht kausale Impulsantwort, die gefenstert und verschoben werden muss, um sie endlich und kausal zu machen. Diese Methode wird als Fensterdesign bezeichnet.
Es gibt natürlich viele andere FIR-Filterentwurfsmethoden. Eine wichtige numerische Methode ist der berühmte Parks-McClellan-Austauschalgorithmus, mit dem optimale Filter mit konstanten Durchlass- und Sperrwelligkeiten entworfen werden. Es ist eine numerische Approximationsmethode und es gibt viele Software-Implementierungen, z. B. in Matlab und Octave.
Es gibt natürlich viele weitere interessante und nützliche Methoden, abhängig von der Art der Spezifikationen, die Sie haben, aber ich hoffe, dass dies Ihnen den Einstieg erleichtert und alle Materialien, die Sie finden, verständlicher macht. Ein sehr gutes (und kostenloses) Buch, das einige grundlegende Filterdesignmethoden (und vieles mehr) behandelt, ist die Einführung in die Signalverarbeitung von Orfanidis. Dort finden Sie verschiedene Designbeispiele. Ein weiterer großer Klassiker ist Digital Filter Design von Parks and Burrus.
quelle