Resumo
Filtros digitais FIR (resposta finita ao impulso) sao bastante eficientes em aplicacoes. Suas vantagens sobre os
filtros IIR (resposta infinita ao impulso) s
ao que, alem da ausencia de problemas de estabilidades e fase linear,
sua implementac
ao pode ser feita inteiramente em domnio discreto bastando ajustar os seus coeficientes para
que o m
odulo da resposta em frequencia se aproxime do filtro ideal desejado no projeto. O algoritmo de ParksMcClellan e um algoritmo para projeto de filtros FIR que gera um filtro equiripple nas bandas de passagem e
rejeic
ao ajustando os coeficientes da resposta ao impulso utilizando o teorema da alternancia. O algoritmo de
Parks-McClellan e um dos mais eficientes para a aproximacao equiripple de filtros FIR sendo bastante usado
em projetos de filtros.
Fundamenta
c
ao Te
orica
Filtros FIR
Um filtro FIR de ordem M pode ser caracterizado pela equacao de diferencas abaixo,
y[n] =
M
X
ak x[n k]
(1.1)
k=0
onde os coeficientes ak s
ao equivalentes em sua resposta impulsiva. Vemos que a resposta impulsiva do filtro
n
ao depende de valores passados de sua sada, apenas da entrada, caracterizando filtros FIR como filtros n
aorecursivos. Tal caracterstica e aplicada a funcao sistema H(z) do filtro que nao sera uma funcao racional como
em outros sistemas LTI, ou seja, n
ao haver
a polos exceto em z = 0 e a funcao sera um polinomio em z 1
H(z) =
M
X
ak z k
(1.2)
k=0
onde os coeficientes ck s
ao os zeros do filtro. Voltando ao domnio discreto temos a resposta impulsiva do filtro
(
M
X
an , 0 n M
ak [n k] =
h[n] =
(1.4)
0,
caso contrario
k=0
Temos como resultado um conjunto finito de amostras para a resposta impulsiva h[n] gerado pelos M atrasos
na entrada x[n] que s
ao somados formando a sada y[n] do sistema. Podemos representar a estrutura de um
filtro FIR em um diagrama fluxo como abaixo
(1.5)
(1.6)
Especificac
oes de um filtro digital
Antes da ultilizac
ao de qualquer algoritmo para projeto de filtros seletivos em frequencia e necessario ter em
m
aos as especificac
oes do que se deseja projetar. O essencial e a magnitude da resposta em frequencia do filtro
desejado H(ej ), os quais incluem a banda de passagem p , a banda de rejeicao s e as larguras dos ripples (1
e 2 ) da magnitude nas respectivas bandas do filtro, valores onde a magnitude do filtro permissivamente oscile.
Generalizando para um filtro passa baixa temos:
1 1 |H(ej )| 1 + 1
|H(ej )| 2
p
s
(1.7)
os par
ametros L e ak s
ao reespectivamente o n
umero de oscilcoes do filtro (que influira na ordem do filtro) e os
coeficientes do mesmo (prsentes na resposta ao impulso). Estes parametros serao explicados com detalhes mais
adiante.
por esta func
E
ao que se deseja aproximar a magnitude ideal da resposta em frequencia Hd (ej ), que no
caso de um passa-baixas e:
(
1, p
j
Hd (e ) =
(1.9)
0, s
Quando existe a necessidade de individualizar os ripples 1 e 2 a nvel de aplicacao entra a Func
ao Peso no
projeto, ela e dada por:
(
Kp , p
W () =
(1.10)
Ks , s
onde 1 e 2 satisfazem a relac
ao 2 /1 = Ks /Kp .
Essas tres func
oes s
ao a base para o projeto usando o algoritmo de Parks-McClellan. Com elas e possvel
obter a Func
ao Erro de Aproximac
ao E() para fazer a analise e a melhor aproximacao possvel.
E() = W ()[Hd (ej ) Ae (ej )]
(1.11)
O par
ametro L na Eq.(1.8) e de tal forma que L = (M 1)/2 este valor e o n
umero de frequencias i
escolhidas para serem pontos extremos das oscilacoes esperadas no filtro. Inicialmente supomos L frequencias
i denominadas frequencias extremais.
2
O teorema da altern
ancia diz basicamente que deve ser determinada uma funcao de aproximacao que minimize o m
aximo erro (minimax) contido na expressao da Eq. (1.11). Para que isso aconteca devem haver L+2
pontos extremos (frequencias extremais) em Ae (ej ).
No geral, o filtro Ae (ej ) deve satisfazer a expressao
W (i )[Hd (eji ) Ae (eji )] = (1)i+1
(1.12)
.
..
cos(1 )
cos(21 )
cos(L1 )
cos(2 )
cos(22 )
cos(L2 )
..
.
..
.
..
..
.
cos(L+2
cos(2L+2 ))
cos(LL+2 )
1
j
1
W (e ) a0
j1
1 a1 Hd (ej )
Hd (e 2 )
.
W (ej2 )
..
..
..
.
.
aL
jL
Hd (e )
(1)L+2
W (ej1 )
(1.13)
Da resoluc
ao desta equac
ao obtemos cada coeficiente ak do filtro de aproximacao (Eq.(1.8)) para cada
frequencia i candidata a ponto extremo (tanto de Ae (ej ) como de E()). O formato esperado para o erro de
aproximac
ao e equiripple, ou seja, ele deve oscilar entre e , tendo entao |E(i )| = . Porem em apenas uma
iterac
ao isso provavelmente n
ao ir
a acontecer, nem mesmo as frequencias inicialmente supostas irao coincidir
com os verdadeiros pontos extremos do erro de aproximacao. Para isso o algoritmo de Parks-McClellan, que
adapta o algoritmo de Remez para o design de filtros FIR, realiza um n
umero finito de iteracoes ate que as
frequencias extremais se ajustem e sejam exatamente iguais aos verdadeiros pontos extremos de E(). Este
ponto indica o final do algoritmo quando temos a melhor aproximacao possvel do filtro.
O algoritmo de Parks-McClellan segue como o fluxograma abaixo. A apresentacao e descricao do metodo
est
ao em Parks e McClellan (1972).
Procedimento Pr
atico
Agora utilizaremos o algoritmo de Parks - McClellan para projetar, analisar e resolver o exerccio 7.40,
proposto no livro-texto da disciplina Processamento em Tempo Discreto, Alan V. Oppenheim, Ronald W.
Schafer , 3 ed. com o auxlio do MATLAB na implementacao.
Especificac
oes do filtro
Inicialmente para projetar temos as especificacoes do filtro que sao fornecidas pelo exerccio, sao elas:
Banda de passagem: 0.45
Banda de rejeic
ao: 0.5
Magnitude na banda de passagem desejada: 1
Magnitude na banda de rejeicao desejada: 0
Prop
os-se tambem que a magnitude da funcao peso fosse 1 nas bandas de passagem e rejeicao. Como temos
W () = 1 n
ao teremos distinc
ao entre os ripples, ou seja, 1 = 2 = . O filtro Ae (ej ) deve oscilar sua
magnitude igualmente tanto na banda de passagem quanto na de rejeicao um valor , o erro de aproximac
ao,
que ser
a obtido pelo algoritmo. Visualmente e possvel observar um ripple de aproximadamente 0.25. Contudo
temos:
1 |Ae (ej )| 1 + 0 || 0.45
|Ae (ej )|
0.5 ||
O filtro passa-baixa proposto pelo exerccio possui seis oscilacoes no intervalo aberto (0,), tres na banda
de passagem e tres na banda de rejeic
ao. Devemos entao supor seis frequencias extremais e, pelo teorema da
altern
ancia (L+2), incluir 0 e a esse conjunto de frequencias para minimizar o maximo erro existente em
E(). O conjunto de frequencias extremais inicialmente supostas para o projeto foi:
extremais = 0 0.2 0.4 0.5 0.6 0.7 0.8
Finalmenete, temos para o projeto do filtro L = 6 que com o algoritmo de Parks-McClellan projetar
a um
filtro FIR do Tipo I como ordem mpar M = 13.
Iteraco
es do algoritmo
Temos definidas as func
oes peso W () (magnitude unitaria nas bandas de passagem e rejeicao) e o filtro
passa-baixa ideal desejado Hd (ej ) que e o mesmo ja definido pela Eq.(1.9). Seguindo o procedimento proposto
por Parks e McClellan, o pr
oximo passo e solucionar o sistema da Eq.(1.13) para obter os L+1 coeficientes ak
para determinar o filtro Ae (ej ) (substituindo os coeficientes na Eq.(1.8)) e o erro . Determinado Ae (ej ),
obtemos E() pela Eq(1.11) e podemos verificar as frequencias de entrada do algoritmo com os verdadeiros
pontos extremos de E().
Se caso os pontos extremos de E() tenham mudado em relacao as frequencias extremais de entrada (inicialmente supostas) troca-se o vetor de frequencia extremais de entrada pelos verdadeiros pontos extremos de E()
e faz-se outra iterac
ao, quando os vetores coincidirem, temos a melhor aproximacao possvel. Abaixo temos os
resultados das frequencias extremais retiradas de E() a cada iteracao:
1a = 0
2a = 0
3a = 0
4a = 0
5a = 0
0.3400
0.9500
1.4100
1.5800
1.7700
2.1900
3.1416
0.5400
1.1100
1.4100
1.5800
1.8600
2.4800
3.1416
0.5600
1.0900
1.4100
1.5800
1.9100
2.5000
3.1416
0.5600
1.0900
1.4100
1.5800
1.9100
2.4900
3.1416
0.5600
1.0900
1.4100
1.5800
1.9100
2.4900
3.1416
Pelo algoritmo temos que 1a e o conjunto de verdadeiras frequencias extremais retiradas da funcao de erro
de aproximac
ao onde a entrada foi o conjunto extremais supostos inicialmente. Pelas trocas do algoritmo o
conjunto 1a serve de entrada para 2a , que por seguinte serve de entrada para 3 a e assim por diante. Ao
final foi necess
ario cinco iterac
oes para que o conjuto de frequencias extremais de entrada coincidissem com
os verdadeiros pontos extremos de E(). Essas cinco iteracoes foram necessarias para que a funcao erro fosse
equiripple e representasse a melhor aproximacao possvel para o filtro.
(a) 1a iteraca
o ( = 0.0719)
(b) 2a iterac
ao ( = 0.2122)
(c) 3a iterac
ao ( = 0.2494)
(d) 4a iterac
ao ( = 0.2507)
(1.14)
onde k1 e k2 s
ao constantes. A escolha dessas constantes para o projeto do filtro Be (ej ) foram k1 = 1 e
k2 = 0.02 (escolha foi arbitr
aria ate a obtencao do filtro proposto pelo exerccio). Substituindo na Eq.(1.14)
temos a resposta em frequencia do filtro Be (ej ).
Observando a func
ao de aproximac
ao de erro para este filtro (Fig.(1.8)) podemos observar seu comportamento
equiripple.
Conclus
oes do procedimento
Como soluc
ao do exerccio pode-se concluir que o n
umero maximo possvel de valores nao nulos da resposta
ao impulso do filtro FIR e equivalente a ordem do mesmo que depende do n
umero de oscilacoes supostas
inicialmente, obedecendo a relac
ao L = (M 1)/2 e o teorema da alternancia. Para o segundo item proposto,
se analisarmos as func
oes das constantes k1 e k2 observa-se que k1 atua como um fator que e proporcional ao
tamanho do ripple na banda de passagem e rejeicao. A constante k2 , se alterada e possvel observar um fator
de deslocamento no eixo vertical, ou seja, ao final efeitos de linearidade podem ser observados na concepc
ao do
filtro Be (ej ). O algoritmo de Parks-McClelllan e bastante modelavel a nvel de implementacao podendo ser
usado para gerar outros tipos de filtros seletivos em frequencia sem a necessidade de grandes mudancas a nvel
de algoritmo e de c
odigo.
Para maior entendimento pr
atico e te
orico sobre o projeto de filtros, todo o codigo em MATLAB foi feito
sem a presenca de func
oes padr
ao da biblioteca do MATLAB para design de filtros FIR. Este codigo segue em
anexo a este relat
orio mas pode ser visto tambem pelo link http://pastebin.com/raw.php?i=KnDtmwWQ.
Refer
encias Bibliogr
aficas
[1] Alan V. Oppenheim, Ronald W. Schafer , Discrete-Time Signal Processing, Prentice Hall, 2th Edition, 1998.
[2] Monson H. Hayes, Schaums Outlines of Digital Signal Processing, McGraw-Hill, 1999.
[3] Andre M. Barros, Projetos de Filtros FIR Atraves de Algoritmos Geneticos, UTFPR, 2006, http://files.
dirppg.ct.utfpr.edu.br/cpgei/Ano_2006/dissertacoes/Dissertacao_400_2006.pdf.
[4] I. Selesnick, The Remez Algorithm, http://eeweb.poly.edu/iselesni/EL713/remez/remez.pdf.