В чем разница между обменом Ремеза и дизайном фильтров Паркс-Макклеллан?

21

Вопрос недавно подошел относительно парков-МакКлеллана и некоторые замечания указывают, что википедии статья о Parks-МакКлеллана государств,

... алгоритм Паркс-Макклеллан является разновидностью алгоритма Ремеза или алгоритма обмена Ремеза.

Есть ли разница в производительности? Является ли remezфункция в октаве эквивалентной функции Matlab firpm?

Марк Боргердинг
источник

Ответы:

8

Алгоритм обмена Ремеза - это общая итерационная процедура, позволяющая оптимально аппроксимировать любую функцию в смысле L (т. Е. Дать наилучшее приближение для наихудшего случая или, другими словами, минимизировать максимальную ошибку или minmax). Алгоритм Паркс-Макклеллана (PM) - это разновидность алгоритма обмена Ремеза, применяемая специально для КИХ-фильтров. Из цитируемой статьи вики:

Томас [Паркс] поехал из Хьюстона в Принстон, чтобы присутствовать на конференции. На конференции он услышал презентацию Эда Хофстеттера о новом алгоритме построения FIR-фильтра (алгоритм Maximal Ripple). Он привез работу Хофстеттера, Оппенгейма и Зигеля обратно в Хьюстон, размышляя о возможности использования теории приближений Чебышева для создания КИХ-фильтров. Он услышал, что метод, реализованный в алгоритме Хофстеттера, похож на алгоритм обмена Ремеза, и решил пойти по пути использования алгоритма обмена Ремеза.

Не вдаваясь в подробности, основное различие между этими двумя алгоритмами заключается в том, что алгоритм обмена Remez (RE) дает вам условия для разработки оптимального фильтра (в частности, см. № 3 здесь: ошибки должны быть одинаковой взвешенной величины и чередоваться по знаку). RE реализует итеративную процедуру для вычисления полиномиальных коэффициентов (которые могут быть сопоставлены с коэффициентами FIR-фильтра), которые удовлетворяют вышеуказанному критерию, который является «теоремой чередования». «E» в RE является частью процедуры, в которой максимумы ошибки, которые используются в итерационной процедуре, заменяются новыми максимумами, которые ближе к оптимальным значениям. PM использует полиномы Чебышева для преобразования полиномиальных коэффициентов в коэффициенты, управляющие серией косинусных функций, которые непосредственно переводятся в симметричные коэффициенты КИХ.


Возвращаясь к вашему вопросу о remezфункции в Octave и firpmфункции в MATLAB, я считаю, что они одинаковы. MATLAB имел обыкновение иметь remez, который был свернут в пользу firpm. Октава, вероятно, все еще придерживается первого. Ввод help remezв MATLAB R2011b дает следующее:

REMEZ Parks-McClellan оптимальная конструкция FIR-фильтра.

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

See also FIRPM.
Лорем Ипсум
источник
Я делаю вывод, что Mathworks изменил имя «запомнить» на «Firpm», поскольку это был не универсальный решатель Ремеза, а воплощение метода «Ремез» в PM.
Марк Боргердинг
@MarkBorgerding Я считаю, что это действительно причина для изменения названия. Тем не менее, все еще встречается, что люди используют эти два термина взаимозаменяемо.
Lorem Ipsum
2
Я думаю, что справедливое утверждение таково: все реализации Parks-McClellan являются реализациями Remez Exchange, но обратное неверно. Что касается дизайна фильтров, я думаю, что они могут быть использованы взаимозаменяемо. Это было бы (в некоторой степени) похоже на обращение к БПФ как к ДПФ.
Марк Боргердинг
как насчет Firgr (в Matlab)?
Даурниматор
@daurnimator как насчет этого?
Лорем Ипсум