Nwlapcug.com


La funzione passa basso in MATLAB

La funzione passa basso in MATLAB


MATLAB è un pacchetto di analisi leader per elaborazione del segnale digitale e altre varietà di analisi tecnica. Elaborazione del segnale è del parere che qualsiasi dati arbitrari del segnale si compone della somma di molti segnali di frequenze diverse. Spesso, i segnali provenienti da diverse fonti, o rumore, avrà diverse frequenze. I segnali ad alta frequenza possono essere rimosso dalla convoluzione un segnale con un filtro passa-basso.

Filtro passa-basso

Filtro per rimuovere le frequenze si basa sulla ricerca di una funzione di trasferimento nel dominio della frequenza che seleziona la gamma e la grandezza delle frequenze per includere nel segnale filtrato. Una Fourier inversa viene quindi applicata alla funzione di frequenza-dominio per ottenere il dominio del tempo filtro con la funzione di trasferimento di frequenza selezionata. Quindi viene applicato il filtro di dominio del tempo al vostro segnale di scelta utilizzando l'operazione di convoluzione. In alternativa, potete prendere la trasformata di Fourier del segnale tempo-dominio e moltiplicare per la funzione di trasferimento del dominio della frequenza del filtro, prima di applicare una Fourier inversa. Questo può essere più veloce da eseguire, come la convoluzione è un'operazione dispendiosa.

Utilizzando smooth()

MATLAB contiene la funzione smooth() per rimuovere il rumore ad alta frequenza in un segnale senza la necessità di determinare l'esatta frequenza di taglio per un filtro passa-basso. Per impostazione predefinita, MATLAB utilizza un filtro di medio commovente di cinque punti di dati adiacenti. Nel secondo esempio viene utilizzato un intervallo di 10 dati punti e la funzione di robusta ponderata lineare minimi quadrati con un secondo modello polinomiale di grado.

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

Utilizzando filter)

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

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

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

Filtri personalizzati

Spesso, i filtri passa-basso non avrà un'esatta frequenza di taglio, passando tutte le frequenze di sotto del taglio ed escludendo tutte le frequenze sopra la frequenza di taglio. Infatti, poiché i dati sono discreti, un filtro passa-basso perfetto è impossibile da attuare. Qualsiasi filtro arbitrario può essere progettato in MATLAB e applicato mediante la funzione di conv(), l'applicazione di convoluzione, come segue:

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