Utilizzare le funzioni response e fftfilt per calcolare l'output di un filtro FIR o IIR mediante la valutazione diretta della convoluzione. La funzione restituisce un vettore complesso di output di lunghezza n.
La tecnica utilizzata da queste funzioni è molto diffusa e documentata nella maggior parte dei manuali sull'elaborazione dei segnali. Consultare ad esempio A.V. Oppenheim e R. W. Schafer, Discrete-Time Signal Processing, pp. 556-558, 1989.
Ordine dei filtri IIR passa basso
1. Definire un segnale di input con un componente a bassa frequenza e uno ad alta frequenza.
2. Calcolare i primi 100 passi della risposta di un filtro Butterworth passa basso di secondo ordine con frequenza di taglio f.
Il valore di taglio deve essere compreso tra 0 e 0.5, come specificato nella descrizione della funzione.
3. Utilizzare la funzione iirlow per ottenere i coefficienti della funzione di trasferimento.
4. Utilizzare la funzione response per ottenere la risposta del filtro.
Il segnale di risposta YA è più uniforme ed è caratterizzato da un'ampiezza minore e da uno spostamento temporale minimo rispetto al segnale originale x.
5. Specificare un filtro Butterworth passa basso di sesto ordine con la stessa frequenza di taglio f. La funzione response aggiungerà l'output della prima sezione nella seconda sezione, quello della seconda nella terza e così via.
Il filtro di ordine superiore consente di ottenere una risposta molto più uniforme, risulta più efficace per filtrare le alte frequenze, implica uno spostamento temporale maggiore e offre una transizione più netta della frequenza di taglio.
Filtro FIR passa banda
1. Pianificare un filtro FIR passa banda F per trasmettere la frequenza di segnale più alta tra le due definite in precedenza.
2. Calcolare i coefficienti per un filtro passa banda di lunghezza 51 con banda passante tra le frequenze bassa e alta specificate in precedenza e utilizzare una finestra di Blackman (ultimo argomento di 6).
3. Calcolare il ritardo causato dal filtro.
4. Applicare la funzione response per calcolare i primi 100 passi.
Sebbene non trasmetta immediatamente all'avvio, il filtro seleziona la frequenza alta (f2=0.2, T=5) con estrema accuratezza.
Filtro FIR passa banda 2
Consente di dimostrare che il filtro FIR passa basso seguente include uno spostamento di fase uguale a zero per diverse frequenze nella relativa banda passante.
1. Definire due segnali di input.
2. Definire la frequenza di taglio e il numero di coefficienti del filtro FIR.
3. Calcolare i coefficienti con una finestra di Hanning.
4. Calcolare il ritardo causato dal filtro.
5. Definire i due segnali di input ritardati.
6. Tracciare il grafico del primo segnale di input ritardato x1d e della risposta del filtro a x1.
I due segnali sono identici e hanno una differenza di fase uguale a zero.
7. Tracciare il grafico del secondo segnale di input ritardato x2d e della risposta del filtro a x2.
I due segnali sono identici e hanno una differenza di fase uguale a zero.
Utilizzo della risposta per la convoluzione
Se l'array del filtro include una sola colonna, la funzione di risposta eseguirà una convoluzione. Tale funzione costituisce pertanto un'alternativa alla funzione convolve basata sulla trasformata rapida di Fourier. La risposta è molto più rapida per una piccola parte iniziale della convoluzione di due sequenze lunghe.
1. Definire un intervallo e due array riempiti con numeri positivi casuali compresi tra 0 e 1.
2. Applicare la funzione convolve ai due array.
3. Utilizzare la funzione response per ottenere i primi otto passi della risposta.
I due array sono identici.
Confronto dell'output delle funzioni response e fftfilt
Consente di dimostrare che i risultati ottenuti dalle funzioni response e fftfilt sono equivalenti.
1. Definire un intervallo e due frequenze.
2. Definire il segnale di input in termini di f1 e f2.
3. Creare un filtro FIR passa basso con frequenza di taglio f e con una finestra di Hanning.
4. Calcolare la risposta del filtro al segnale di input.
5. Applicare la funzione fftfilt al segnale di input e ottenere i primi 64 passi.
y_f è un vettore di elementi complessi.
6. Tracciare il grafico del risultato della convoluzione del segnale di input con la funzione di trasferimento del filtro con il segnale di risposta. Le due tracce risultano completamente sovrapposte.