MATLAB è un pacchetto di analisi di riferimento per l'elaborazione del segnale digitale e di altre varietà di analisi tecnica . Elaborazione del segnale ritiene che qualsiasi segnale di dati arbitrario è composto dalla somma di molti segnali di frequenze diverse . Spesso, i segnali provenienti da diverse fonti, o rumore , avranno frequenze diverse . Segnali ad alta frequenza possono essere rimossi convolvendo un segnale con un filtro passa-basso . Filtraggio passa-basso
filtraggio per rimuovere le frequenze si basa sulla ricerca di una funzione di trasferimento nel dominio della frequenza che seleziona la gamma e la grandezza di frequenze da includere nel segnale filtrato . Una trasformata inversa di Fourier viene quindi applicato alla funzione di dominio della frequenza per ottenere il filtro nel dominio del tempo con la funzione di trasferimento di frequenza selezionata . Il filtro nel dominio del tempo viene quindi applicato al segnale a scelta mediante l' operazione di convoluzione . In alternativa , si può prendere la trasformata di Fourier del segnale nel dominio del tempo e moltiplicare per la funzione di trasferimento nel dominio della frequenza del filtro , prima di applicare una trasformata inversa di Fourier . Questo può essere più veloce da eseguire , come convoluzione è un'operazione computazionalmente costoso .
Utilizzando liscio ( ) economici
MATLAB contiene la funzione liscia ( ) per rimuovere il rumore ad alta frequenza in un segnale senza la necessità di determinare l'esatta frequenza di taglio di un filtro passa-basso . Per impostazione predefinita , MATLAB usa un filtro a media mobile di cinque punti dati adiacenti . Il secondo esempio utilizza un arco di 10 punti di dati e le robuste ponderati lineari minimi quadrati funzionare con un secondo modello polinomiale
my_smoothed_data = liscio ( my_data ) . My_smoothed_data = liscio ( my_data , 10 , ' rloess ') ;
Utilizzando filtro ( ) economici
La funzione di filtro MATLAB consente di applicare un filtro digitale unidimensionale ad un segnale . Per applicare un filtro passa-basso con una certa frequenza di taglio , utilizzare il seguente codice :
my_filtered_data = filtro (freq , [ 1 freq - 1 ] , my_data ) ;
La variabile freq è uguale a T /T , dove " T " è il tempo che intercorre tra campioni e " t " è la costante di tempo del filtro di frequenza .
personalizzata Filtri
< p > Spesso, i filtri passa-basso non avranno un taglio esatto di frequenza , passando per tutte le frequenze al di sotto del valore soglia ed escludendo tutte le frequenze al di sopra del valore soglia . Infatti , poiché dati è discreto , un filtro passa-basso perfetto è impossibile da attuare . Qualsiasi filtro arbitrario può essere progettato in MATLAB e applicato utilizzando la funzione conv ( ) , l'applicazione di convoluzione , come segue :
my_new_signal = conv ( my_signal , my_filter , ' stesso ');
< br >