MATLAB is een toonaangevende analyse pakket voor digitale signaalverwerking en andere rassen van technische analyse . Signaalverwerking is van mening dat elke willekeurige data signaal is samengesteld uit de som van vele signalen van verschillende frequenties . Vaak signalen uit verschillende bronnen , of ruis , hebben verschillende frequenties . Hoogfrequente signalen kunnen worden verwijderd door convolving een signaal met een laagdoorlaatfilter . Low - Pass Filter Filtering frequenties verwijderen is gebaseerd op het vinden van een overdrachtsfunctie in het frequentiedomein dat het bereik en de omvang van frequenties kiest om in het gefilterde signaal . Een inverse Fourier -transformatie wordt dan toegepast op het frequentiedomein om de tijd - domein filter te verkrijgen met de geselecteerde frequentie overdrachtsfunctie . De tijd - domein filter wordt vervolgens toegepast om het signaal naar keuze met behulp van de convolutie-bewerking . Als alternatief kunt u de Fourier-transformatie van uw tijd-domein signaal en vermenigvuldigen met de frequentie - domein transfer functie van het filter , voor het aanbrengen van een inverse Fourier transformatie . Dit kan sneller uit te voeren zijn, zoals convolutie is een computationeel dure operatie . Behulp glad ( ) op MATLAB bevat de gladde ( ) functie om hoogfrequente ruis te verwijderen in een signaal zonder de exacte frequentie cutoff bepalen van een laagdoorlaatfilter . Standaard , MATLAB maakt gebruik van een voortschrijdend gemiddelde filter van vijf aangrenzende datapunten . Het tweede voorbeeld wordt een overspanning van 10 datapunten en de robuuste gewogen lineaire kleinste kwadraten functioneren met een tweedegraads polynoom model my_smoothed_data = glad ( my_data ) ; . My_smoothed_data = glad ( my_data , 10 , ' rloess ' ) ; met filter ( ) De MATLAB -filter functie wordt gebruikt om een een- dimensionale digitale filter toepassen op een signaal . Een low - pass filter toe te passen met een bepaalde frequentie cutoff , gebruikt u de volgende code : my_filtered_data = filter ( freq , [ 1 freq - 1 ] , my_data ) ; De freq variabele is gelijk aan T /t , waarbij " T " is de tijd tussen de samples en " t " is de tijd - constante van de frequentie filter . Custom Filters Vaak zal low - pass filters niet over een exacte frequentie cutoff , passeren alle frequenties onder de cutoff en met uitsluiting van alle frequenties boven de cutoff . In feite , omdat de gegevens discreet , perfect laagdoorlaatfilter is onuitvoerbaar . Elk willekeurig filter kan worden ontworpen in MATLAB en toegepast met behulp van de conv ( ) -functie , toepassing van convolutie , als volgt : my_new_signal = conv ( my_signal , my_filter , ' hetzelfde ' ) ; < br >
|