Quelle est la différence entre l'échange Remez et la conception du filtre Parks-McClellan?

21

Une question a récemment été soulevée concernant Parks-McClellan et certains des commentaires soulignent que l' article de wikipedia sur Parks-McClellan déclare,

... l'algorithme de Parks-McClellan est une variante de l'algorithme Remez ou de l'algorithme d'échange Remez.

Y a-t-il une différence de performances? La remezfonction en octave est-elle équivalente à la fonction Matlab firpm?

Mark Borgerding
la source

Réponses:

8

L'algorithme d'échange de Remez est une procédure itérative générique pour approximer n'importe quelle fonction de manière optimale dans le sens L (c'est-à-dire, donner la meilleure approximation du pire cas ou en d'autres termes, minimiser l'erreur maximale ou minmax). L'algorithme Parks-McClellan (PM) est une variante de l'algorithme d'échange Remez, appliqué spécifiquement pour les filtres FIR. De l'article wiki que vous avez cité:

Thomas [Parks] a conduit de Houston à Princeton pour assister à une conférence. Lors de la conférence, il a entendu la présentation d'Ed Hofstetter sur un nouvel algorithme de conception de filtre FIR (algorithme Maximal Ripple). Il a ramené l'article de Hofstetter, Oppenheim et Siegel à Houston, réfléchissant à la possibilité d'utiliser la théorie de l'approximation de Chebyshev pour concevoir des filtres FIR. Il a entendu que la méthode mise en œuvre dans l'algorithme de Hofstetter était similaire à l'algorithme d'échange Remez et a décidé de poursuivre la voie de l'utilisation de l'algorithme d'échange Remez.

Sans entrer dans trop de détails, la principale différence entre les deux algorithmes est que l'algorithme d'échange Remez (RE) vous donne les conditions pour concevoir le filtre optimal (en particulier, voir # 3 ici: les erreurs doivent être de même ampleur pondérée et de signe alternatif). RE met en œuvre une procédure itérative pour calculer les coefficients polynomiaux (qui peuvent être mappés aux coefficients de filtre FIR) qui satisfont au critère ci-dessus, qui est le "théorème d'alternance". Le "E" dans RE est la partie de la procédure où les maxima de l'erreur, qui sont utilisés dans la procédure itérative, sont remplacés par les nouveaux maxima, qui sont plus proches des valeurs optimales. PM utilise les polynômes de Tchebyshev pour convertir les coefficients polynomiaux en coefficients régissant une série de fonctions cosinus qui sont directement traduites en coefficients FIR symétriques.


Pour en venir à votre question sur la remezfonction dans Octave et la firpmfonction dans MATLAB, je pense que ce sont les mêmes. MATLAB en avait un remez, qui a été supprimé en faveur de firpm. Octave reste probablement fidèle à la première. La help remezsaisie dans MATLAB R2011b donne les informations suivantes:

REMEZ Parks-McClellan conception optimale du filtre FIR équiripple.

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

See also FIRPM.
Lorem Ipsum
la source
J'en déduis que Mathworks a changé le nom remez en firpm car il ne s'agissait pas d'un solveur Remez générique, mais plutôt de l'incarnation PM de la méthode Remez.
Mark Borgerding
@MarkBorgerding Je pense que c'est bien la raison du changement de nom. Cependant, il est encore courant de trouver des personnes qui utilisent les deux termes de manière interchangeable.
Lorem Ipsum
2
Je pense qu'une déclaration juste est: toutes les implémentations de Parks-McClellan sont des implémentations Remez Exchange, mais l'inverse n'est pas vrai. En ce qui concerne la conception des filtres, je pense qu'ils peuvent être utilisés de manière interchangeable. Ce serait (un peu) comme se référer à une FFT en tant que DFT.
Mark Borgerding
que diriez-vous de firgr (dans matlab)?
daurnimator
@daurnimator qu'en est-il?
Lorem Ipsum,