Qual é a diferença entre a troca Remez e o design do filtro Parks-McClellan?

21

Recentemente, surgiu uma pergunta sobre Parks-McClellan e alguns dos comentários apontam que o artigo da Wikipedia sobre Parks-McClellan afirma:

... o algoritmo Parks-McClellan é uma variação do algoritmo Remez ou do algoritmo de troca Remez.

Existe alguma diferença no desempenho? A remezfunção na oitava é equivalente à função Matlab firpm?

Mark Borgerding
fonte

Respostas:

8

O algoritmo de troca Remez é um procedimento iterativo genérico para aproximar otimamente qualquer função no sentido (ie, fornecer a melhor aproximação do pior caso ou, em outras palavras, minimizar o erro máximo ou minmax). O algoritmo Parks-McClellan (PM) é uma variação do algoritmo de troca Remez, aplicado especificamente para filtros FIR. No artigo da wiki que você citou:L

Thomas [Parks] viajou de Houston para Princeton para participar de uma conferência. Na conferência, ele ouviu a apresentação de Ed Hofstetter sobre um novo algoritmo de design de filtro FIR (algoritmo Maximal Ripple). Ele trouxe o artigo de Hofstetter, Oppenheim e Siegel, de volta a Houston, pensando na possibilidade de usar a teoria da aproximação de Chebyshev para projetar filtros FIR. Ele soube que o método implementado no algoritmo de Hofstetter era semelhante ao algoritmo de troca Remez e decidiu seguir o caminho de usar o algoritmo de troca Remez.

Sem entrar em muitos detalhes, a principal diferença entre os dois algoritmos é que o algoritmo de troca Remez (RE) oferece condições para projetar o filtro ideal (especificamente, consulte o item 3 aqui: os erros devem ser de magnitude ponderada igual e sinal alternado). O RE implementa um procedimento iterativo para calcular os coeficientes polinomiais (que podem ser mapeados para os coeficientes do filtro FIR) que atendem ao critério acima, que é o "Teorema da alternância". O "E" em ER é a parte do procedimento em que os máximos no erro, que são usados ​​no procedimento iterativo, são substituídos pelos novos máximos, que estão mais próximos dos valores ideais. O PM usa polinômios de Tchebyshev para converter coeficientes polinomiais em coeficientes que governam uma série de funções cosseno que são diretamente convertidas em coeficientes simétricos de FIR.


Chegando à sua pergunta sobre a remezfunção no Octave e a firpmfunção no MATLAB, acredito que sejam iguais. O MATLAB costumava ter um remez, que foi eliminado em favor de firpm. A oitava provavelmente ainda permanece na primeira. A digitação help remezno MATLAB R2011b fornece o seguinte:

Projeto de filtro FIR ideal para equiripple REMEZ Parks-McClellan.

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

See also FIRPM.
Lorem Ipsum
fonte
Eu deduzo que o Mathworks alterou o nome remez para firpm, pois não era um solucionador Remez genérico, mas a encarnação de PM do método Remez.
precisa saber é o seguinte
@ MarkBorgerding Acredito que esse seja realmente o motivo da mudança de nome. No entanto, ainda é comum encontrar pessoas que usem os dois termos de forma intercambiável.
Lorem Ipsum
2
Penso que uma afirmação justa é: todas as implementações de Parks-McClellan são implementações de Remez Exchange, mas o contrário não é verdadeiro. Em relação ao design do filtro, acho que eles podem ser usados ​​de forma intercambiável. Seria (um pouco) como se referir a uma FFT como DFT.
precisa saber é o seguinte
e quanto ao firgr (no matlab)?
daurnimator
@daurnimator what about it?
Lorem Ipsum