La funzione Low Pass in MATLAB

February 14

La funzione Low Pass in MATLAB


MATLAB è un pacchetto di analisi più importante per l'elaborazione del segnale digitale e di altre varietà di analisi tecnica. L'elaborazione del segnale ritiene che qualsiasi segnale dati arbitraria è composto dalla somma di molti segnali di frequenze diverse. Spesso, i segnali provenienti da diverse fonti, o rumore, avranno diverse frequenze. I segnali ad alta frequenza possono essere rimossi convolvendo un segnale con un filtro passa-basso.

Filtraggio passa-basso

Filtering 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 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 applicata al segnale di scelta utilizzando 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 un Fourier antitrasformata. Questo può essere più veloce da eseguire, come convoluzione è un'operazione costosa computazionalmente.

Utilizzando liscia ()

MATLAB contiene la funzione liscia () per rimuovere il rumore ad alta frequenza in un segnale senza la necessità di determinare cutoff esatta frequenza per un filtro passa-basso. Per impostazione predefinita, MATLAB utilizza un filtro media mobile di cinque punti di dati adiacenti. Il secondo esempio utilizza un arco di 10 punti dati e la robusta ponderata lineare almeno funzione quadrati con un modello polinomiale di secondo grado.

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

L'utilizzo del filtro ()

La funzione di filtro MATLAB è utilizzata per applicare un filtro digitale unidimensionale ad un segnale. Per applicare un filtro passa-basso con una certa frequenza di taglio, utilizzare il codice seguente:

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

La variabile freq è pari a T / t, dove "T" è il tempo tra i campioni e "t" è la costante di tempo del filtro di frequenza.

Filtri personalizzati

Spesso, filtri passa-basso non avranno un taglio esatto di frequenza, passando tutte le frequenze al di sotto del cut-off ed escludendo tutte le frequenze al di sopra del valore soglia. Infatti, poiché i dati sono discreti, un filtro passa-basso perfetto è impossibile da attuare. Qualsiasi filtro arbitraria può essere progettato in MATLAB e applicata utilizzando la funzione conv (), applicando convoluzione, come segue:

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