Funktionen > Signalverarbeitung > Digitale Filterung > Beispiel: Zeitantwort digitaler Filter
  
Beispiel: Zeitantwort digitaler Filter
Berechnen Sie mithilfe der Funktionen response und fftfilt die Ausgabe eines nichtrekursiven oder IIR-Filters durch direkte Auswertung der Faltung. Die Funktion gibt einen komplexen Vektor von Ausgaben der Länge n zurück.
Das von diesen Funktionen verwendete Verfahren wird in den meisten Lehrwerken zur Signalverarbeitung dargestellt. Vgl. z.B. A.V. Oppenheim und R. W. Schafer, Discrete-Time Signal Processing, S. 556-558, 1989.
IIR-Tiefpassfilterordnung
1. Definieren Sie ein Eingabesignal mit einer niederfrequenten und einer hochfrequenten Komponente.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
2. Berechnen Sie die ersten 100 Stufen der Antwort eines Butterworth-Tiefpassfilters zweiter Ordnung mit Grenzfrequenz f.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Die Grenze muss entsprechend der Funktionsbeschreibung zwischen 0 und 0.5 liegen.
3. Verwenden Sie die Funktion iirlow, um die Koeffizienten der Übertragungsfunktion zu ermitteln.
Zum Kopieren dieses Ausdrucks klicken
4. Verwenden Sie die Funktion response, um die Antwort des Filters abzurufen.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Das Antwortsignal YA ist im Vergleich zum ursprünglichen Signal x glatter, hat eine kleinere Amplitude und weist eine geringfügige Zeitverschiebung auf.
5. Geben Sie einen Butterworth-Tiefpassfilter sechster Ordnung mit der gleichen Grenzfrequenz f an. Die Funktion response verwendet die Ausgabe des ersten Abschnitts als Eingabe für den zweiten Abschnitt, dessen Ausgabe als Eingabe für den dritten Abschnitt usw.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Der Filter höherer Ordnung liefert eine weitaus glattere Antwort, ist effektiver bei der Filterung der hohen Frequenz, erzeugt eine größere Zeitverschiebung und einen schärferen Übergang an der Grenzfrequenz.
Nichtrekursiver Bandpassfilter
1. Konstruieren Sie einen nichtrekursiven Bandpassfilter F, um die höhere der beiden oben definierten Signalfrequenzen zu übertragen.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
2. Berechnen Sie die Koeffizienten für einen Bandpassfilter der Länge 51, dessen Durchlassbereich zwischen der oben angegebenen tiefen und hohen Frequenz liegt, und verwenden Sie ein Blackman-Fenster (letztes Argument von 6).
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
3. Berechnen Sie die durch den Filter verursachte Verzögerung.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
4. Berechnen Sie die ersten 100 Stufen mit der Funktion response.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Obwohl der Filter nach dem Start nicht sofort überträgt, wählt er die hohe Frequenz (f2=0.5; T=5) sehr präzise aus.
Nichtrekursiver Bandpassfilter 2
Zeigen Sie, dass der folgende nichtrekursive Tiefpassfilter für verschiedene Frequenzen in seinem Durchlassbereich keine Phasenverschiebung aufweist.
1. Definieren Sie zwei Eingabesignale.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
2. Definieren Sie die Grenzfrequenz des nichtrekursiven Filters und die Anzahl der Koeffizienten.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
3. Berechnen Sie die Koeffizienten mit einem sich verjüngenden Hanning-Fenster.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
4. Berechnen Sie die durch den Filter verursachte Verzögerung.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
5. Definieren Sie die beiden verzögerten Eingabesignale.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
6. Plotten Sie das erste verzögerte Eingabesignal x1d und die Antwort des Filters auf x1.
Zum Kopieren dieses Ausdrucks klicken
Die beiden Signale sind identisch und haben keine Phasenverschiebung.
7. Plotten Sie das zweite verzögerte Eingabesignal x2d und die Antwort des Filters auf x2.
Zum Kopieren dieses Ausdrucks klicken
Die beiden Signale sind identisch und haben keine Phasenverschiebung.
response für Faltungen verwenden
Wenn das Filter-Array eine Spalte enthält, führt die Funktion response eine Faltung aus. Damit stellt diese Funktion eine Alternative zur FFT-Funktion convolve dar. Die Antwort erfolgt wesentlich schneller für einen kleinen ersten Teil der Faltung von zwei langen Sequenzen.
1. Definieren Sie einen Bereich und zwei Arrays, die mit positiven Zufallszahlen von 0 bis 1 gefüllt sind.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
2. Wenden Sie die Funktion convolve auf die beiden Arrays an.
Zum Kopieren dieses Ausdrucks klicken
3. Verwenden Sie die Funktion response, um die ersten 8 Stufen der Antwort zu erhalten.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Die beiden Arrays sind identisch.
Vergleichen der Ausgabe der Funktionen response und fftfilt
Zeigen Sie, dass die mit den Funktionen response und fftfilt erhaltenen Ergebnisse gleichwertig sind.
1. Definieren Sie einen Bereich und zwei Frequenzen.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
2. Definieren Sie das Eingabesignal in Bezug auf f1 und f2.
Zum Kopieren dieses Ausdrucks klicken
3. Erstellen Sie einen nichtrekursiven Tiefpassfilter mit einer Grenzfrequenz f, verjüngt mit einem Hanning-Fenster.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
4. Berechnen Sie die Filterantwort auf das Eingabesignal.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
5. Wenden Sie die Funktion fftfilt auf das Eingabesignal an, und rufen Sie die ersten 64 Stufen ab.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
* 
y_f ist ein Vektor komplexer Elemente.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
6. Plotten Sie das Ergebnis der Faltung des Eingabesignals mit der Übertragungsfunktion des Filters und das Antwortsignal. Die beiden Spuren überlappen sich vollständig.
Zum Kopieren dieses Ausdrucks klicken