User-Defined filter
Skapar ett anpassat finita eller oändligt impulssvarsfilter
Kategori: Datatransformering/filter
Anteckning
Gäller endast för: Machine Learning Studio (klassisk)
Liknande dra och släpp-moduler finns i Azure Machine Learning designer.
Modulöversikt
Den här artikeln beskriver hur du använder modulen Användardefinierat filter i Machine Learning Studio (klassisk) för att definiera ett anpassat filter med hjälp av ett FIR-filter (Finite Impulse Response) eller ett IIR-filter (Infinite Impulse Response) med koefficienter som du anger.
Ett filter är en överföringsfunktion som tar en indatasignal och skapar en utdatasignal baserat på filteregenskaperna. Mer allmän information om användare av filter i digital signalbearbetning finns i Filter. Den här modulen är särskilt användbar för att tillämpa en uppsättning tidigare härledda filterkoefficienter på dina data.
När du har definierat ett filter som uppfyller dina behov kan du tillämpa filtret på data genom att ansluta en datauppsättning och filtret till modulen Använd filter .
Tips
Behöver du filtrera data från en datauppsättning eller ta bort saknade värden? Använd de här modulerna i stället:
- Rensa saknade data: Använd den här modulen för att ta bort saknade värden eller ersätta saknade värden med platshållare.
- Partition och exempel: Använd den här modulen för att dela upp eller filtrera datauppsättningen efter villkor, till exempel ett datumintervall, ett specifikt värde eller reguljära uttryck.
- Klipp ut värden: Använd den här modulen för att ange ett intervall och endast behålla värdena inom det intervallet.
Så här konfigurerar du User-Defined filter
Lägg till modulen Användardefinierat filter i experimentet i Studio (klassisk). Du hittar den här modulen under Datatransformering i kategorin Filter .
I fönstret Egenskaper väljer du en typ av filter: FIR-filter eller IIR-filter.
Ange de koefficienter som ska tillämpas i filtret. Kraven för koefficienterna varierar beroende på om du väljer ett FIR-filter eller ett IIR-filter.
För ett FIR-filter anger du en vektor med feed-forward-koefficienter. Längden på vektorn avgör filtrets ordning. Ett FIR-filter är i praktiken ett glidande medelvärde, så konfigurationsvärdena tillämpar ett glidande medelvärde för att filtrera en datasekvens.
För ett IIR-filter använder du anpassade feed-forward- och feed-backward-koefficienter. Se avsnittet Exempel för några tips.
Anslut filtret för att tillämpa filter och ansluta en datauppsättning.
Använd kolumnväljaren för att ange vilka kolumner i datauppsättningen som filtret ska tillämpas på. Som standard använder modulen Använd filter filtret för alla valda numeriska kolumner.
Kör experimentet.
De angivna transformeringarna tillämpas endast på de valda numeriska kolumnerna när du kör experimentet med använd filter.
Exempel
Fler exempel på hur filter används i maskininlärning finns i Azure AI-galleriet:
- Filter: Visar alla filtertyper. I exemplet används en konstruerad vågformsdatauppsättning för att enklare illustrera effekterna av de olika filtren.
Exempel på FIR-filter: Exponentiellt viktat glidande medelvärde
För ett exponentiellt viktat glidande medelvärde är alla koefficienter mindre än en och summan av alla koefficienter är lika med en. Därför är variansen för det viktade genomsnittet alltid mindre än indatavärdena.
Om ett FIR-filter till exempel beräknar ett exponentiellt viktat glidande medelvärde (WMA) anger du en kommaavgränsad lista med koefficienter för värdet för feed-forward-parametern:
0.01818182, 0.03636364, 0.05454545, 0.07272727, 0.09090909, 0.10909091, 0.12727273, 0.14545455, 0.16363636, 0.18181818
Exempel på FIR-filter: Exponentiellt viktat glidande medelvärde (Deslauriers-Dubuc-interpolation)
Det här FIR-filtret ungefärliger ett triangulärt viktat glidande medelvärde (WMA). Du definierar koefficienterna genom att ange en kommaavgränsad serie värden för feed-forward-parametrarna, till exempel följande:
0.0625, 0.0625, 0.2500, 0.3750, 0.2500, 0.0625
Värdena som används i det här anpassade FIR-filtret representerar en vektor med feed-forward-koefficienter som erhålls med hjälp av Deslauriers-Dubuc metod för finita sekvensering. Mer information finns i Dubuc-Deslauriers Subdivision for Finite Sequences and Interpolation Wavelets on an Interval (Dubuc-Deslauriers Subdivision for Finite Sequences and Interpolation Wavelets on an Interval).
IIR-filterexempel: Notch-filter
Ett bra exempel på ett program för ett användardefinierat IIR-filter är att definiera ett hackfilter, även kallat ett bandstopfilter. Det önskade hackfiltret dämpar ett -3dB-avslagsband, fb, centrerat med en hackfrekvens, , fn
med samplingsfrekvens, fs
.
I det här fallet kan det digitala hackfiltret representeras av följande formel:
Den här formeln förutsätter:
Från den här formeln kan vi hämta feed-forward-koefficienten:
Matnings bakåtriktade koefficienter skulle vara följande:
Exempel på IIR-filter: Hackfilter 2
I följande exempel visas ett hackfilter med en hackfrekvens på och ett -3 dB
avvisningsband på fb =100 Hz
, med samplingsfrekvensen fs=10 kHz
.fn =1250 Hz
Med hjälp av följande formel får a2 = 0.93906244
du och a1 = 1.3711242
:
Från detta kan du hämta följande feed-forward (b) och feed-backward (a) koefficienter:
b= 1.9390624, -2.7422484, 1.9390624
a= 1, -1.3711242, 0.9390624
Modulparametrar
Name | Intervall | Typ | Standardvärde | Description |
---|---|---|---|---|
Typ av filter | valfri | ImpulseResponse | Ange vilken typ av filter som ska anpassas | |
Vidarebefordra | valfri | Sträng | ”1.0” | Ange en serie feed-forward-koefficienter |
Bakåt | valfri | Sträng | ”1.0” | Ange en serie med filtreringskoefficienter för matnings bakåt |
Utdata
Namn | Typ | Description |
---|---|---|
Filtrera | IFilter-gränssnitt | Filterimplementering |
Undantag
Undantag | Description |
---|---|
ParameterParsing | Ett undantag inträffar om en eller flera parametrar inte kunde parsas eller konverteras från den angivna typen till den typ som krävs av målmetoden. |
En lista över fel som är specifika för Studio-moduler (klassiska) finns i Machine Learning Felkoder.
En lista över API-undantag finns i Machine Learning REST API-felkoder.