IIRNotchFilter (FPScript)

21.09.2021

Berechnet die Zähler- und Nennerkoeffizienten eines IIR-Kerbfilter zweiter Ordnung, mit dem Frequenzen innerhalb eines engen Frequenzbereichs herausgefiltert werden können (schmalbandiger Bandsperrfilter).

Syntax

IIRNotchFilter(NotchFrequency, Bandwidth [ , SamplingRate ])

 

Die Syntax der IIRNotchFilter-Funktion besteht aus folgenden Teilen:

Teil

Beschreibung

NotchFrequency

Gibt die Kerbfrequenz des Filters an. Die Frequenz muss zwischen 0 und 0,5 (Hälfte der auf Eins normierten Abtastrate) oder zwischen 0 und 0,5 * SamplingRate liegen.

Erlaubte Datenstrukturen sind Einzelwert. Es sind alle reellen Datentypen erlaubt außer Kalenderzeit und Zeitspanne.

Der Wert muss größer 0 sein.

Ist das Argument eine Liste, dann wird deren erstes Element entnommen. Ist dies wieder eine Liste, dann wird der Vorgang wiederholt.

Bandwidth

Gibt die (symmetrisch um die Kerbfrequenz angeordnete) Bandbreite des Kerbfilter an. Sie definiert den Frequenzbereich, innerhalb dessen Frequenzen herausgefiltert werden (festgelegt durch -3 dB Punkt, d.h. Stelle bei der 70,7 Prozent der ursprünglichen Signalamplitude erreicht wird).

Erlaubte Datenstrukturen sind Einzelwert. Es sind alle reellen Datentypen erlaubt außer Kalenderzeit und Zeitspanne.

Der Wert muss größer 0 sein.

Ist das Argument eine Liste, dann wird deren erstes Element entnommen. Ist dies wieder eine Liste, dann wird der Vorgang wiederholt.

SamplingRate

Gibt die Abtastrate an. Das Argument ist optional. Wird dieses Argument nicht spezifiziert, so muss als Grenzfrequenz für NotchFrequency eine normierte Frequenz von 0 bis 0,5 angegeben werden.

Erlaubte Datenstrukturen sind Einzelwert. Es sind alle reellen Datentypen erlaubt außer Kalenderzeit und Zeitspanne.

Der Wert muss größer 0 sein.

Ist das Argument eine Liste, dann wird die Funktion für jedes Element der Liste ausgeführt und das Ergebnis ist ebenfalls eine Liste.

Anmerkungen

Als Rückgaberesultat werden die Zähler- und Nennerkoeffizienten des IIR-Kerbfilter zweiter Ordnung als Liste mit zwei Elementen b und a zurückgegeben. Verwenden Sie die Funktion Filter, um Daten mit dem berechneten Filter zu filtern.

Kerbfilter stellen einen besonders schmalbandigen Typ von Bandsperrfiltern dar, welche in der Übertragungsfunktion nur eine Nullstelle aufweisen und damit nicht ein breites Frequenzband, sondern idealerweise genau eine Frequenz möglichst stark dämpfen.

Das Filter besitzt den folgenden Amplitudengang (hier beispielsweise für die Kerbfrequenz 150 Hz und Bandbreite 5 Hz):

Verfügbarkeit

Option Digitale Filter

Beispiele

Dim coeff = IIRNotchFilter(0.2, 0.02)
Filter(Signal, coeff, TRUE)

Es werden zuerst die Zähler- und Nennerkoeffizienten des Kerbfilter berechnet, anschließend die Daten mit der Filter-Funktion phasenkorrigiert gefiltert. Der Kerbfilter besitzt Kerbfrequenz 0.2 und Bandbreite 0,02.

Dim coeff = IIRNotchFilter(100 Hz, 8 Hz, SamplingRate(Signal))
Filter(Signal, coeff, TRUE)

Es werden zuerst die Zähler- und Nennerkoeffizienten des Kerbfilter berechnet, anschließend die Daten mit der Filter-Funktion phasenkorrigiert gefiltert. Der Kerbfilter besitzt Kerbfrequenz 100 Hz und Bandbreite 8 Hz.

Dim coeff = IIRNotchFilter(0.15, 0.02)
AmplitudeResponse(coeff, 100000)

Berechnet den Amplitudengang (mit 100000 Datenpunkten) des Kerbfilter für die normierte Kerbfrequenz 0,15 und Bandbreite 0,02 mit Hilfe der AmplitudeResponse-Funktion.

Dim coeff = IIRNotchFilter(150 Hz, 5 Hz, 1000 Hz)
AmplitudeResponse(coeff, 500000, 1000 Hz)

Berechnet den Amplitudengang (mit 500000 Datenpunkten) des Kerbfilter für die Kerbfrequenz 150 Hz und Bandbreite 5 Hz (Abtastrate 1kHz) mit Hilfe der AmplitudeResponse-Funktion.

Siehe auch

Filter-Funktion

IIRPeakFilter-Funktion

AmplitudeResponse-Funktion

PhaseResponse-Funktion

IIRFilter-Funktion

SamplingRate-Funktion

Option Digitale Filter

Literatur

[1] Sophocles J. Orfanidis: Introduction to Signal Processing. Prentice Hall,1996.

Artikel teilen oder als Email versenden:

Diese Beiträge könnten Sie ebenfalls interessieren