The Low Pass funksjon i MATLAB

The Low Pass funksjon i MATLAB


MATLAB er et ledende analysepakke for digital signalbehandling og andre varianter av teknisk analyse. Signalbehandling av den oppfatning at en vilkårlig datasignal er sammensatt av summen av flere signaler med forskjellige frekvenser. Ofte vil signaler fra ulike kilder, eller støy, har forskjellige frekvenser. Høyfrekvente signaler kan fjernes ved å konvolvere et signal med en lav-pass filter.

Lavpassfiltrering

Filtrering for å fjerne frekvenser er basert på å finne en overføringsfunksjon i frekvensplanet som velger omfanget og størrelsen av frekvenser for å inkludere i det filtrerte signalet. En invers Fourier-transformasjon blir så påført frekvensdomenet funksjon for å skaffe tidsdomenefilter med det valgte frekvensoverføringsfunksjonen. Tidsdomenefilter blir så tilført til signalet av valget ved hjelp av konvolvering. Alternativt kan du ta Fourier transform av din tid domenesignal og multipliser med frekvensdomenet transfer funksjon av filteret, før du påfører en invers Fourier transform. Dette kan være raskere å utføre, som konvolusjon er en beregningsmessig kostbar operasjon.

Ved hjelp av glatt ()

MATLAB inneholder glatt () -funksjonen til å fjerne høyfrekvent støy i et signal uten å måtte fastslå den eksakte frekvensen cutoff for en low-pass filter. Som standard bruker MATLAB et glidende gjennomsnitt filter fem tilstøtende datapunkter. Det andre eksemplet bruker et spenn på 10 datapunkter og robust vektet lineær minste kvadraters funksjon med en andregrads polynom modell.

my_smoothed_data = glatt (my_data);
my_smoothed_data = glatt (my_data, 10, 'rloess');

Ved hjelp av filter ()

Den MATLAB filterfunksjonen brukes til å påføre en endimensjonal digitale filteret til et signal. Hvis du vil bruke en low-pass filter med en viss frekvens cutoff, bruker du følgende kode:

my_filtered_data = filter (freq, [1 freq-1], my_data);

Freq variabelen er lik T / t, hvor "t" er tiden mellom prøvene, og "t" er tidskonstanten til frekvensfilter.

tilpassede filtre

Ofte vil lavpassfiltre ikke har en nøyaktig frekvens cutoff, passerer alle frekvenser under avskjæringen og utelukke alle frekvenser over cut-off. Faktisk, fordi dataene er diskret, er et perfekt lavpassfilter umulig å gjennomføre. Enhver vilkårlig filter kan utformes i MATLAB og anvendt med conv () -funksjonen, søker konvolusjon, som følger:

my_new_signal = conv (my_signal, my_filter, 'samme');