Qual è la differenza tra lo scambio Remez e il design del filtro Parks-McClellan?


Risposte:


8

L'algoritmo di scambio Remez è una procedura iterativa generica per approssimare qualsiasi funzione in modo ottimale nel senso (ovvero, fornire la migliore approssimazione nel caso peggiore o, in altre parole, minimizzare l'errore massimo o il valore minimo). L'algoritmo Parks-McClellan (PM) è una variante dell'algoritmo di scambio Remez, applicato specificamente per i filtri FIR. Dall'articolo wiki che hai citato:L

Thomas [Parks] ha guidato da Houston a Princeton per partecipare a una conferenza. Alla conferenza, ha ascoltato la presentazione di Ed Hofstetter su un nuovo algoritmo di progettazione del filtro FIR (algoritmo Maximal Ripple). Ha riportato il documento di Hofstetter, Oppenheim e Siegel, a Houston, pensando alla possibilità di utilizzare la teoria dell'approssimazione di Chebyshev per progettare i filtri FIR. Ha sentito che il metodo implementato nell'algoritmo di Hofstetter era simile all'algoritmo di scambio di Remez e ha deciso di seguire il percorso di utilizzo dell'algoritmo di scambio di Remez.

Senza entrare troppo nei dettagli, la differenza principale tra i due algoritmi è che l'algoritmo di scambio Remez (RE) ti dà le condizioni per progettare il filtro ottimale (in particolare, vedi # 3 qui: gli errori devono essere di uguale entità ponderata e alternati in segno). RE implementa una procedura iterativa per calcolare i coefficienti polinomiali (che possono essere mappati ai coefficienti di filtro FIR) che soddisfano il criterio di cui sopra, che è il "Teorema di alternanza". La "E" in RE è la parte della procedura in cui i massimi dell'errore, utilizzati nella procedura iterativa, vengono sostituiti dai nuovi massimi, che sono più vicini ai valori ottimali. PM utilizza i polinomi di Tchebyshev per convertire i coefficienti polinomiali in coefficienti che governano una serie di funzioni del coseno che sono tradotte direttamente in coefficienti FIR simmetrici.


Venendo alla tua domanda sulla remezfunzione in Octave e la firpmfunzione in MATLAB, credo che siano uguali. MATLAB aveva una remez, che è stata gradualmente eliminata a favore di firpm. Probabilmente Octave si attacca ancora alla prima. Digitando help remezMATLAB R2011b si ottiene quanto segue:

REMEZ Parks-McClellan design ottimale del filtro FIR equiripple.

REMEZ is obsolete.  REMEZ still works but may be removed in the future.
Use FIRPM instead.

See also FIRPM.

Ne deduco che Mathworks ha cambiato il nome remez in firpm poiché non era un solutore Remez generico, ma piuttosto l'incarnazione di PM del metodo Remez.
Mark Borgerding,

@MarkBorgerding Credo che questo sia davvero il motivo del cambio di nome. Tuttavia, è ancora comune trovare persone che usano i due termini in modo intercambiabile.
Lorem Ipsum,

2
Penso che un'affermazione equa sia: tutte le implementazioni di Parks-McClellan sono implementazioni di Remez Exchange, ma non è vero il contrario. In relazione al design del filtro, penso che possano essere usati in modo intercambiabile. Sarebbe (in qualche modo) come riferirsi a una FFT come una DFT.
Mark Borgerding,

che ne dici di firgr (in matlab)?
daurnimator,

@daurnimator che ne pensi?
Lorem Ipsum,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.