Was ist der Unterschied zwischen Remez Exchange und Parks-McClellan Filterdesign?

21

In Bezug auf Parks-McClellan kam kürzlich eine Frage auf, und einige Kommentare weisen darauf hin, dass der Wikipedia-Artikel über Parks-McClellan Folgendes besagt:

... ist der Parks-McClellan-Algorithmus eine Variation des Remez-Algorithmus oder des Remez-Austauschalgorithmus.

Gibt es einen Leistungsunterschied? Ist die remezFunktion in Oktave entspricht die Matlab - Funktion firpm?

Mark Borgerding
quelle

Antworten:

8

Der Remez - Austausch - Algorithmus ist ein allgemeines iteratives Verfahren jede Funktion optimal in dem angenähert L Sinne (dh gibt die beste Worst-Case - Annäherung oder in anderen Worten, minimiert die maximalen Fehler oder minmax). Der Parks-McClellan-Algorithmus (PM) ist eine Variation des Remez-Austauschalgorithmus, der speziell für FIR-Filter angewendet wird. Aus dem Wiki-Artikel, den Sie zitiert haben:

Thomas [Parks] fuhr von Houston nach Princeton, um an einer Konferenz teilzunehmen. Auf der Konferenz hörte er Ed Hofstetters Präsentation über einen neuen FIR-Filter-Design-Algorithmus (Maximal Ripple-Algorithmus). Er brachte die Arbeit von Hofstetter, Oppenheim und Siegel nach Houston zurück und dachte über die Möglichkeit nach, die Chebyshev-Näherungstheorie zum Entwerfen von FIR-Filtern zu verwenden. Er hörte, dass die in Hofstetters Algorithmus implementierte Methode dem Remez-Austauschalgorithmus ähnlich war, und beschloss, den Weg der Verwendung des Remez-Austauschalgorithmus fortzusetzen.

Ohne zu sehr ins Detail zu gehen, besteht der Hauptunterschied zwischen den beiden Algorithmen darin, dass Sie mit dem Remez-Austauschalgorithmus (RE) die Bedingungen für das Entwerfen des optimalen Filters erhalten ( siehe hier Nr. 3): Die Fehler müssen gleich gewichtet sein und sich im Vorzeichen abwechseln. RE implementiert eine iterative Prozedur zum Berechnen von Polynomkoeffizienten (die auf FIR-Filterkoeffizienten abgebildet werden können), die das obige Kriterium erfüllen, das "Alternationssatz". Das "E" in RE ist der Teil der Prozedur, in dem die Maxima im Fehler, die in der iterativen Prozedur verwendet werden, durch die neuen Maxima ersetzt werden, die näher an den optimalen Werten liegen. PM verwendet Tchebyshev-Polynome, um Polynomkoeffizienten in Koeffizienten umzuwandeln, die eine Reihe von Kosinusfunktionen steuern, die direkt in symmetrische FIR-Koeffizienten übersetzt werden.


Bei Ihrer Frage zur remezFunktion in Octave und zur firpmFunktion in MATLAB glaube ich, dass sie gleich sind. MATLAB hatte früher eine remez, die zugunsten von eingestellt wurde firpm. Octave hält sich wahrscheinlich noch an ersteres. Typing help remezin MATLAB R2011b gibt die folgenden:

REMEZ Parks-McClellan bietet ein optimales FIR-Filterdesign.

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

See also FIRPM.
Lorem Ipsum
quelle
Ich schließe daraus, dass Mathworks den Namen remez in firpm änderte, da es sich nicht um einen generischen Remez-Solver handelte, sondern um die PM-Inkarnation der Remez-Methode.
Mark Borgerding
@MarkBorgerding Ich glaube, das ist in der Tat der Grund für die Namensänderung. Es ist jedoch immer noch üblich, Leute zu finden, die beide Begriffe austauschbar verwenden.
Lorem Ipsum
2
Ich denke, eine faire Aussage ist: Alle Parks-McClellan-Implementierungen sind Remez Exchange-Implementierungen, aber das Gegenteil ist nicht der Fall. In Bezug auf das Filterdesign denke ich, dass sie austauschbar sind. Es wäre (etwas) so, als würde man eine FFT als DFT bezeichnen.
Mark Borgerding
wie wäre es mit firgr (in matlab)?
daurnimator
@daurnimator was ist damit?
Lorem Ipsum