IIRPeakFilter (FPScript)
Berechnet die Zähler- und Nennerkoeffizienten eines IIR-Peak-Filter zweiter Ordnung (auch Resonanzfilter genannt), mit dem Frequenzen außerhalb eines engen Frequenzbereichs ausgesperrt werden können (schmalbandiger Bandpassfilter).
Syntax
IIRPeakFilter(PeakFrequency, Bandwidth [ , SamplingRate ])
Die Syntax der IIRPeakFilter-Funktion besteht aus folgenden Teilen:
Teil |
Beschreibung |
---|---|
PeakFrequency |
Gibt die Peak-Frequenz (Resonanzfrequenz) des Filters an, d.h. die Frequenz, die im Signal beibehalten werden soll. 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 Resonanzfrequenz angeordnete) Bandbreite des Filters an. Sie definiert den Frequenzbereich, außerhalb dessen Frequenzen ausgesperrt 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 PeakFrequency 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-Peak-Filter 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.
Das Filter stellt einen besonders schmalbandigen Typ von Bandsperrfiltern dar, welches nicht ein breites Frequenzband, sondern idealerweise nur genau eine Frequenz beibehält.
Das Filter besitzt den folgenden Amplitudengang (hier beispielsweise für die Peak-Frequenz 150 Hz und Bandbreite 5 Hz):
Verfügbarkeit
Option Digitale Filter und Option Ordnungsanalyse
Beispiele
Dim coeff = IIRPeakFilter(0.2, 0.02)
Filter(Signal, coeff, TRUE)
Es werden zuerst die Zähler- und Nennerkoeffizienten des Peak-Filter berechnet, anschließend die Daten mit der Filter-Funktion phasenkorrigiert gefiltert. Das Filter besitzt Resonanzfrequenz 0.2 und Bandbreite 0,02.
Dim coeff = IIRPeakFilter(100 Hz, 8 Hz, SamplingRate(Signal))
Filter(Signal, coeff, TRUE)
Es werden zuerst die Zähler- und Nennerkoeffizienten des Peak-Filter berechnet, anschließend die Daten mit der Filter-Funktion phasenkorrigiert gefiltert. Das Filter besitzt Resonanzfrequenz 100 Hz und Bandbreite 8 Hz.
Dim coeff = IIRPeakFilter(0.15, 0.02)
AmplitudeResponse(coeff, 100000)
Berechnet den Amplitudengang (mit 100000 Datenpunkten) des Peak-Filter für die normierte Resonanzfrequenz 0,15 und Bandbreite 0,02 mit Hilfe der AmplitudeResponse-Funktion.
Dim coeff = IIRPeakFilter(150 Hz, 5 Hz, 1000 Hz)
AmplitudeResponse(coeff, 500000, 1000 Hz)
Berechnet den Amplitudengang (mit 500000 Datenpunkten) des Peak-Filter für die Resonanzfrequenz 150 Hz und Bandbreite 5 Hz (Abtastrate 1kHz) mit Hilfe der AmplitudeResponse-Funktion.
Siehe auch
Literatur
[1] Sophocles J. Orfanidis: Introduction to Signal Processing. Prentice Hall,1996.