MATLAB är ett ledande analys -paketet för digital signalbehandling och andra sorter av teknisk analys . Signalbehandling anser att godtycklig datasignal utgörs av summan av många signaler med olika frekvenser . Ofta signaler från olika källor , eller buller , kommer att ha olika frekvenser . Högfrekventa signaler kan tas bort genom att falta en signal med ett lågpassfilter . Lågpassfiltrering
Filtrering att ta bort frekvenser bygger på att hitta en överföringsfunktion i frekvensdomänen som väljer utbudet och omfattningen av frekvenser som ska inkluderas i den filtrerade signalen . En invers Fourier-transform appliceras sedan till den frekvens - domän funktion för att hämta tiden -domain filter med den valda frekvensen överföringsfunktion. Tiden - domänfilter appliceras sedan på din signal av med knappen Faltningsoperationen . Alternativt kan du ta Fouriertransformen av din tidsdomänsignal och multiplicera med frekvens - domänen överföringsfunktionen för filtret , innan en invers Fouriertransform . Detta kan vara snabbare att utföra , som faltning är en beräkningsmässigt dyr operation .
Använda smidig ( ) katalog MATLAB
innehåller släta ( ) funktionen för att ta bort högfrekvent brus i en signal utan att behöva bestämma den exakta frekvensen cutoff för en låg - passfilter . Som standard använder MATLAB ett glidande medelvärde av fem intilliggande datapunkter . Det andra exemplet används en spännvidd av 10 datapunkter och robusta viktade linjära minstakvadratmetoden fungera med ett andra gradens polynom modell
my_smoothed_data = slät ( my_data ) . My_smoothed_data = slät ( my_data , 10 , ' rloess ' ) , Addera ditt Använda filter ( )
MATLAB filter funktionen används för att tillämpa ett endimensionellt digitalt filter till en signal . Att tillämpa ett lågpassfilter med en viss frekvens cutoff , använd följande kod :
my_filtered_data = filter ( freq, [ 1 FREQ - 1 ] , my_data ) ;
frekv variabeln är lika med T /T , där " T " är tiden mellan prov och " t " är den tid - konstant frekvens filtret. Addera anpassade filter
Ofta kommer lågpassfilter har inte en exakt frekvens cutoff , passerar alla frekvenser under cutoff och exklusive alla frekvenser ovanför cutoff . I själva verket, eftersom data som är diskret , är en perfekt lågpassfilter omöjlig att genomföra. Godtyckligt filtret kan utformas i MATLAB och tillämpas med den conv ()-funktionen , med tillämpning faltning, enligt följande:
my_new_signal = conv ( my_signal , my_filter , 'same ');