User-Defined Filter
Erstellt ein benutzerdefiniertes FIR- oder IIR-Filter
Kategorie: Datentransformation / Filter
Hinweis
Giltnur für: Machine Learning Studio (klassisch)
Ähnliche Drag & Drop-Module sind im Azure Machine Learning-Designer verfügbar.
Modulübersicht
In diesem Artikel wird beschrieben, wie Sie das Benutzerdefinierte Filtermodul in Machine Learning Studio (klassisch) verwenden, um einen benutzerdefinierten Filter mithilfe eines finiten Impulsantwortfilters (FIR) oder eines unendlichen Impulsantwortfilters (IIR) mit Koeffizienten zu definieren, die Sie angeben.
Ein Filter ist eine Übertragungsfunktion, die ein Eingabesignal übernimmt und ein Ausgabesignal basierend auf den Filtereigenschaften erstellt. Weitere allgemeine Informationen zum Benutzer von Filtern in der digitalen Signalverarbeitung finden Sie unter Filter. Dieses Modul eignet sich besonders für die Anwendung einer Reihe zuvor abgeleiteter Filterkoeffizienten auf Ihre Daten.
Nachdem Sie einen Filter definiert haben, der Ihren Anforderungen entspricht, können Sie den Filter auf Daten anwenden, indem Sie ein Dataset und den Filter mit dem Anwenden des Filtermoduls verbinden.
Tipp
Müssen Sie Daten aus einem Dataset filtern oder fehlende Werte entfernen? Verwenden Sie stattdessen diese Module:
- Löschen Sie fehlende Daten: Verwenden Sie dieses Modul, um fehlende Werte zu entfernen oder fehlende Werte durch Platzhalter zu ersetzen.
- Partition und Beispiel: Verwenden Sie dieses Modul, um Das Dataset nach Kriterien wie einem Datumsbereich, einem bestimmten Wert oder regulären Ausdrücken zu trennen oder zu filtern.
- Clip-Werte: Verwenden Sie dieses Modul, um einen Bereich festzulegen und nur die Werte innerhalb dieses Bereichs beizubehalten.
So konfigurieren Sie User-Defined Filter
Fügen Sie das Modul "Benutzerdefinierter Filter " zu Ihrem Experiment in Studio (klassisch) hinzu. Dieses Modul finden Sie unter "Datentransformation" in der Kategorie "Filter ".
Wählen Sie im Eigenschaftenbereich einen Filtertyp aus: FIR-Filter oder IIR-Filter.
Stellen Sie die Koeffizienten bereit, die im Filter angewendet werden sollen. Die Anforderungen für die Koeffizienten unterscheiden sich je nachdem, ob Sie einen FIR-Filter oder einen IIR-Filter auswählen.
Bei einem FIR-Filter geben Sie einen Vektor mit Feedforward-Koeffizienten (Vorwärtskopplung) an. Die Länge des Vektors bestimmt die Ordnung des Filters. Ein FIR-Filter ist faktisch ein gleitender Durchschnitt, sodass durch die Konfigurationswerte ein gleitender Durchschnitt angewendet wird, um eine Datensequenz zu filtern.
Bei einem IIR-Filter wenden Sie benutzerdefinierte Feedforward- und Feedbackward-Koeffizienten an. Weitere Informationen finden Sie im Abschnitt "Beispiele " für einige Tipps.
Verbinden den Filter zum Anwenden von Filtern und verbinden Sie ein Dataset.
Verwenden Sie die Spaltenauswahl, um anzugeben, auf welche Spalten des Datasets der Filter angewendet werden soll. Standardmäßig wird das Modul "Filter anwenden " den Filter für alle ausgewählten numerischen Spalten verwenden.
Führen Sie das Experiment aus.
Die angegebenen Transformationen werden nur auf die ausgewählten numerischen Spalten angewendet, wenn Sie das Experiment mithilfe von Apply Filter ausführen.
Beispiele
Weitere Beispiele für die Verwendung von Filtern in maschinellem Lernen finden Sie im Azure AI Gallery:
- Filter: Zeigt alle Filtertypen an. Im Beispiel wird ein konstruiertes Wellenformdataset verwendet, um die Effekte der unterschiedlichen Filter leichter veranschaulichen zu können.
FIR-Filterbeispiel: Exponentielles gewichtetes gleitendes Mittelwert
Bei einem exponentiell gewichteten, gleitenden Durchschnitt sind alle Koeffizienten kleiner als 1, und die Summe aller Koeffizienten ist gleich 1. Deshalb wird die Varianz des gewichteten Durchschnitts immer kleiner als die Eingabewerte sein.
Um mit einem FIR-Filter einen exponentiell gewichteten gleitenden Durchschnitt zu approximieren, würden Sie beispielsweise eine durch Trennzeichen getrennte Liste mit Koeffizienten als Wert für den Feedforward-Parameter angeben:
0.01818182, 0.03636364, 0.05454545, 0.07272727, 0.09090909, 0.10909091, 0.12727273, 0.14545455, 0.16363636, 0.18181818
FIR-Filterbeispiel: Exponentielles gewichtetes gleitendes Mittelwert (Deslauriers-Dubuc Interpolation)
Dieser FIR-Filter ungefährt einen triangular gewichteten Gleitwert (WMA). Sie definieren die Koeffizienten, indem Sie eine durch Komma getrennte Wertereihe für die Feed-Forward-Parameter angeben, z. B. folgende:
0.0625, 0.0625, 0.2500, 0.3750, 0.2500, 0.0625
Die in diesem benutzerdefinierten FIR-Filter verwendeten Werte stellen einen Vektor von Feed-Forward-Koeffizienten dar, die mithilfe der Deslauriers-Dubuc-Methode der endlichen Sequenzierung abgerufen werden. Weitere Informationen finden Sie unter Dubuc-Deslauriers Subdivision für finite Sequenzen und Interpolation Wavelets in einem Intervall.
IIR-Filterbeispiel: Notchfilter
Ein gutes Beispiel für eine Anwendung für einen benutzerdefinierten IIR-Filter besteht darin, einen Notchfilter zu definieren, auch als Bandtopfilter bezeichnet. Der gewünschte Notchfilter ziert ein -3dB-Ablehnungsband, fb, zentriert auf einer Notchfrequenz, fn
mit einer Stichprobenfrequenz fs
.
In diesem Fall kann der digitale Notchfilter durch die folgende Formel dargestellt werden:
Diese Formel geht davon aus:
Aus dieser Formel können wir den Feed-Forward-Koeffizienten abrufen:
Die Feed-Rückwärts-Koeffizienten wären wie folgt:
Beispiel für IIR-Filter: Notchfilter 2
Im folgenden Beispiel wird ein Notchfilter mit einer Notchfrequenz und einer -3 dB
Ablehnungsband fb =100 Hz
von , mit der Stichprobenfrequenz fn =1250 Hz
fs=10 kHz
von .
Mit der folgenden Formel erhalten a2 = 0.93906244
Sie und a1 = 1.3711242
:
In diesem Fall können Sie die folgenden Feed-Forward-Koeffizienten (b) und Feed-abwärts (a) abrufen:
b= 1.9390624, -2.7422484, 1.9390624
a= 1, -1.3711242, 0.9390624
Modulparameter
Name | Range | type | Standard | BESCHREIBUNG |
---|---|---|---|---|
Filtertyp | any | ImpulseResponse | Angeben des anzupassenden Filtertyps. | |
Weiter | any | String | "1.0" | Eingeben einer Reihe von Feedforward-Koeffizienten. |
hinten | any | String | "1.0" | Eingeben einer Reihe von Feedbackward-Filterkoeffizienten. |
Output
Name | type | BESCHREIBUNG |
---|---|---|
Filtern | IFilter-Schnittstelle | Filterimplementierung |
Ausnahmen
Ausnahme | Beschreibung |
---|---|
ParameterParsing | Eine Ausnahme tritt auf, wenn mindestens ein Parameter nicht analysiert oder aus einem angegebenen Typ in den für die Zielmethode erforderlichen Typ konvertiert werden konnte. |
Eine Liste der Fehler, die für Studio-Module (klassische) spezifisch sind, finden Sie unter Machine Learning Fehlercodes.
Eine Liste der API-Ausnahmen finden Sie unter Machine Learning REST-API-Fehlercodes.