Anda di halaman 1dari 11

Projeto Final de Disciplina

Projeto de filtros FIR usando o algoritmo de Parks - McClellan


Lucas Weyne Barros Ferreira
345731
18 de junho de 2014

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

veja que pelas propriedades da Transformada Z os coeficientes ak permanencem na resposta do sistema, na


forma fatorada temos
M
Y
H(z) =
(1 ck z 1 )
(1.3)
k=1

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

Figura 1.1: Diagrama de fluxo de um filtro FIR


Tal representac
ao nessa estrutura b
asica serve como guia na implementacao em hardware podendo haver
outras estruturas que representem o mesmo sistema levando em conta quesitos de custo computacional e quantizac
ao de coeficientes.
Quanto a simetria dos filtros FIR, temos quatro tipos, que sao os de simetria positiva e negativa agrupados
em um n
umero de coeficientes par ou mpar.
Os de simetria positiva atendem a relac
ao:
h[n] = h[M n]

(1.5)

Os de simetria negativa antendem a relac


ao:
h[n] = h[M n]
O nosso foco aqui ser
a os de filtros FIR do Tipo I, filtros de simetria positiva com ordem M mpar.

(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)

Figura 1.2: Magnitude da resposta em frequencia de um filtro

O algoritmo de Parks - McClellan


O algoritmo proposto por Parks e McClellan utiliza-se do teorema da alternancia para encontrar a melhor
aproximac
ao do filtro digital que se deseja projetar. A funcao que realiza essa aproximacao e a Func
ao de
Aproximac
ao Ae (ej ) e e dada por:
L
X
Ae (ej ) =
ak cos(k)
(1.8)
k=0

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)

onde i = 1, 2, ..., (L + 2) e e o erro de aproximacao. Podemos reescrever a expressao no sistema linear

.
..

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).

Figura 1.3: Fluxograma representativo do algoritmo de Parks-McClellan

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)

Figura 1.4: Erro de aproximacao a cada iteracao


Podemos observar este ajuste para a condicao equiripple visualizando E() a cada iteracao juntamente com
o erro de aproximac
ao da iterac
ao (Fig.(1.4)).
Lembrando que da quarta para a quinta iteracao a condicao de equidade das frequencias de entrada e reais
e satisfeita, logo o resultado da 5a iterac
ao e o mesmo que na 4a . Obtemos entao que o erro de aproximac
ao
final foi 0.2507 (W () = 1, 1 = 2 ) que se observarmos no filtro proposto pelo exerccio e exatamente o ripple
no qual a resposta em frequencia do filtro Ae (ej ) oscila.

Resultados finais do projeto


Ao final das cinco iterac
oes, os coeficientes ak representam a melhor aproximacao possvel com o algoritmo
de Park-McClellan. Substituindo na Eq.(1.8) temos a resposta em frequencia do filtro Ae (ej ) abaixo

Figura 1.5: Resposta em frequencia do filtro Ae (ej )

O filtro obtido possui as especificac


oes propostas pelo exerccio . Como temos = 0.2507 podemos analisar
as informac
oes de ganho m
aximo nas bandas de passagem e rejeicao do filtro.
Ganho m
aximo na banda de passagem = 20log(1.2507) = 4.4744 dB
Ganho m
aximo na banda de rejeicao = 20log(0.2507) = -27.67 dB
Como o filtro e FIR do Tipo I, podemos obter a resposta ao impulso fazendo a relacao h[n] = h[M n]
usando os coeficientes ak , onde a0 = h[M/2] e ak = 2h[M/2 l] onde l = 1, 2, ..M/2. Como resultado temos a
seguinte resposta ao impulso de ordem M = 13.

Figura 1.6: Resposta impulsiva do filtro


Como esperado temos uma resposta finita ao impulso caracterizando um filtro FIR com um valor m
aximo
de 13 amostras n
ao nulas.
O exerccio prop
os tambem a obtenca
o de um novo filtro Be (ej ) seguindo a relacao
Be (ej ) = k1 Ae (ej )2 + k2

(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 ).

Figura 1.7: 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.

Figura 1.8: Func


ao aproximacao de erro do filtro Be (ej )
Conclusivamente este filtro satisfaz o teorema da alternancia com as ondulacoes nas faixas de passagem e
rejeic
ao indicadas como no exerccio, tendo o ripple na banda de passagem bem maior que na banda de rejeic
ao
causado pelo fator de potencia que amplia o ganho maximo na faixa de passagem e atenua na banda de rejeic
ao
(observe a Fig.(1.9)).

Figura 1.9: Ganho em dB do filtro Be (ej )


Analisando o ganho do novo filtro, o processo feito pela Eq.(1.14) ampliou o ganho maximo na faixa de
passagem para aproximadamente 8.7 dB (mais ou menos o dobro que no filtro Ae (ej )) e atenuou na faixa de
rejeic
ao o ganho m
aximo para aproximadamente -63 dB.

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.

Anda mungkin juga menyukai