Processing math: 100%

Digital Filters

From LNTwww
Revision as of 21:58, 20 June 2020 by Andre (talk | contribs)

Open Applet in a new tab

Programmbeschreibung


The applet should clarify the properties of digital filters, whereby we confine ourselves to filters of the order M=2. Both non-recursive filters (FIRFinite Impulse Response)  as well as recursive filters (IIRInfinite Impulse Response).

The input signal x(t) is represented by the sequence xν of its samples, where xν stands for x(ν·TA). The output sequence yνis calculated, i.e. the discrete-time representation of the output signal y(t).

  • TA denotes the time interval between two samples.
  • We also limit ourselves to causal signals and systems, which means that xν0 and yν0 for ν0.


It should also be noted that we denote the initial sequence yν as

(1) the discrete-time impulse response hν if the “discrete-time Dirac function” is present at the input:         xν=1, 0, 0, 0, 0, 0, 0,...,

(2) the time-discrete step response σν if the “time-discrete step function” is present at the input:         xν=1, 1, 1, 1, 1, 1, 1,...,

(3) the discrete-time square response ρ(2,4)ν if the “discrete-time rectangular function” is present at the input:     xν=0, 0, 1, 1, 1, 0, 0,...;
        In quotation marks are the beginning of the ones (2) and the position of the last ones (4).


Theoretical background


General block diagram

Each signal x(t) can only be represented on a computer by the sequence xν of its samples, where xν stands for x(ν·TA). right|frame| Block diagram of a digital (IIR–) filter M–order

  • 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 Recheckantwort  ρ(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

right |frame| Nichtrekursives digitales Filter  (FIR–Filter)  M–Ordnung 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  (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ν=Mμ=0aμxμν.
  • Zeitdikrete Impulsantwort mit xν=1, 0, 0, 0, 0, 0, 0,...:
hμ=a0, a1, ..., aM.


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.  right|frame|Nichtrekursives Filter

(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).  Durch 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

right|frame|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  (Infinite Impulse Response) gebräuchlich.  Dieses Filter 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).

left|frame| 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)  bis ins Unendliche erstrecken und bei  b1>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  b1  kleiner als die vorherige Diraclinie:
hμ=h(μTA)=b1hμ1.


frame| Zeitdiskrete Impulsantwort | rechts 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

right|frame|Vorgeschlagene Filterstruktur ändern auf TA 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ν  eine (zeitdiskrete) Diracfunktion ist:

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  a0  und  a0  festelegt.


Beispiel 3:  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

right

  • 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 gemäß den  a–Koeffizienten 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 ist gleich dem Gleichsignalübertragungsfaktor  H(f=0)=a0+a1+a2=1.
  •   Die Verzerrungen bei Anstieg und Abfall 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?

  •   Unter Berücksichtigung von  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 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  h0=1  gilt  h1=h0b0=0.9h2=h1b0=b20=0.81h3=h2b0=b30=0.729,  usw.   ⇒   hν  reicht bis ins Unendliche.
  •   Impulsantwort  h(t)=et/T  mit  T:  Schnittpunkt (Tangente bei  t=0, Abszisse)   ⇒   hν=h(νTA)=eν/(T/TA)  mit  T/TA=1/(h0h1)=10.
  •   Also:  Die Werte der zeitkontinuierlichen unterscheiden sich von der zeitdiskreten Impulsantwort.  Hierfür 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)ν.  Welcher Wert ergibt sich für  H(f=0)?

  •   Die Sprungantwort ist das Integral über die 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 den Gleichsignalübertragungsfaktor  H(f=0)=10σ40=9.867σ50=9.954σ=10.
  •  Die Rechteckantwort  ρ(2,8)ν  steigt mit einer Verzögerung von  2  in gleicher Weise an 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 die Ausgangsfolge  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 den Koeffizienten  a2=0.5  setzt und dafür die Eingangsfolge auf   xν=1, 0, 0,  ...   ⇒   „Diracfunktion” reduziert.
  •   Die tatsächliche Impulsantwort dieses Filters (mit  a2=0)  wurde in Aufgabe  (3)  ermittelt:   h0=1,   h1=0.9,   h2=0.81,   h3=0.729,   h4=0.646.  
  •   Die Lösung dieser Aufgabe lautet somit:   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 (mit  a2=0.5)  und nicht auf das eigentliche Filter (mit  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  (zur Zeit  t=0)  bewirkt im Ausgangsignal unendlich viele Diracs gleicher Höhe.
  •   Eine zeitdiskrete Sprungfunktion am Eingang bewirkt im Ausgangsignal unendlich viele Diracs mit monoton ansteigenden Gewichten (bis ins Unendliche).

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

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

(8)  Wir betrachten den  „Sinusgenerator”:  a1=0.5b1=3=1.732b2=1.  Vergleichen Sie die Impulsantwort mit den berechneten Werten in  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,  Periode  T0/TA=12,  Amplitude  1.
  •   Die Vergrößerung/Verkleinerung von  b1  führt zur größeren/kleineren Periodendauer  T0/TA  und zur größeren/kleineren Amplitude  A.  Es muss  b1<2  gelten.
  •   a1  beinflusst nur die Amplitude, nicht die Periodendauer.  Für  a1  gibt es keine Wertebegrenzumg.  Bei negativem  a1  ergibt sich die Minus–Sinusfunktion.
  •   Gibt es hier keine Diskrepanz zu h(t) wertkontinuierlich ???

(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  tatsächlich die Periodendauer  T0/TA=16.  Allerdings erhöht sich dadurch 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” aus.  Welche Modifikationen muss man vornehmen, um damit einen „Cosinus” zu generieren?

  •   Mit  a1=0.5b1=3=1.732b2=1  sowie  xν=1,1,1,...  ist die Ausgangsfolge  yν  das zeitdiskrete Analogon der Sprungantwort  σ(t).
  •   Es fehlen noch einige Statements


Zur Handhabung des Applets


Ü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

Open Applet in a new tab