Zur Verdeutlichung digitaler Filter
Contents
Programmbeschreibung
Das Applet behandelt die Systemkomponenten „Abtastung” und „Signalrekonstruktion”, zwei Komponenten, die zum Beispiel für das Verständnis der Pulscodemodulation (PCM) von großer Wichtigkeit sind. Die obere Grafik zeigt das für dieses Applet zugrundeliegende Modell. Darunter gezeichnet sind die Abtastwerte x(ν⋅TA) des zeitkontinuierlichen Signals x(t). Die (unendliche) Summe über alle diese Abtastwerte bezeichnen wir als das abgetastete Signal xA(t).
- Beim Sender wird aus dem zeitkontinuierlichen Quellensignal x(t) das zeitdiskrete (abgetastete) Signal xA(t) gewonnen. Man nennt diesen Vorgang Abtastung oder A/D–Wandlung.
- Der entsprechende Programmparameter für den Sender ist die Abtastrate fA=1/TA. In der unteren Grafik ist der Abtastabstand TA eingezeichnet.
- Beim Empfänger wird aus dem zeitdiskreten Empfangssignal yA(t) das zeitkontinuierliche Sinkensignal y(t) erzeugt ⇒ Signalrekonstruktion oder D/A–Wandlung entsprechend dem Empfänger–Frequenzgang HE(f).
Das Applet berücksichtigt nicht die PCM–Blöcke „Quantisierung”, „Codierung / Decodierung” und der Digitale Übertragungskanal ist als ideal angenommen.
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(ν · T_{\rm A}) steht.
- Der zeitliche Abstand T_{\rm A} 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_ν \equiv 0 für ν \le 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_\nu = \sum\limits_{\mu = 0}^M {a_\mu } \cdot x_{\nu - \mu } + \sum\limits_{\mu = 1}^M {b_\mu } \cdot y_{\nu - \mu } .
Hierzu ist Folgendes zu bemerken:
- Der Index \nu bezieht sich auf Folgen, zum Beispiel Eingang 〈x_ν〉 und Ausgang 〈y_ν〉.
- Den Index \mu 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 M\le 2 begrenzt.
\text{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, \text{...}〉 .
(2) Man bezeichnet die Ausgangsfolge 〈y_ν〉 als die zeitdiskrete Sprungantwort 〈\sigma_ν〉, wenn am Eingang die „zeitdiskrete Sprungfunktion” anliegt:
- 〈x_ν〉= 〈1,\ 1,\ 1,\ 1,\ 1,\ 1,\ 1, \text{...}〉 .
(3) Man bezeichnet die Ausgangsfolge 〈y_ν〉 als die zeitdiskrete Recheckantwort 〈\rho_ν^{(2, 4)}〉, wenn am Eingang die „zeitdiskrete Rechteckfunktion” anliegt:
- 〈x_ν〉= 〈0,\ 0,\ 1,\ 1,\ 1,\ 0,\ 0, \text{...}〉 .
- In Hochkommata angegeben sind hier der Beginn der Einsen (2) und die Stelle der letzten Eins (4).
Nichtrekursives Filter ⇒ FIR–Filter
\text{Definition:} Sind alle Rückführungskoeffizienten b_{\mu} = 0, so spricht von einem nichtrekursiven Filter. Insbesondere in der englischsprachigen Literatur ist hierfür auch die Bezeichnung FIR Filter (Finite Impulse Response) gebräuchlich.
Für die Ordnung M gilt:
- Der Ausgangswert y_ν hängt nur vom aktuellen und den M vorherigen Eingangswerten ab:
- y_\nu = \sum\limits_{\mu = 0}^M {a_\mu \cdot x_{\mu - \nu } } .
- Zeitdikrete Impulsantwort mit 〈x_ν〉= 〈1,\ 0,\ 0,\ 0,\ 0,\ 0,\ 0, \text{...}〉:
- 〈h_\mu〉= 〈a_0,\ a_1,\ \text{...},\ a_M〉 .
\text{Beispiel 1:} Ein Zweiwegekanal, bei dem
- das Signal auf dem Hauptpfad gegenüber dem Eingangssignal ungedämpft, aber um 2\ \rm µ s verzögert ankommt, und
- in 4\ \rm µ s Abstand – also absolut zur Zeit t = 6\ \rm µ s – ein Echo mit halber Amplitude nachfolgt,
kann durch ein nichtrekursives Filter entsprechend obiger Skizze nachgebildet werden, wobei folgende Parameterwerte einzustellen sind:
- M = 3,\quad T_{\rm A} = 2\;{\rm{µ s} },\quad a_{\rm 0} = 0,\quad a_{\rm 1} = 1, \quad a_{\rm 2} = 0, \quad a_{\rm 3} = 0.5.
\text{Beispiel 2:} Betrachtet wird ein nichtrekursives Filter mit den Filterkoeffizienten a_0 = 1,\hspace{0.5cm} a_1 = 2,\hspace{0.5cm} a_2 = 1.
(1) Die herkömmliche Impulsantwort lautet: h(t) = \delta (t) + 2 \cdot \delta ( {t - T_{\rm A} } ) + \delta ( {t - 2T_{\rm A} } ).
⇒ Zeitdiskrete Impulsantwort: 〈h_\mu〉= 〈1,\ 2,\ 1〉 .
(2) Der Frequenzgang H(f) ist die Fouriertransformierte von h(t). Durch Anwendung des Verschiebungssatzes:
- H(f) = 2\big [ {1 + \cos ( {2{\rm{\pi }\cdot }f \cdot T_{\rm A} } )} \big ] \cdot {\rm{e} }^{ - {\rm{j} }2{\rm{\pi } }fT_{\rm A} }\hspace{0.5cm}\Rightarrow \hspace{0.5cm}H(f = 0) = 4.
(3) Daraus folgt: Die zeitdiskrete Sprungantwort 〈\sigma_ν〉 tendiert für große \nu gegen 4.
(4) Die zeitdiskrete Faltung der Eingangsfolge \left\langle \hspace{0.05cm}{x_\nu } \hspace{0.05cm}\right\rangle = \left\langle {\;1,\;0,\;0,\;0,\;1,\;0,\;0,\;0,\;\text{...} } \hspace{0.05cm} \right\rangle mit \left\langle \hspace{0.05cm}{h_\nu } \hspace{0.05cm}\right\rangle = \left\langle \hspace{0.05cm}{1, \ 2,\ 1 } \hspace{0.05cm}\right\rangle ergibt
- \left\langle \hspace{0.05cm}{y_\nu } \hspace{0.05cm}\right\rangle = \left\langle {\;1,\;2,\;1,\;0,\;1,\;2,\;1,\;0,\;0,\;0,\;0,\; \text{...} \;} \right\rangle.
(5) Die zeitdiskrete Faltung der Eingangsfolge \left\langle \hspace{0.05cm}{x_\nu } \hspace{0.05cm}\right\rangle = \left\langle {\;1,\;1,\;0,\;0,\;1,\;0,\;0,\;0,\;\text{...} } \hspace{0.05cm} \right\rangle mit \left\langle \hspace{0.05cm}{h_\nu } \hspace{0.05cm}\right\rangle = \left\langle \hspace{0.05cm}{1, \ 2,\ 1 } \hspace{0.05cm}\right\rangle ergibt
- \left\langle \hspace{0.05cm}{y_\nu } \hspace{0.05cm}\right\rangle = \left\langle {\;1,\;3,\;3,\;1,\;0,\;0,\;0,\;0,\;0,\;0,\;0,\; \text{...} \;} \right\rangle.
Rekursives Filter ⇒ IIR–Filter
\text{Definition:}
- Ist zumindest einer der Rückführungskoeffizienten b_{\mu} \ne 0, so spricht von einem rekursiven Filter (siehe rechte Grafik). Insbesondere in der englischsprachigen Literatur ist hierfür auch die Bezeichnung IIR Filter (Infinite Impulse Response) gebräuchlich. Dieses Filter wird in der Verrsuchsdurchführung ausführlich behandelt.
- Sind zusätzlich alle Vorwärtskoeffizienten identisch a_\mu = 0 mit Ausnahme von a_0, so liegt ein rein rekursives Filter vor (siehe linke Grafik).
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_\nu = \sum\limits_{\mu = 0}^\infty {a_0 \cdot {b_1} ^\mu \cdot x_{\nu - \mu } .}
- Dies zeigt die folgende Rechung:
- y_\nu = a_0 \cdot x_\nu + b_1 \cdot y_{\nu - 1} = a_0 \cdot x_\nu + a_0 \cdot b_1 \cdot x_{\nu - 1} + {b_1} ^2 \cdot y_{\nu - 2} = a_0 \cdot x_\nu + a_0 \cdot b_1 \cdot x_{\nu - 1} + a_0 \cdot {b_1} ^2 \cdot x_{\nu - 2} + {b_1} ^3 \cdot y_{\nu - 3} = \text{...}.
- Die zeitdiskrete Impulsantwort ist definitionsgemäß der Ausgangsfolge, wenn am Eingang eine einzelne „Eins” bei t =0 anliegt.
- h(t)= \sum\limits_{\mu = 0}^\infty {a_0 \cdot {b_1} ^\mu \cdot \delta ( {t - \mu \cdot T_{\rm A} } )}\hspace{0.3cm} \Rightarrow \hspace{0.3cm}〈\hspace{0.05cm}h_\mu\hspace{0.05cm}〉= 〈\hspace{0.05cm}a_0, \ a_0\cdot {b_1}, \ a_0\cdot {b_1}^2 \ \text{...} \hspace{0.05cm}〉.
\text{Fazit:} Bei einem rekursiven Filter reicht die (zeitdiskrete) Impulsantwort schon mit M = 1 bis ins Unendliche:
- Aus Stabilitätsgründen muss b_1 < 1 gelten.
- Bei b_1 = 1 würde sich die Impulsantwort h(t) bis ins Unendliche erstrecken und bei b_1 > 1 würde h(t) sogar bis ins Unendliche anklingen.
- Bei einem solchen rekursiven Filter erster Ordnung ist jede einzelne Diraclinie genau um den Faktor b_1 kleiner als die vorherige Diraclinie:
- h_{\mu} = h(\mu \cdot T_{\rm A}) = {b_1} \cdot h_{\mu -1}.
\text{Beispiel 3:} Die nebenstehende Grafik zeigt die zeitdiskrete Impulsantwort 〈\hspace{0.05cm}h_\mu\hspace{0.05cm}〉 eines rekursiven Filters erster Ordnung mit den Parametern a_0 = 1 und b_1 = 0.6.
- Der Verlauf ist exponentiell abfallend und erstreckt sich bis ins Unendliche.
- Das Verhältnis der Gewichte zweier aufeinander folgender Diracs ist jeweils b_1 = 0.6.
Versuchsdurchführung
- Wählen Sie zunächst die Nummer 1 ... ? 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.
Noch ersetzen
In den folgenden Aufgabenbeschreibungen werden folgende Kurzbezeichnungen verwendet:
- Rot: Regressionsgerade R_{Y \to X} (im Applet rot gezeichnet),
- Blau: Regressionsgerade R_{X \to Y} (im Applet blau gezeichnet).
bis hierher
(1) Die Filterkoeffizienten seien a_0=0.25, a_1=0.5, a_2=0.25, b_1=b_2=0. Um welches Filter handelt es sich?
Interpretieren Sie die Impulsantwort 〈h_ν〉, die Sprungantwort 〈\sigma_ν〉 und die Rechteckantwort 〈\rho_ν^{(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 gemäß den a–Koeffizienten zusammen: 〈h_ν〉= 〈a_0, \ a_1,\ a_2〉= 〈0.25, \ 0.5,\ 0.25,\ 0, \ 0, \ 0,\text{...}〉 .
- Die Sprungantwort lautet: 〈\sigma_ν〉= 〈0.25, \ 0.75,\ 1,\ 1, \ 1, \ 1,\text{...}〉 . Der Endwert ist gleich dem Gleichsignalübertragungsfaktor H(f=0)=a_0+a_1+a_2 = 1.
- Die Verzerrungen bei Anstieg und Abfall erkennt man auch aus der Rechteckantwort 〈\rho_ν^{(2, 8)}〉= 〈0,\ 0, 0.25, \ 0.75,\ 1,\ 1, \ 1, \ 1, \ 1, \ 0.75, \ 0.25, \ \text{...}〉.
(2) Wie unterscheiden sich die Ergebnisse mit a_2=-0.25?
- Unter Berücksichtigung von H(f=0)= 0.5 ergeben sich vergleichbare Folgen ⇒ Sprungantwort: 〈\sigma_ν〉= 〈0.25, \ 0.75,\ 0.5,\ 0.5, \ 0.5, \ 0.5,\text{...}〉 .
(3) Nun seien die Filterkoeffizienten a_0=1, b_1=0.9 sowie a_1=a_2= b_2=0. Um welches Filter handelt es sich? Interpretieren Sie die Impulsantwort 〈h_ν〉.
- Es handelt sich um ein rekursives digitales Filter ⇒ IIR–Filter (Infinite impulse Response) erster Ordnung. Es ist das zeitdiskrete Analogon zum RC–Tiefpass.
- Ausgehend von h_0= 1 gilt h_1= h_0 \cdot b_0= 0.9, h_2= h_1 \cdot b_0= b_0^2=0.81, h_3= h_2 \cdot b_0= b_0^3=0.729, usw. ⇒ 〈h_ν〉 reicht bis ins Unendliche.
- Impulsantwort h(t) = {\rm e}^{-t/T} mit T: Schnittpunkt (Tangente bei t=0, Abszisse) ⇒ h_\nu= h(\nu \cdot T_{\rm A}) = {\rm e}^{-\nu/(T/T_{\rm A})} mit T/T_{\rm A} = 1/(h_0-h_1)= 10.
(4) Die Filtereinstellung wird beibehalten. Interpretieren Sie die Sprungantwort 〈h_ν〉 und die Rechteckantwort 〈\rho_ν^{(2, 8)}〉. Welcher Wert ergibt sich für H(f=0)?
- Die Sprungantwort ist das Ingral über die Impulsantwort \sigma(t) = T \cdot (1-{\rm e}^{-t/T}) ] ⇒ \sigma_\nu= 10 \cdot (1-{\rm e}^{-\nu/10}) ⇒ \sigma_0=1, \sigma_1=1.9, \sigma_2=2.71, ...
- Für große \nu–Werte tendiert die (zeitdiskrete) Sprungantwort gegen den Gleichsignalübertragungsfaktor H(f=0)= 10: \sigma_{40}=9.867, \sigma_{50}=9.954, \sigma_\infty=10.
- Die Rechteckantwort 〈\rho_ν^{(2, 8)}〉 steigt mit einer Verzögerung von 2 in gleicher Weise an wie 〈\sigma_ν〉. Im Bereich \nu \ge 8 fallen die \rho_ν– Werte exponentiell ab.
(4) Nun gelte x_1 = 0,\ y_1 = 0.5,\ p_1 = 0.3. Variieren Sie 0\le p_1 < 0.5 und interpretieren Sie die Ergebnisse. (p_1 = 0.5 sollte man ausschließen).
- Wegen \sigma_X \le \sigma_Y liegt weiterhin die blaue Gerade nie unterhalb der roten, die für alle p_1 \ne 0.5 die Winkelhalbierende ist ⇒ \theta_{Y \to X}\approx 45^\circ.
- Der Winkel der blauen Regressionsgerade wächst von \theta_{X \to Y}= 45^\circ \ (p_1 = 0) bis \theta_{X \to Y} \to 90^\circ \ (p_1 \to 0.5) kontinuierlich an.
(5) Beginnen Sie mit x_1 = 0.8,\ y_1 = -0.8,\ p_1 = 0.25 und vergrößern Sie y_1 bis zum Endwert y_1 = +0.8. Interpretieren Sie die Ergebnisse.
- Für y_1 =-0.8 ist \theta_{X \to Y}= 77.6^\circ und \theta_{Y \to X}= 12.4^\circ. Mit steigendem y_1 verläuft R_{X \to Y} (blau) flacher und R_{Y \to X} (rot) steiler.
- Im Endpunkt (y_1 = +0.8) verlaufen die beiden Regressionsgeraden deckungsgleich unter dem Winkel \theta_{X \to Y}= \theta_{Y \to X}= 45^\circ.
(6) Abschließend gelte x_1 = +1,\ y_1 = -1. Variieren Sie p_1 im gesamten zulässigen Bereich 0\le p_1 \le 0.5. Wann sind X und Y unkorreliert?
- Für p_1 = 0 gilt \theta_{X \to Y}=\theta_{Y \to X}= 45^\circ. Dann dreht die blaue Gerade entgegen dem Uhrzeigersinn, die rote Gerade im Uhrzeigersinn.
- Für p_1 = 0.25 sind die Winkel \theta_{X \to Y}=90^\circ, \ \theta_{Y \to X}= 0^\circ. Diese Momentaufnahme beschreibt unkorrelierte Zufallsgrößen ⇒ \mu_{XY}=0.
- Anschließend drehen beide Geraden weiter in gleicher Richtung. Für p_1 = 0.5 gilt schließlich: \theta_{X \to Y}=135^\circ= -45^\circ, \ \theta_{Y \to X}= -45^\circ.
Zur Handhabung des Applets
(A) Vorauswahl für blauen Parametersatz
(B) Parametereingabe I und p per Slider
(C) Vorauswahl für roten Parametersatz
(D) Parametereingabe \lambda per Slider
(E) Graphische Darstellung der Verteilungen
(F) Momentenausgabe für blauen Parametersatz
(G) Momentenausgabe für roten Parametersatz
(H) Variation der grafischen Darstellung
\hspace{1.5cm}„+” (Vergrößern),
\hspace{1.5cm} „-” (Verkleinern)
\hspace{1.5cm} „\rm o” (Zurücksetzen)
\hspace{1.5cm} „\leftarrow” (Verschieben nach links), usw.
( I ) Ausgabe von {\rm Pr} (z = \mu) und {\rm Pr} (z \le \mu)
(J) Bereich für die Versuchsdurchführung
Andere Möglichkeiten zur Variation der grafischen Darstellung:
- Gedrückte Shifttaste und Scrollen: Zoomen im Koordinatensystem,
- Gedrückte Shifttaste und linke Maustaste: Verschieben des Koordinatensystems.
Über die Autoren
Dieses interaktive Berechnungstool wurde am Lehrstuhl für Nachrichtentechnik der Technischen Universität München konzipiert und realisiert.
- Die erste Version wurde 2005 von Bettina Hirner im Rahmen ihrer Diplomarbeit mit „FlashMX–Actionscript” erstellt (Betreuer: Günter Söder).
- 2020 wurde das Programm von Veronika Hofmann (Ingenieurspraxis Mathematik, Betreuer: Benedikt Leible und Tasnád Kernetzky ) unter „HTML5” neu gestaltet.