Funzioni > Elaborazione dei segnali > Filtro digitale > Esempio: filtri FIR per scambio di Remez
  
Esempio: filtri FIR per scambio di Remez
La funzione remez implementa l'algoritmo di scambio di Remez per la progettazione di filtri FIR.
Per una trattazione dell'algoritmo e alcuni esempi, vedere Theory and Application of Digital Signal Processing di Rabiner e Gold (Prentice-Hall, Inc.) e Digital Filter Design di Parks e Burrus (Wiley-Interscience).
Filtro passa basso
1. Definire una risposta 1 nella banda passante e 0 nella banda di reiezione, quindi eseguire l'interpolazione di una transizione in linea retta tra i limiti della banda passante e della banda di reiezione.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
In generale il numero di punti nella griglia di frequenze deve essere nell'ordine da 8 a 10 volte la lunghezza del filtro, con frequenze che iniziano a 0 e aumentano uniformemente fino a esattamente 0,05. La definizione della risposta richiede la definizione dei limiti delle bande e dei pesi assegnati agli errori in ogni banda. L'algoritmo minimizza l'errore con peso massimo nella gamma di frequenza [0, 0.5].
2. Definire i limiti della banda passante e della banda di reiezione:
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
3. Definire i pesi di banda passante, banda di reiezione e banda di transizione:
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
4. Definire una funzione che restituisca la risposta desiderata come funzione di frequenza. La valutazione in ogni punto della griglia consente di creare il vettore di risposta.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
5. Definire il vettore di peso, che assegna a ogni punto della griglia il peso per la banda corrispondente.
Fare clic per copiare questa espressione
6. Utilizzare le funzioni remez e length per calcolare i coefficienti di filtro:
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
7. Utilizzare la funzione gain per calcolare per questo filtro di lunghezza dispari gli errori massimi della banda passante e della banda di reiezione, determinati dalla resa a 0 e a 0.5:
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
8. Tracciare il grafico della funzione e della relativa risposta in frequenza da 0 a 0.5.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Sono visibili le dieci frequenze estreme, incluso il punto in cui la linea (1 - δ1) incrocia il limite della banda passante pb e quello in cui la linea δ2 incrocia il limite della banda di reiezione sb. L'errore si alterna in modo uniforme nelle frequenze estreme in ogni banda. Per visualizzare un esempio in cui i due errori d sono diversi, modificare il peso della banda di reiezione impostandolo su 0,5 nella specifica del filtro precedente.
Filtro passa banda
1. Definire una funzione di risposta, costruita aggiungendo funzioni per la risposta in ogni banda di transizione e nella banda passante.
Fare clic per copiare questa espressione
2. Applicare la funzione filtro all'intera griglia contemporaneamente utilizzando l'operatore di vettorizzazione. I pesi sono uniformi.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
3. Generare un filtro con 45 coefficienti:
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
4. Tracciare il grafico della risposta in frequenza del filtro:
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione