Processing math: 100%

Zur Verdeutlichung digitaler Filter

Aus LNTwww
Version vom 24. Februar 2025, 11:42 Uhr von Höfler (Diskussion | Beiträge) (Textersetzung - „Biografien_und_Bibliografien/An_LNTwww_beteiligte_Mitarbeiter_und_Dozenten#Prof._Dr.-Ing._habil._G.C3.BCnter_S.C3.B6der_.28am_LNT_seit_1974.29“ durch „Biografien_und_Bibliografien/An_LNTwww_beteiligte_Mitarbeiter_und_Dozenten#Prof._Dr.-Ing._habil._G.C3.BCnter_S.C3.B6der_.28am_LNT_von_1974-2024.29“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu:Navigation, Suche

Applet in neuem Tab öffnen   Open English Version


Programmbeschreibung


Das Applet soll die Eigenschaften digitaler Filter verdeutlichen, wobei wir uns auf Filter der Ordnung  M=2  beschränken.  Behandelt werden sowohl nichtrekursive Filter  (FIRFinite Impulse Response)  als auch rekursive Filter  (IIRInfinite Impulse Response).

Das Eingangssignal  x(t)  wird durch die Folge  xν  seiner Abtastwerte dargestellt, wobei  xν  für  x(ν·TA)  steht.  Berechnet wird die Ausgangsfolge  yν,  also die zeitdiskrete Darstellung des Ausgangssignal  y(t).

  • TA  bezeichnet den zeitlichen Abstand  zwischen zwei Abtastwerten.
  • Zudem beschränken uns auf kausale Signale und Systeme, das heißt, es gilt  xν0  sowie  yν0  für  ν<0.


Weiter ist anzumerken:  Wir bezeichnen die Ausgangsfolge  yν  als

(1)   die zeitdiskrete Impulsantwort  hν, wenn am Eingang die  „zeitdiskrete Diracfunktion”  anliegt:         xν=1, 0, 0, 0, 0, 0, 0,...,

(2)  die zeitdiskrete Sprungantwort  σν, wenn am Eingang die  „zeitdiskrete Sprungfunktion”  anliegt:         xν=1, 1, 1, 1, 1, 1, 1,...,

(3)  die  zeitdiskrete Rechteckantwort  ρ(2,4)ν, wenn am Eingang die  „zeitdiskrete Rechteckfunktion”  anliegt:     xν=0, 0, 1, 1, 1, 0, 0,...;
        In Hochkommata angegeben sind hier der Beginn der Einsen  (ν=2)  und die Stelle der letzten Eins  (ν=4).


Theoretischer Hintergrund

Allgemeines Blockschaltbild

Jedes Signal  x(t)  kann an einem Rechner nur durch die Folge  xν  seiner Abtastwerte dargestellt werden, wobei  xν  für  x(ν·TA)  steht.

Blockschaltbild eines digitalen (IIR–) Filters der Ordnung  M
  • Der zeitliche Abstand  TA  zwischen zwei Abtastwerten ist dabei durch das  Abtasttheorem  nach oben begrenzt.
  • Wir beschränken uns hier auf kausale Signale und Systeme, das heißt, es gilt  xν0  für  ν<0.
  • Um den Einfluss eines linearen Filters mit Frequenzgang  H(f)  auf das zeitdiskrete Eingangssignal  xν  zu erfassen, bietet es sich an, auch das Filter zeitdiskret zu beschreiben.  Im Zeitbereich geschieht das mit der zeitdiskreten Impulsantwort  hν.
  • Rechts sehen Sie das entsprechende Blockschaltbild.  Für die Abtastwerte des Ausgangssignals  yν  gilt somit:
yν=Mμ=0aμxνμ+Mμ=1bμyνμ.

Hierzu ist Folgendes zu bemerken:

  • Der Index  ν  bezieht sich auf Folgen, zum Beispiel am Eingang  xν  und Ausgang   yν.
  • Den Index  μ  verwenden wir dagegen für die Kennzeichnung der  a– und  b–Filterkoeffizienten.
  • Die erste Summe beschreibt die Abhängigkeit des aktuellen Ausgangs  yν  vom aktuellen Eingang  xν  und von den  M  vorherigen Eingangswerten  xν1, ... , xνM.
  • Die zweite Summe kennzeichnet die Beeinflussung von  yν  durch die vorherigen Werte  yν1, ... , yνM  am Filterausgang.  Sie gibt den rekursiven Teil des Filters an.
  • Den ganzzahligen Parameter  M  bezeichnet man als die Ordnung  des digitalen Filters.  Im Programm ist dieser Wert auf  M2  begrenzt.


Definitionen: 

(1)  Man bezeichnet die Ausgangsfolge  yν  als die  zeitdiskrete Impulsantwort  hν, wenn am Eingang die  „zeitdiskrete Diracfunktion”  anliegt:

xν=1, 0, 0, 0, 0, 0, 0,....

(2)  Man bezeichnet die Ausgangsfolge  yν  als die  zeitdiskrete Sprungantwort  σν, wenn am Eingang die  „zeitdiskrete Sprungfunktion”  anliegt:

xν=1, 1, 1, 1, 1, 1, 1,....

(3)  Man bezeichnet die Ausgangsfolge  yν  als die  zeitdiskrete Rechteckantwort  ρ(2,4)ν, wenn am Eingang die  „zeitdiskrete Rechteckfunktion”  anliegt:

xν=0, 0, 1, 1, 1, 0, 0,....
In Hochkommata angegeben sind hier der Beginn der Einsen  (ν=2)  und die Stelle der letzten Eins  (ν=4).


Nichtrekursives Filter   ⇒   FIR–Filter

Definition:  Sind alle Rückführungskoeffizienten  bμ=0, so spricht von einem  nichtrekursiven Filter.  In der englischsprachigen Literatur ist hierfür auch die Bezeichnung  FIR Filter  (von „Finite Impulse Response”)  gebräuchlich.

Nichtrekursives digitales Filter  (FIR–Filter)  der Ordnung  M

Für die Ordnung  M  gilt:

  • Der Ausgangswert  yν  hängt nur vom aktuellen und den  M  vorherigen Eingangswerten ab:
yν=Mμ=0aμxμν.
  • Zeitdiskrete Impulsantwort mit xν=1, 0, 0, 0, 0, 0, 0,...:
hν=a0, a1, ... , aM.
  • Aufgrund unserer Nomenklatur kann man die zeitdiskrete Impulsantwort auch mit  hμ=a0, a1, ... , aM  bezeichnen.


Beispiel 1:  Ein Zweiwegekanal, bei dem

  • das Signal auf dem Hauptpfad gegenüber dem Eingangssignal ungedämpft, aber um  2 µs  verzögert ankommt, und
  • in  4 µs  Abstand – also absolut zur Zeit  t=6 µs  – ein Echo mit halber Amplitude nachfolgt,


kann durch ein nichtrekursives Filter entsprechend obiger Skizze nachgebildet werden, wobei folgende Parameterwerte einzustellen sind:

M=3,TA=2µs,a0=0,a1=1,a2=0,a3=0.5.


Beispiel 2:  Betrachtet wird ein nichtrekursives Filter mit den Filterkoeffizienten  a0=1,a1=2,a2=1. 

Nichtrekursives Filter  (M=2)

(1)   Die herkömmliche Impulsantwort lautet:   h(t)=δ(t)+2δ(tTA)+δ(t2TA).
        ⇒   Zeitdiskrete Impulsantwort:  hμ=1, 2, 1

(2)   Der Frequenzgang  H(f)  ist die Fouriertransformierte von  h(t).  Nach Anwendung des Verschiebungssatzes:

H(f)=2[1+cos(2πfTA)]ej2πfTAH(f=0)=4.

(3)   Daraus folgt:  Die  zeitdiskrete Sprungantwort  σν  tendiert für große  ν  gegen  4.

(4)   Die zeitdiskrete Faltung der Eingangsfolge  xν=1,0,0,0,1,0,0,0,...  mit  hν=1, 2, 1  ergibt

yν=1,2,1,0,1,2,1,0,0,0,0,....

(5)   Die zeitdiskrete Faltung der Eingangsfolge  xν=1,1,0,0,1,0,0,0,...  mit  hν=1, 2, 1  ergibt

yν=1,3,3,2,2,1,0,0,0,0,0,....


Rekursives Filter   ⇒   IIR–Filter

Rekursives Filter erster Ordnung

Definition: 

  • Ist zumindest einer der Rückführungskoeffizienten  bμ0, so spricht von einem  rekursiven Filter  (siehe rechte Grafik).  Insbesondere in der englischsprachigen Literatur ist hierfür auch die Bezeichnung  IIR Filter  (von „Infinite Impulse Response”)  gebräuchlich.  Dieser Filtertyp wird in der Verrsuchsdurchführung ausführlich behandelt.
  • Sind zusätzlich alle Vorwärtskoeffizienten identisch  aμ=0  mit Ausnahme von  a0,   so liegt ein  rein rekursives Filter  vor   (siehe linke Grafik).
Rein rekursives Filter erster Ordnung


Im Folgenden beschränken wir uns auf den Sonderfall  „Rein rekursives Filter erster Ordnung”.  Dieses Filter weist folgende Eigenschaften auf:

  • Der Ausgangswert  yν  hängt (indirekt) von unendlich vielen Eingangswerten ab:
yν=μ=0a0b1μxνμ.
  • Dies zeigt die folgende Rechung:
yν=a0xν+b1yν1=a0xν+a0b1xν1+b12yν2=a0xν+a0b1xν1+a0b12xν2+b13yν3=....
  • Die zeitdiskrete Impulsantwort ist definitionsgemäß gleich der Ausgangsfolge, wenn am Eingang eine einzelne „Eins” bei  t=0  anliegt.
h(t)=μ=0a0b1μδ(tμTA)hμ=a0, a0b1, a0b12, ....

Fazit:  Bei einem rekursiven Filter reicht die (zeitdiskrete) Impulsantwort schon mit  M=1  bis ins Unendliche:

  • Aus Stabilitätsgründen muss  b1<1  gelten.
  • Bei  b1=1  würde sich die Impulsantwort  (h(t)  bzw.  hμ)  bis ins Unendliche erstrecken und bei  b1>1  würde sie sogar bis ins Unendliche anklingen.
  • Bei einem solchen rekursiven Filter erster Ordnung ist jede einzelne Diraclinie genau um den Faktor  b1  kleiner als die vorherige Diraclinie:
hμ=h(μTA)=b1hμ1.


Zeitdiskrete Impulsantwort

Beispiel 3:  Die nebenstehende Grafik zeigt die zeitdiskrete Impulsantwort  hμ  eines rekursiven Filters erster Ordnung mit den Parametern  a0=1  und  b1=0.6.

  • Der (zeitdiskrete) Verlauf ist exponentiell abfallend und erstreckt sich bis ins Unendliche.
  • Das Verhältnis der Gewichte zweier aufeinanderfolgender Diracs ist jeweils  b1=0.6.


Rekursives Filter als Sinus–Generator

Die Grafik zeigt ein digitales Filter zweiter Ordnung, das zur Erzeugung einer zeitdiskreten Sinusfunktion auf einem digitalen Signalprozessor  (DSP)  geeignet ist, wenn die Eingangsfolge  xν==1, 0, 0, 0, 0, 0, 0,...  eine (zeitdiskrete) Diracfunktion ist:

Vorgeschlagene Filterstruktur
yν=sin(νTAω0).

Die fünf Filterkoeffizienten ergeben sich aus der  Z-Transformation:

Z{sin(νTAω0)}=zsin(ω0TA)z22zcos(ω0TA)+1.

Nach Umsetzung dieser Gleichung durch ein rekursives Filter zweiter Ordnung erhält man folgende Filterkoeffizienten:

a0=0,a1=sin(ω0TA),a2=0,b1=2cos(ω0TA),b2=1.
  • Auf die Filterkoeffizienten  a0  und  a2  kann verzichtet werden und  b2=1  hat einen festen Wert. 
  • Die Kreisfrequenz  ω0  der Sinusschwingung wird also nur durch  a1  und  b1  festelegt.


Beispiel 4:  Es gelte  a1=0.5b1=3x0=1  und  xν0=0.

(1)  Dann gilt für die Ausgangswerte  yν  zu den Zeitpunkten  ν0:

  •   y0=0;
  •   y1=0.5                                                                                         ⇒  die „1” am Eingang wirkt sich wegen  a0=0  am Ausgang erst zum Zeitpunkt  ν=1  aus;
  •   y2=b1y1y0=3/20.866                             ⇒   bei  ν=2  wird auch der rekursive Teil des Filters wirksam;
  •   y3=3y2y1=33/21/2=1          ⇒  für  ν2  ist das Filter rein rekursiv:     yν=b1yν1yν2;
  •   y4=3y3y2=313/2=3/2;
  •   y5=3y4y3=33/21=0.5;
  •   y6=3y5y4=31/23/2=0;
  •   y7=3y6y5=301/2=0.5.

(2)  Durch Fortsetzung des rekursiven Algorithmuses erhält man für große  ν–Werte:     yν=yν12   ⇒   T0/TA=12.



Versuchsdurchführung

Exercises binomial fertig.png
  • Wählen Sie zunächst die Nummer  1  ...  10  der zu bearbeitenden Aufgabe.
  • Eine Aufgabenbeschreibung wird angezeigt. Die Parameterwerte sind angepasst.
  • Lösung nach Drücken von „Musterlösung”.
  • Die Nummer  0  entspricht einem „Reset”:  Gleiche Einstellung wie beim Programmstart.


(1)  Die Filterkoeffizienten seien  a0=0.25a1=0.5a2=0.25b1=b2=0.  Um welches Filter handelt es sich? 
        Interpretieren Sie die Impulsantwort  hν,  die Sprungantwort  σν  und  die Rechteckantwort  ρ(2,8)ν  jeweils in zeitdiskreter Darstellung.

  •   Aufgrund der fehlenden  b–Koeffizienten handelt es sich um ein nichtrekursives digitales Filter   ⇒   FIR–Filter  (Finite Impulse Response).
  •   Die Impulsantwort setzt sich aus  M+1=3  Diraclinien zusammen:    hν=a0, a1, a2=0.25, 0.5, 0.25, 0, 0, 0,....
  •   Die Sprungantwort lautet:    σν=0.25, 0.75, 1, 1, 1, 1,....  Der Endwert ergibt sich zu  H(f=0)=a0+a1+a2=1.
  •   Die Verzerrungen erkennt man auch aus der Rechteckantwort  ρ(2,8)ν=0, 0,0.25, 0.75, 1, 1, 1, 1, 1, 0.75, 0.25, ....

(2)  Wie unterscheiden sich die Ergebnisse mit  a2=0.25?

  •   Mit  H(f=0)=0.5  ergeben sich vergleichbare Folgen   ⇒   Sprungantwort:    σν=0.25, 0.75, 0.5, 0.5, 0.5, 0.5,....

(3)  Nun seien die Filterkoeffizienten  a0=1b1=0.9  sowie  a1=a2=b2=0.  Um welches Filter handelt es sich?  Interpretieren Sie  hν.

  •   Es handelt sich um ein IIR–Filter  (Infinite Impulse Response)  erster Ordnung.  Es ist das zeitdiskrete Analogon zum RC–Tiefpass.
  •   Mit  h0=1  gilt  h1=h0b0=0.9h2=h1b0=b20=0.81h3=h2b0=b30=0.729,  usw.   ⇒   hν  reicht bis ins Unendliche.
  •   h(t)=et/T  mit  T:  Schnittpunkt (Tangente bei  t=0, Abszisse)   ⇒   hν=h(νTA)=eν/(T/TA)  mit  T/TA=1/(h0h1)=10.
  •   Unterschiedliche Werte für zeitkontinuierliche und zeitdiskrete Impulsantwort.  Für Erstere ergeben sich die Werte 1.0, 0.9048, 0.8187 ...

(4)  Die Filtereinstellung wird beibehalten.  Interpretieren Sie die Sprungantwort  hν  und  die Rechteckantwort  ρ(2,8)ν.  Wie groß ist  H(f=0)?

  •   Sprungantwort ist Integral über Impulsantwort:   σ(t)=T(1et/T)   ⇒   σν=10(1eν/10)   ⇒   σ0=1σ1=1.9σ2=2.71, ...
  •   Für große ν–Werte tendiert die (zeitdiskrete) Sprungantwort gegen  H(f=0)=10σ40=9.867σ50=9.954σ=10.
  •  Die Rechteckantwort  ρ(2,8)ν  steigt mit einer Verzögerung von  2  wie  σν.  Im Bereich  ν8  fallen die  ρν–Werte exponentiell ab.

(5)  Wir betrachten weiterhin das Filter mit  a0=1b1=0.9a1=a2=b2=0.  Wie lautet  yν für die Eingangsfolge  xν=1, 0,0.5?
        Hinweis:  Die Aufgabe lässt sich ebenfalls mit diesem Programm lösen, obwohl die hier betrachtete Konstellation nicht direkt einstellbar ist.

  •   Man behilft sich, indem man  a2=0.5  setzt und dafür die Eingangsfolge auf   xν=1, 0, 0,  ...   ⇒   „Diracfunktion” reduziert.
  •   Die Impulsantwort dieses Filters (mit  a2=0)  wurde in (3) ermittelt:   h0=1,   h1=0.9,   h2=0.81,   h3=0.729,   h4=0.646.  
  •   Somit ist das Ergebnis:  y0=h0=1,   y1=h1=0.9,   y2=h2h0/2=0.31,   y3=h3h1/2=0.279,   y4=h4h2/2=0.251.  
  •   Vorsicht:  Sprungantwort und Rechteckantwort beziehen sich nun auf das fiktive Filter (a2=0.5),  nicht auf das eigentliche Filter (a2=0).

(6)  Betrachten und interpretieren Sie die Impulsanwort und die Sprungantwort für die Filterkoeffizienten  a0=1b1=1a1=a2=b2=0

  •   Das System ist instabil:   Eine zeitdiskrete Diracfunktion am Eingang  (bei  t=0)  bewirkt am Ausgang unendlich viele Diracs gleicher Höhe.
  •   Die zeitdiskrete Sprungfunktion am Eingang bewirkt am Ausgang unendlich viele Diracs mit monoton steigenden Gewichten (bis ins Unendliche).

(7)  Betrachten und interpretieren Sie Impulsanwort und Sprungantwort für die Filterkoeffizienten  a0=1b1=1a1=a2=b2=0

  •   Nun sind die Gewichte der Impulsantwort  hν  nicht konstant gleich  1, sondern alternierend  ±1.  Das System ist ebenfalls instabil.
  •   Bei  σν  wechseln sich dagegen die Gewichte alternierend zwischen  1  (bei geradem ν)  und  0  (bei ungeradem ν)  ab.

(8)  Wir betrachten den  „Sinusgenerator”:  a1=0.5b1=3=1.732b2=1.  Vergleichen Sie die Impulsantwort mit den Werten von  Beispiel 4.
        Wie beinflussen die Parameter  a1  und  b1  die Periodendauer  T0/TA  und die Amplitude  A  der Sinusfunktion?

  •   xν=1,0,0,...   ⇒   yν=0,0.5,0.866,1,0.866,0.5,0,0.5,0.866,1,0.866,0.5,0,...   ⇒   Sinus,  T0/TA=12A=1.
  •   Die Vergrößerung/Verkleinerung von  b1  führt zu größerer/kleinerem  T0/TA  und zu größerem/kleinerem  A.  Es muss  b1<2  gelten.
  •   a1  beinflusst nur die Amplitude, nicht die Periode.  Für  a1  gibt es keine Wertebegrenzumg.  Negatives  a1  führt zur Minus–Sinusfunktion.

(9)  Die Grundeinstellung bleibt erhalten.  Mit welchen  a1  und  b1 ergibt sich eine Sinusfunktion mit Periodendauer  T0/TA=16  und Amplitude  A=1?

  •   Durch Probieren erreicht man mit  b1=1.8478  genau die Periode  T0/TA=16.  Dadurch erhöht sich die Amplitude auf  A=1.307.
  •   Die Anpassung des Parameters   a1=0.5/1.307=0.3826  führt dann zur gewünschten Amplitude  A=1.
  •   Oder man kann das auch wie im Beispiel berechnen:  b1=2cos(2πTA/T0)=2cos(π/8)=1.8478,     a1=sin(π/8)=0.3827.

(10)  Wir gehen weiter vom „Sinusgenerator”  (9)  aus.  Welche Modifikationen muss man vornehmen, um damit einen „Cosinus” zu generieren?

  •   Mit  a1=0.3826b1=3=1.8478b2=1  sowie  xν=1,1,1,...  ist die Folge  yν  das zeitdiskrete Analogon der Sprungantwort  σ(t).
  •   Die Sprungantwort ist das Integral über  sin(πτ/8)  in den Grenzen von  τ=0  bis  τ=t  ⇒   σ(t)=8/πcos(πτ/8)+1.
  •   Verändert man  a1=0.3826  auf  a1=0.3826π/8=0.1502, dann ist  σ(t)=cos(πτ/8)1   ⇒   Werte zwischen 0 und 2.
  •   Würde man im Blockschaltbild noch  zν=yν+1  hinzufügen, so hätte  zν  einen zeitdiskreten Cosinusverlauf mit  T0/TA=16  und  A=1.


Bildschirmabzug der englischen Version Korrektur noch ändern, auch D


Zur Handhabung des Applets

    (A)     Auswahl des Eingangssignals  (Dirac,  Sprung oder Rechteck)

    (B)     Einstellungen für Abszisse, Ordinate und Geschwindigkeit

    (C)     Bedienfeld  (Start, Einzelschritt, Gesamt, Pause, Reset)

    (D)     Blockschaltbild mit schrittweiser Anpassung aller Werte

    (E)     Grafikfeld für Ausgabe der Ausgangsfolge

    (F)     Aufgabenauswahl

    (G)     Fragen und Lösungen

Über die Autoren


Dieses interaktive Berechnungstool wurde am Lehrstuhl für Nachrichtentechnik der Technischen Universität München konzipiert und realisiert.

Nochmalige Aufrufmöglichkeit des Applets in neuem Fenster

Applet in neuem Tab öffnen   Open English Version