Filterreihenfolge gegen Anzahl der Abgriffe gegen Anzahl der Koeffizienten


28

Ich lerne DSP langsam und versuche, eine Terminologie zu verwenden:

  • Frage 1 : Angenommen, ich habe die folgende Filterdifferenzgleichung:

    y[n]=2x[n]+4x[n2]+6x[n3]+8x[n4]

    Es gibt 4 Koeffizienten auf der rechten Seite. Sind die "Anzahl der Abgriffe" auch 4? Ist die "Filterreihenfolge" auch 4?

  • Frage 2 : Ich versuche die MATLAB- fir1(n, Wn)Funktion zu verwenden. Wenn ich einen 10-Tap-Filter erstellen wollte, würde ich ?n=10

  • Frage 3 : Angenommen, ich habe die folgende rekursive (vermutlich IIR) Filterdifferenzgleichung:

    y[n]+2y[n1]=2x[n]+4x[n2]+6x[n3]+8x[n4]

    Wie würde ich die "Anzahl der Abgriffe" und die "Filterreihenfolge" bestimmen, da die Anzahl der Koeffizienten auf der linken und rechten Seite unterschiedlich ist?

  • Frage 4 : Sind die folgenden logischen if-and-only-if-Anweisungen wahr?

    • Der Filter ist rekursiv Der Filter ist IIR.
    • Der Filter ist nicht rekursiv Der Filter ist FIR.

Antworten:


37

OK, ich werde versuchen, Ihre Fragen zu beantworten:

Q1: Die Anzahl der Abgriffe entspricht nicht der Filterreihenfolge. In Ihrem Beispiel beträgt die Filterlänge 5, dh der Filter erstreckt sich über 5 Eingangssamples [ ]. Die Anzahl der Abgriffe entspricht der Filterlänge. In Ihrem Fall haben Sie einen Abgriff gleich Null (der Koeffizient für ), so dass Sie zufällig 4 Abgriffe ungleich Null haben. Dennoch ist die Filterlänge 5. Die Reihenfolge eines FIR-Filters ist die Filterlänge minus 1, dh die Filterreihenfolge in Ihrem Beispiel ist 4.x(n),x(n1),x(n2),x(n3),x(n4)x(n1)

F2: Das in der Matlab-Funktion fir1 () ist die Filterreihenfolge, dh Sie erhalten einen Vektor mit Elementen als Ergebnis (also ist Ihre Filterlänge = Anzahl der Taps).nn+1n+1

F3: Die Filterreihenfolge ist wieder 4. Sie können sie anhand der maximalen Verzögerung sehen, die zur Implementierung Ihres Filters erforderlich ist. Es ist in der Tat ein rekursiver IIR-Filter. Wenn Sie mit Anzahl der Abgriffe die Anzahl der Filterkoeffizienten meinen, dann haben Sie für ein IIR-Filter order im Allgemeinen Koeffizienten, obwohl in Ihrem Beispiel mehrere von ihnen Null sind.nth2(n+1)

F4: Dies ist eine etwas knifflige Frage. Beginnen wir mit dem einfachen Fall: Ein nicht-rekursives Filter hat immer eine endliche Impulsantwort, dh es ist ein FIR-Filter. Normalerweise hat ein rekursives Filter eine unendliche Impulsantwort, dh es ist ein IIR-Filter, aber es gibt entartete Fälle, in denen eine endliche Impulsantwort unter Verwendung einer rekursiven Struktur implementiert wird. Der letztere Fall ist jedoch die Ausnahme.


3
+1: Gute Antwort, besonders der subtile Punkt 4. Wie Sie sagen, ist es durchaus möglich (und manchmal wünschenswert), FIR-Filter in rekursiver Form zu schreiben.
Peter K.

Zu Q3: Bezieht sich die Filterreihenfolge aus "Die maximale Verzögerung, die zum Implementieren Ihres Filters erforderlich ist" nur auf die rechte Seite? Ich gehe davon aus, dass dies sowohl für FIR- als auch für IIR-Filter gelten muss. Wenn die Antwort "Ja" lautet, hat die rechte Seite eines IIR-Filters keinen Einfluss auf die Filterreihenfolge, oder?
Stackoverflowuser2010

1
Zu Q4: Sind die folgenden logischen Implikationen korrekt: (1) Rekursiver Filter -> ("impliziert") FIR oder IIR; (2) Nichtrekursives Filter -> FIR; (3) FIR -> nicht rekursiv oder rekursiv (selten); (4) IIR -> rekursiv. Sind diese Aussagen korrekt?
Stackoverflowuser2010

2
Q3: Die Filterreihenfolge ist die max. Verzögerung erforderlich, egal ob es erforderlich ist, oder zu verzögern. Wenn Ihr Filter also , haben Sie eine Filterreihenfolge von 10.x ( n ) y ( n ) + y ( n - 10 ) = x ( n )y(n)x(n)y(n)+y(n10)=x(n)
Matt L.

2
F4: Ihre Implikationen sind korrekt.
Matt L.

3
  • Frage 1: Die Anzahl der Abgriffe = Anzahl der Koeffizienten s = Länge des Filters im Falle eines FIR-Filters. Die Reihenfolge der Filter entspricht der Länge von Filter-1.
  • Frage 2: sollte auf 9 gesetzt werden, wenn Sie den FIR-Filter verwenden.n
  • Frage 3: Dies ist ein IIR-Filter, da Sie ein Feedback haben. Versuchen Sie, die Gleichung in eine z-Transformation umzuwandeln, und drücken Sie sie als Übertragungsfunktion aus, z. B. Dann können Sie sehen, wonach Sie fragen, oder Sie erfahren möglicherweise mehr über IIR Filter, um ihre Reihenfolge zu bestimmen.
    Y(z)/X(z)=H(z)
  • Frage 4: FIR-Filter ist direkt bedeutet, dass es keine Rückkopplung gibt, aber für IIR-Filter hätten Sie eine Rückkopplung. Ich würde vorschlagen, FIR-Filter zu verwenden, da sie eine lineare Phase haben. Andererseits sind die Berechnungen der IIR-Filter bei gleicher Größe des FIR-Filters geringer, da das IIR-Filter weniger Koeffizienten aufweist, das IIR-Filter jedoch keine lineare Phase aufweist. Also, es ist ein Kompromiss, den Sie sagen können.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.